Skip to content

Commit 62cdb34

Browse files
committed
added basic unit tests for OpenShipService
1 parent 84d0f09 commit 62cdb34

File tree

2 files changed

+123
-3
lines changed

2 files changed

+123
-3
lines changed
+119
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
<?php
2+
3+
namespace FedEx\Tests;
4+
5+
use FedEx\OpenShipService\Request;
6+
use FedEx\OpenShipService\ComplexType;
7+
use FedEx\ShipService\ComplexType\CreatePendingShipmentReply;
8+
use FedEx\ShipService\ComplexType\ShipmentReply;
9+
use FedEx\Utility\ComplexTypePopulator;
10+
11+
class OpenShipServiceTest extends TestCase
12+
{
13+
public function testOpenShipServiceRequest()
14+
{
15+
$modifyConsolidationRequest = new ComplexType\ModifyConsolidationRequest();
16+
$validateOpenShipmentRequest = new ComplexType\ValidateOpenShipmentRequest();
17+
$retrieveOpenShipmentRequest = new ComplexType\RetrieveOpenShipmentRequest();
18+
$deleteOpenConsolidationRequest = new ComplexType\DeleteOpenConsolidationRequest();
19+
$createConsolidationRequest = new ComplexType\CreateConsolidationRequest();
20+
$retrievePackageInOpenShipmentRequest = new ComplexType\RetrievePackageInOpenShipmentRequest();
21+
$retrieveConsolidatedCommoditiesRequest = new ComplexType\RetrieveConsolidatedCommoditiesRequest();
22+
$modifyPackageInOpenShipmentRequest = new ComplexType\ModifyPackageInOpenShipmentRequest();
23+
$deleteShipmentRequest = new ComplexType\DeleteShipmentRequest();
24+
$createOpenShipmentRequest = new ComplexType\CreateOpenShipmentRequest();
25+
$deletePendingShipmentRequest = new ComplexType\DeletePendingShipmentRequest();
26+
$confirmOpenShipmentRequest = new ComplexType\ConfirmOpenShipmentRequest();
27+
$getConfirmOpenShipmentResultsRequest = new ComplexType\GetConfirmOpenShipmentResultsRequest();
28+
$getConfirmConsolidationRequestResults = new ComplexType\GetConfirmConsolidationResultsRequest();
29+
$modifyOpenShipmentRequest = new ComplexType\ModifyOpenShipmentRequest();
30+
$confirmConsolidationRequest = new ComplexType\ConfirmConsolidationRequest();
31+
$getModifyOpenShipmentResultsRequest = new ComplexType\GetModifyOpenShipmentResultsRequest();
32+
$deletePackagesFromOpenShipmentRequest = new ComplexType\DeletePackagesFromOpenShipmentRequest();
33+
$reprintShipmentDocumentsRequest = new ComplexType\ReprintShippingDocumentsRequest();
34+
$addPackagesToOpenShipmentRequest = new ComplexType\AddPackagesToOpenShipmentRequest();
35+
$getCreateOpenShipmentResultsRequest = new ComplexType\GetCreateOpenShipmentResultsRequest();
36+
$retrieveConsolidationRequest = new ComplexType\RetrieveConsolidationRequest();
37+
$deleteOpenShipmentRequest = new ComplexType\DeleteOpenShipmentRequest();
38+
39+
$populator = new ComplexTypePopulator();
40+
$populator
41+
->populate($modifyConsolidationRequest)
42+
->populate($validateOpenShipmentRequest)
43+
->populate($retrieveOpenShipmentRequest)
44+
->populate($deleteOpenConsolidationRequest)
45+
->populate($createConsolidationRequest)
46+
->populate($retrievePackageInOpenShipmentRequest)
47+
->populate($retrieveConsolidatedCommoditiesRequest)
48+
->populate($modifyPackageInOpenShipmentRequest)
49+
->populate($deleteShipmentRequest)
50+
->populate($createOpenShipmentRequest)
51+
->populate($deletePendingShipmentRequest)
52+
->populate($confirmOpenShipmentRequest)
53+
->populate($getConfirmOpenShipmentResultsRequest)
54+
->populate($getConfirmConsolidationRequestResults)
55+
->populate($modifyOpenShipmentRequest)
56+
->populate($confirmConsolidationRequest)
57+
->populate($getModifyOpenShipmentResultsRequest)
58+
->populate($deletePackagesFromOpenShipmentRequest)
59+
->populate($reprintShipmentDocumentsRequest)
60+
->populate($addPackagesToOpenShipmentRequest)
61+
->populate($getCreateOpenShipmentResultsRequest)
62+
->populate($retrieveConsolidationRequest)
63+
->populate($deleteOpenShipmentRequest);
64+
65+
66+
$mockSoapClient = $this->getMockFromWsdl(Request::getWsdlPath());
67+
$mockSoapClient->method('modifyConsolidation')->will($this->returnValue(ComplexType\ModifyConsolidationReply::class));
68+
$mockSoapClient->method('validateOpenShipment')->will($this->returnValue(ComplexType\ValidateOpenShipmentReply::class));
69+
$mockSoapClient->method('retrieveOpenShipment')->will($this->returnValue(ComplexType\RetrieveOpenShipmentReply::class));
70+
$mockSoapClient->method('deleteOpenConsolidation')->will($this->returnValue(ComplexType\DeleteOpenConsolidationReply::class));
71+
$mockSoapClient->method('createConsolidation')->will($this->returnValue(ComplexType\CreateConsolidationReply::class));
72+
$mockSoapClient->method('retrievePackageInOpenShipment')->will($this->returnValue(ComplexType\RetrievePackageInOpenShipmentReply::class));
73+
$mockSoapClient->method('retrieveConsolidatedCommodities')->will($this->returnValue(ComplexType\RetrieveConsolidatedCommoditiesReply::class));
74+
$mockSoapClient->method('modifyPackageInOpenShipment')->will($this->returnValue(ComplexType\ModifyPackageInOpenShipmentReply::class));
75+
$mockSoapClient->method('deleteShipment')->will($this->returnValue(ShipmentReply::class));
76+
$mockSoapClient->method('createOpenShipment')->will($this->returnValue(ComplexType\CreateOpenShipmentReply::class));
77+
$mockSoapClient->method('deletePendingShipment')->will($this->returnValue(ComplexType\DeletePendingShipmentReply::class));
78+
$mockSoapClient->method('confirmOpenShipment')->will($this->returnValue(ComplexType\ConfirmOpenShipmentReply::class));
79+
$mockSoapClient->method('getConfirmOpenShipmentResults')->will($this->returnValue(ComplexType\ConfirmOpenShipmentReply::class));
80+
$mockSoapClient->method('getConfirmConsolidationResults')->will($this->returnValue(ComplexType\GetConfirmConsolidationResultsReply::class));
81+
$mockSoapClient->method('modifyOpenShipment')->will($this->returnValue(ComplexType\ModifyOpenShipmentReply::class));
82+
$mockSoapClient->method('confirmConsolidation')->will($this->returnValue(ComplexType\ConfirmConsolidationReply::class));
83+
$mockSoapClient->method('createPendingShipment')->will($this->returnValue(CreatePendingShipmentReply::class));
84+
$mockSoapClient->method('getModifyOpenShipmentResults')->will($this->returnValue(ComplexType\ModifyOpenShipmentReply::class));
85+
$mockSoapClient->method('deletePackagesFromOpenShipment')->will($this->returnValue(ComplexType\DeletePackagesFromOpenShipmentReply::class));
86+
$mockSoapClient->method('reprintShippingDocuments')->will($this->returnValue(ComplexType\ReprintShippingDocumentsReply::class));
87+
$mockSoapClient->method('addPackagesToOpenShipment')->will($this->returnValue(ComplexType\AddPackagesToOpenShipmentReply::class));
88+
$mockSoapClient->method('getCreateOpenShipmentResults')->will($this->returnValue(ComplexType\GetCreateOpenShipmentResultsReply::class));
89+
$mockSoapClient->method('retrieveConsolidation')->will($this->returnValue(ComplexType\RetrieveConsolidationReply::class));
90+
$mockSoapClient->method('deleteOpenShipment')->will($this->returnValue(ComplexType\DeleteOpenShipmentReply::class));
91+
92+
$request = new Request($mockSoapClient);
93+
94+
95+
$this->assertEquals(ComplexType\ModifyConsolidationReply::class, $request->getModifyConsolidationReply($modifyConsolidationRequest, true));
96+
$this->assertEquals(ComplexType\ValidateOpenShipmentReply::class, $request->getValidateOpenShipmentReply($validateOpenShipmentRequest, true));
97+
$this->assertEquals(ComplexType\RetrieveOpenShipmentReply::class, $request->getRetrieveOpenShipmentReply($retrieveOpenShipmentRequest, true));
98+
$this->assertEquals(ComplexType\DeleteOpenConsolidationReply::class, $request->getDeleteOpenConsolidationReply($deleteOpenConsolidationRequest, true));
99+
$this->assertEquals(ComplexType\CreateConsolidationReply::class, $request->getCreateConsolidationReply($createConsolidationRequest, true));
100+
$this->assertEquals(ComplexType\RetrievePackageInOpenShipmentReply::class, $request->getRetrievePackageInOpenShipmentReply($retrievePackageInOpenShipmentRequest, true));
101+
$this->assertEquals(ComplexType\RetrieveConsolidatedCommoditiesReply::class, $request->getRetrieveConsolidatedCommoditiesReply($retrieveConsolidatedCommoditiesRequest, true));
102+
$this->assertEquals(ComplexType\ModifyPackageInOpenShipmentReply::class, $request->getModifyPackageInOpenShipmentReply($modifyPackageInOpenShipmentRequest, true));
103+
$this->assertEquals(ShipmentReply::class, $request->getDeleteShipmentReply($deleteShipmentRequest, true));
104+
$this->assertEquals(ComplexType\CreateOpenShipmentReply::class, $request->getCreateOpenShipmentReply($createOpenShipmentRequest, true));
105+
$this->assertEquals(ComplexType\DeletePendingShipmentReply::class, $request->getDeletePendingShipmentReply($deletePendingShipmentRequest, true));
106+
$this->assertEquals(ComplexType\ConfirmOpenShipmentReply::class, $request->getConfirmOpenShipmentReply($confirmOpenShipmentRequest, true));
107+
$this->assertEquals(ComplexType\ConfirmOpenShipmentReply::class, $request->getConfirmOpenShipmentReply($confirmOpenShipmentRequest, true));
108+
$this->assertEquals(ComplexType\ModifyOpenShipmentReply::class, $request->getModifyOpenShipmentReply($modifyOpenShipmentRequest, true));
109+
$this->assertEquals(ComplexType\ConfirmConsolidationReply::class, $request->getConfirmConsolidationReply($confirmConsolidationRequest, true));
110+
$this->assertEquals(CreatePendingShipmentReply::class, $request->getCreatePendingShipmentReply($createOpenShipmentRequest, true));
111+
$this->assertEquals(ComplexType\ModifyOpenShipmentReply::class, $request->getModifyOpenShipmentReply($modifyOpenShipmentRequest, true));
112+
$this->assertEquals(ComplexType\DeletePackagesFromOpenShipmentReply::class, $request->getDeletePackagesFromOpenShipmentReply($deletePackagesFromOpenShipmentRequest, true));
113+
$this->assertEquals(ComplexType\ReprintShippingDocumentsReply::class, $request->getReprintShippingDocumentsReply($reprintShipmentDocumentsRequest, true));
114+
$this->assertEquals(ComplexType\AddPackagesToOpenShipmentReply::class, $request->getAddPackagesToOpenShipmentReply($addPackagesToOpenShipmentRequest, true));
115+
$this->assertEquals(ComplexType\GetCreateOpenShipmentResultsReply::class, $request->getGetCreateOpenShipmentResultsReply($getCreateOpenShipmentResultsRequest, true));
116+
$this->assertEquals(ComplexType\RetrieveConsolidationReply::class, $request->getRetrieveConsolidationReply($retrieveConsolidationRequest, true));
117+
$this->assertEquals(ComplexType\DeleteOpenShipmentReply::class, $request->getDeleteOpenShipmentReply($deleteOpenShipmentRequest, true));
118+
}
119+
}

util/ComplexTypePopulator.php

+4-3
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ public function __construct()
2828
* Recursively populates a ComplexType object with fake data
2929
*
3030
* @param AbstractComplexType $object
31+
* @return $this
3132
*/
3233
public function populate(AbstractComplexType $object)
3334
{
@@ -52,6 +53,8 @@ public function populate(AbstractComplexType $object)
5253

5354
$object->{$reflectionMethod->name}($fakeValue);
5455
}
56+
57+
return $this;
5558
}
5659

5760
protected function getFakeValue(\ReflectionMethod $reflectionMethod)
@@ -118,6 +121,4 @@ protected function getRandomConstValueFromSimpleType($fullyQualifiedClassName)
118121
$constantValues = $reflectionClass->getConstants();
119122
return $constantValues[array_rand($constantValues)];
120123
}
121-
122-
123-
}
124+
}

0 commit comments

Comments
 (0)