Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Running a more focussed test service on a local WSDL file for when the

external service is non-responsive
  • Loading branch information...
commit bea28ec26d0e59411f7faac0472ce565e254c594 1 parent 1f6b4f1
@DragonBe authored
View
40 tests/library/My/Service/ViesTest.php
@@ -1,44 +1,6 @@
<?php
class My_Service_ViestTest extends PHPUnit_Framework_TestCase
{
- protected function _createMockResponse($response)
- {
- $stub = $this->getMock('My_Service_Vies');
- $stub->expects($this->any())
- ->method('validateVat')
- ->will($this->returnValue($response));
- return $stub;
- }
- public function testGoodValidationOfVatNumber()
- {
- $response = new StdClass();
- $response->countryCode = 'NL';
- $response->vatNumber = '0123-456-789';
- $response->requestDate = '1983-06-24';
- $response->valid = true;
- $response->name = '';
- $response->address = '';
-
-// $vies = $this->_createMockResponse($response);
-//
-// $actual = $vies->validateVat('NL', '0123-456-789');
-// $this->assertEquals($response, $actual);
-// $this->assertTrue($actual->valid);
- }
- public function testBadValidationOfVatNumber()
- {
- $response = new StdClass();
- $response->countryCode = 'BE';
- $response->vatNumber = '9876-ABC-321';
- $response->requestDate = '1983-06-24';
- $response->valid = false;
-
-// $vies = $this->_createMockResponse($response);
-//
-// $actual = $vies->validateVat('BE', '9876-ABC-321');
-// $this->assertEquals($response, $actual);
-// $this->assertFalse($actual->valid);
- }
public function vatNumberProvider()
{
return array (
@@ -59,7 +21,7 @@ public function testVatNumberFilter($vatNumber, $filteredNumber)
protected function _createdStubbedViesClient($response)
{
$stub = $this->getMockFromWsdl(
- My_Service_Vies::VIES_WSDL);
+ dirname(__FILE__) . '/_files/checkVatService.wsdl');
$stub->expects($this->any())
->method('checkVat')
->will($this->returnValue($response));
View
254 tests/library/My/Service/_files/checkVatService.wsdl
@@ -0,0 +1,254 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions targetNamespace="urn:ec.europa.eu:taxud:vies:services:checkVat" xmlns:impl="urn:ec.europa.eu:taxud:vies:services:checkVat" xmlns:intf="urn:ec.europa.eu:taxud:vies:services:checkVat" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns1="urn:ec.europa.eu:taxud:vies:services:checkVat:types" xmlns="http://schemas.xmlsoap.org/wsdl/">
+<documentation> Specific disclaimer for this service ----------------------------------------- The
+ objective of this Internet site is to allow persons involved in the intra-Community supply of
+ goods or of services to obtain confirmation of the validity of the VAT identification number of
+ any specified person, in accordance to article 27 of Council Regulation (EC) No. 1798/2003 of 7
+ October 2003. Any other use and any extraction and use of the data which is not in conformity
+ with the objective of this site is strictly forbidden. Any retransmission of the contents of
+ this site, whether for a commercial purpose or otherwise, as well as any more general use other
+ than as far as is necessary to support the activity of a legitimate user (for example: to draw
+ up their own invoices) is expressly forbidden. In addition, any copying or reproduction of the
+ contents of this site is strictly forbidden. The European Commission maintains this website to
+ enhance the access by taxable persons making intra-Community supplies to verification of their
+ customers VAT identification numbers. Our goal is to supply instantaneous and accurate
+ information. However the Commission accepts no responsibility or liability whatsoever with
+ regard to the information obtained using this site. This information: - is obtained from Member
+ States databases over which the Commission services have no control and for which the Commission
+ assumes no responsibility; it is the responsibility of the Member States to keep their databases
+ complete, accurate and up to date; - is not professional or legal advice (if you need specific
+ advice, you should always consult a suitably qualified professional); - does not in itself give
+ a right to exempt intra-Community supplies from Value Added Tax; - does not change any
+ obligations imposed on taxable persons in relation to intra-Community supplies. It is our goal
+ to minimise disruption caused by technical errors. However some data or information on our site
+ may have been created or structured in files or formats which are not error-free and we cannot
+ guarantee that our service will not be interrupted or otherwise affected by such problems. The
+ Commission accepts no responsibility with regard to such problems incurred as a result of using
+ this site or any linked external sites. This disclaimer is not intended to limit the liability
+ of the Commission in contravention of any requirements laid down in applicable national law nor
+ to exclude its liability for matters which may not be excluded under that law. Usage: The
+ countryCode input parameter must follow the pattern [A-Z]{2} The vatNumber input parameter must
+ follow the [0-9A-Za-z\+\*\.]{2,12} In case of problem, the returned FaultString can take the
+ following specific values: - INVALID_INPUT: The provided CountryCode is invalid or the VAT
+ number is empty; - SERVICE_UNAVAILABLE: The SOAP service is unavailable, try again later; -
+ MS_UNAVAILABLE: The Member State service is unavailable, try again later or with another Member
+ State; - TIMEOUT: The Member State service could not be reach in time, try again later or with
+ another Member State; - SERVER_BUSY: The service can't process your request. Try again latter. </documentation>
+ <wsdl:types>
+ <schema targetNamespace="urn:ec.europa.eu:taxud:vies:services:checkVat:types" xmlns="http://www.w3.org/2001/XMLSchema">
+
+ <element name="checkVat">
+
+ <complexType>
+
+ <sequence>
+
+ <element name="countryCode" type="xsd:string"/>
+
+ <element name="vatNumber" type="xsd:string"/>
+
+ </sequence>
+
+ </complexType>
+
+ </element>
+
+ <element name="checkVatResponse">
+
+ <complexType>
+
+ <sequence>
+
+ <element name="countryCode" type="xsd:string"/>
+
+ <element name="vatNumber" type="xsd:string"/>
+
+ <element name="requestDate" type="xsd:date"/>
+
+ <element name="valid" type="xsd:boolean"/>
+
+ <element name="name" type="xsd:string"/>
+
+ <element name="address" type="xsd:string"/>
+
+ </sequence>
+
+ </complexType>
+
+ </element>
+
+ <element name="checkVatApprox">
+
+ <complexType>
+
+ <sequence>
+
+ <element name="countryCode" type="xsd:string"/>
+
+ <element name="vatNumber" type="xsd:string"/>
+
+ <element maxOccurs="1" minOccurs="0" name="traderName" type="xsd:string"/>
+
+ <element maxOccurs="1" minOccurs="0" name="traderCompanyType" type="tns1:companyTypeCode"/>
+
+ <element maxOccurs="1" minOccurs="0" name="traderStreet" type="xsd:string"/>
+
+ <element maxOccurs="1" minOccurs="0" name="traderPostcode" type="xsd:string"/>
+
+ <element maxOccurs="1" minOccurs="0" name="traderCity" type="xsd:string"/>
+
+ <element maxOccurs="1" minOccurs="0" name="requesterCountryCode" type="xsd:string"/>
+
+ <element maxOccurs="1" minOccurs="0" name="requesterVatNumber" type="xsd:string"/>
+
+ </sequence>
+
+ </complexType>
+
+ </element>
+
+ <element name="checkVatApproxResponse">
+
+ <complexType>
+
+ <sequence>
+
+ <element name="countryCode" type="xsd:string"/>
+
+ <element name="vatNumber" type="xsd:string"/>
+
+ <element name="requestDate" type="xsd:date"/>
+
+ <element name="valid" type="xsd:boolean"/>
+
+ <element maxOccurs="1" minOccurs="0" name="traderName" type="xsd:string"/>
+
+ <element maxOccurs="1" minOccurs="0" name="traderCompanyType" type="tns1:companyTypeCode"/>
+
+ <element maxOccurs="1" minOccurs="0" name="traderStreet" type="xsd:string"/>
+
+ <element maxOccurs="1" minOccurs="0" name="traderPostcode" type="xsd:string"/>
+
+ <element maxOccurs="1" minOccurs="0" name="traderCity" type="xsd:string"/>
+
+ <element maxOccurs="1" minOccurs="0" name="traderNameMatch" type="tns1:matchCode"/>
+
+ <element maxOccurs="1" minOccurs="0" name="traderCompanyTypeMatch" type="tns1:matchCode"/>
+
+ <element maxOccurs="1" minOccurs="0" name="traderStreetMatch" type="tns1:matchCode"/>
+
+ <element maxOccurs="1" minOccurs="0" name="traderPostcodeMatch" type="tns1:matchCode"/>
+
+ <element maxOccurs="1" minOccurs="0" name="traderCityMatch" type="tns1:matchCode"/>
+
+ <element name="requestIdentifier" type="xsd:string"/>
+
+ </sequence>
+
+ </complexType>
+
+ </element>
+
+ <simpleType name="companyTypeCode">
+
+ <restriction base="xsd:string">
+
+ <pattern value="[A-Z]{2}\-[1-9][0-9]?"/>
+
+ </restriction>
+
+ </simpleType>
+
+ <simpleType name="matchCode">
+
+ <restriction base="xsd:string">
+
+ <enumeration value=""/>
+
+ <enumeration value="1">
+
+ <annotation>
+
+ <documentation>
+
+VALID </documentation>
+
+ </annotation>
+
+ </enumeration>
+
+ <enumeration value="2">
+
+ <annotation>
+
+ <documentation>
+
+INVALID </documentation>
+
+ </annotation>
+
+ </enumeration>
+
+ </restriction>
+
+ </simpleType>
+
+ </schema>
+ </wsdl:types>
+ <wsdl:message name="checkVatApproxResponse">
+ <wsdl:part name="parameters" element="tns1:checkVatApproxResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="checkVatRequest">
+ <wsdl:part name="parameters" element="tns1:checkVat">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="checkVatApproxRequest">
+ <wsdl:part name="parameters" element="tns1:checkVatApprox">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="checkVatResponse">
+ <wsdl:part name="parameters" element="tns1:checkVatResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="checkVatPortType">
+ <wsdl:operation name="checkVat">
+ <wsdl:input name="checkVatRequest" message="impl:checkVatRequest">
+ </wsdl:input>
+ <wsdl:output name="checkVatResponse" message="impl:checkVatResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="checkVatApprox">
+ <wsdl:input name="checkVatApproxRequest" message="impl:checkVatApproxRequest">
+ </wsdl:input>
+ <wsdl:output name="checkVatApproxResponse" message="impl:checkVatApproxResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="checkVatBinding" type="impl:checkVatPortType">
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="checkVat">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="checkVatRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="checkVatResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="checkVatApprox">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="checkVatApproxRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="checkVatApproxResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="checkVatService">
+ <wsdl:port name="checkVatPort" binding="impl:checkVatBinding">
+ <wsdlsoap:address location="http://ec.europa.eu/taxation_customs/vies/services/checkVatService"/>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
Please sign in to comment.
Something went wrong with that request. Please try again.