* * This source file is subject to the MIT license that is bundled * with this source code in the file LICENSE. */ namespace Bundle\WebServiceBundle\Tests; use Bundle\WebServiceBundle\Soap\SoapServerFactory; use Bundle\WebServiceBundle\Converter\ConverterRepository; use Symfony\Component\HttpFoundation\Request; use Bundle\WebServiceBundle\SoapKernel; use Bundle\WebServiceBundle\Soap\SoapRequest; use Bundle\WebServiceBundle\Soap\SoapResponse; use Bundle\WebServiceBundle\ServiceBinding\ServiceBinder; use Bundle\WebServiceBundle\ServiceBinding\RpcLiteralResponseMessageBinder; use Bundle\WebServiceBundle\ServiceBinding\RpcLiteralRequestMessageBinder; use Bundle\WebServiceBundle\ServiceDefinition\ServiceDefinition; use Bundle\WebServiceBundle\ServiceDefinition\Method; use Bundle\WebServiceBundle\ServiceDefinition\Loader\XmlFileLoader; /** * UnitTest for \Bundle\WebServiceBundle\SoapKernel. * * @author Christian Kerl */ class SoapKernelTest extends \PHPUnit_Framework_TestCase { private static $soapRequestContent = '1020'; private static $soapResponseContent = '200'; private $soapKernel; public function setUp() { $serviceDefinition = new ServiceDefinition('api'); $serviceDefinitionLoader = new XmlFileLoader(__DIR__ . '/fixtures/api-servicedefinition.xml'); $serviceDefinitionLoader->loadServiceDefinition($serviceDefinition); $serviceDefinitionDumper = new StaticFileDumper(__DIR__ . '/fixtures/api.wsdl'); $requestMessageBinder = new RpcLiteralRequestMessageBinder(); $responseMessageBinder = new RpcLiteralResponseMessageBinder(); $serviceBinder = new ServiceBinder($serviceDefinition, $requestMessageBinder, $responseMessageBinder); $converterRepository = new ConverterRepository(); $soapServerFactory = new SoapServerFactory($serviceDefinition, $converterRepository, $serviceDefinitionDumper); $httpKernel = $this->getMock('Symfony\\Component\\HttpKernel\\HttpKernelInterface'); $httpKernel->expects($this->any()) ->method('handle') ->will($this->returnValue(new SoapResponse(200))); $this->soapKernel = new SoapKernel($serviceBinder, $soapServerFactory, $httpKernel); } public function testHandle() { $response = $this->soapKernel->handle(new SoapRequest(self::$soapRequestContent)); $this->assertEquals(200, $response->getReturnValue()); $this->assertXmlStringEqualsXmlString(self::$soapResponseContent, $response->getContent()); } public function testHandleWithInvalidRequest() { $this->setExpectedException('InvalidArgumentException'); $this->soapKernel->handle(new Request()); } }