7
7
8
8
use Magento \Framework \App \Filesystem \DirectoryList ;
9
9
use Magento \Framework \Filesystem ;
10
+ use Magento \Framework \Webapi \Exception as WebapiException ;
10
11
use Magento \Webapi \Model \Soap \Fault ;
11
12
use Magento \TestFramework \Helper \Bootstrap ;
12
13
@@ -671,6 +672,12 @@ protected function _checkWrappedErrors($expectedWrappedErrors, $errorDetails)
671
672
*/
672
673
private function getActualWrappedErrors (\stdClass $ errorNode )
673
674
{
675
+ if (!isset ($ errorNode ->parameters )) {
676
+ return [
677
+ 'message ' => $ errorNode ->message ,
678
+ ];
679
+ }
680
+
674
681
$ actualParameters = [];
675
682
$ parameterNode = $ errorNode ->parameters ->parameter ;
676
683
if (is_array ($ parameterNode )) {
@@ -686,4 +693,40 @@ private function getActualWrappedErrors(\stdClass $errorNode)
686
693
'params ' => $ actualParameters ,
687
694
];
688
695
}
696
+
697
+ /**
698
+ * @param array $serviceInfo
699
+ * @param array $data
700
+ * @param array $expectedErrorData
701
+ * @return void
702
+ * @throws \Exception
703
+ */
704
+ protected function assertWebApiCallErrors (array $ serviceInfo , array $ data , array $ expectedErrorData )
705
+ {
706
+ try {
707
+ $ this ->_webApiCall ($ serviceInfo , $ data );
708
+ $ this ->fail ('Expected throwing exception ' );
709
+ } catch (\Exception $ e ) {
710
+ if (TESTS_WEB_API_ADAPTER === self ::ADAPTER_REST ) {
711
+ self ::assertEquals ($ expectedErrorData , $ this ->processRestExceptionResult ($ e ));
712
+ self ::assertEquals (WebapiException::HTTP_BAD_REQUEST , $ e ->getCode ());
713
+ } elseif (TESTS_WEB_API_ADAPTER === self ::ADAPTER_SOAP ) {
714
+ $ this ->assertInstanceOf ('SoapFault ' , $ e );
715
+ $ expectedWrappedErrors = [];
716
+ foreach ($ expectedErrorData ['errors ' ] as $ error ) {
717
+ // @see \Magento\TestFramework\TestCase\WebapiAbstract::getActualWrappedErrors()
718
+ $ expectedWrappedError = [
719
+ 'message ' => $ error ['message ' ],
720
+ ];
721
+ if (isset ($ error ['parameters ' ])) {
722
+ $ expectedWrappedError ['params ' ] = $ error ['parameters ' ];
723
+ }
724
+ $ expectedWrappedErrors [] = $ expectedWrappedError ;
725
+ }
726
+ $ this ->checkSoapFault ($ e , $ expectedErrorData ['message ' ], 'env:Sender ' , [], $ expectedWrappedErrors );
727
+ } else {
728
+ throw $ e ;
729
+ }
730
+ }
731
+ }
689
732
}
0 commit comments