Minor bugfixes of SoapFault handling
SoapFault is now properly prefixed so that SoapFaultSourceGetter identifies them correctly, missing exceptions option is now processed in SoapServer
This commit is contained in:
@ -0,0 +1,64 @@
|
||||
<?php
|
||||
|
||||
namespace BeSimple\SoapCommon\Fault;
|
||||
|
||||
use PHPUnit_Framework_TestCase;
|
||||
use SoapFault;
|
||||
|
||||
class SoapFaultSourceGetterTest extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
const FIXTURES_DIR = __DIR__ . '/../../Fixtures';
|
||||
|
||||
/**
|
||||
* @param SoapFault $soapFault
|
||||
* @dataProvider provideNativeSoapFaults
|
||||
*/
|
||||
public function testWithNativeSoapFault(SoapFault $soapFault)
|
||||
{
|
||||
self::assertTrue(SoapFaultSourceGetter::isNativeSoapFault($soapFault));
|
||||
self::assertFalse(SoapFaultSourceGetter::isBeSimpleSoapFault($soapFault));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param SoapFault $soapFault
|
||||
* @dataProvider provideBeSimpleSoapFaults
|
||||
*/
|
||||
public function testWithBeSimpleSoapFault(SoapFault $soapFault)
|
||||
{
|
||||
self::assertFalse(SoapFaultSourceGetter::isNativeSoapFault($soapFault));
|
||||
self::assertTrue(SoapFaultSourceGetter::isBeSimpleSoapFault($soapFault));
|
||||
}
|
||||
|
||||
public function provideNativeSoapFaults()
|
||||
{
|
||||
return [
|
||||
[$this->getNativeSoapFaultFromClient()],
|
||||
// @todo: add more test cases for Soap Server \SoapFault
|
||||
];
|
||||
}
|
||||
|
||||
public function provideBeSimpleSoapFaults()
|
||||
{
|
||||
return [
|
||||
[new SoapFault(SoapFaultEnum::SOAP_FAULT_HTTP, 'HTTP Connection error')],
|
||||
[new SoapFault(SoapFaultEnum::SOAP_FAULT_SOAP_CLIENT_ERROR, 'SOAP Client error')],
|
||||
[new SoapFault(SoapFaultEnum::SOAP_FAULT_WSDL, 'WSDL error')],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return SoapFault
|
||||
*/
|
||||
private function getNativeSoapFaultFromClient()
|
||||
{
|
||||
try {
|
||||
$soapClient = @new \SoapClient('non-existing-wsdl-throwing-soapfault');
|
||||
$soapClient->__call('no-function', []);
|
||||
} catch (SoapFault $e) {
|
||||
|
||||
return $e;
|
||||
}
|
||||
|
||||
self::fail('Cannot generate native PHP SoapFault from Client, please review the test');
|
||||
}
|
||||
}
|
@ -24,7 +24,6 @@ class SoapServerAndSoapClientCommunicationTest extends PHPUnit_Framework_TestCas
|
||||
const CACHE_DIR = __DIR__ . '/../../cache';
|
||||
const FIXTURES_DIR = __DIR__ . '/../Fixtures';
|
||||
const TEST_HTTP_URL = 'http://localhost:8000/tests';
|
||||
const TEST_LOCAL_WSDL_UK = SoapClientBuilderTest::TEST_LOCAL_WSDL_UK;
|
||||
const LARGE_SWA_FILE = self::FIXTURES_DIR.'/large-test-file.docx';
|
||||
|
||||
private $localWebServerProcess;
|
||||
|
Reference in New Issue
Block a user