public function testCreateRequest() { $api = new Ups\Locator(); $api->setRequest($request = new RequestMock()); // Get locator data based on shipment address $locatorRequest = new \Ups\Entity\LocatorRequest(); // $originAddress $originAddress = new \Ups\Entity\OriginAddress(); $address = new \Ups\Entity\AddressKeyFormat(); $address->setPostcodePrimaryLow('1000'); $address->setCountryCode('NL'); $originAddress->setAddressKeyFormat($address); $locatorRequest->setOriginAddress($originAddress); // $translate $translate = new \Ups\Entity\Translate(); $translate->setLanguageCode('ENG'); $locatorRequest->setTranslate($translate); // $unitOfMeasurement $unitOfMeasurement = new \Ups\Entity\UnitOfMeasurement(); $unitOfMeasurement->setCode(\Ups\Entity\UnitOfMeasurement::UOM_KM); $unitOfMeasurement->setDescription('Kilometers'); $locatorRequest->setUnitOfMeasurement($unitOfMeasurement); try { // Get data $locations = $api->getLocations($locatorRequest, Ups\Locator::OPTION_UPS_ACCESS_POINT_LOCATIONS); } catch (Exception $e) { } $this->assertEquals($request->getRequestXml(), $request->getExpectedRequestXml('/Locator/Request1.xml')); }
/** * Create the TimeInTransit request. * * @param LocatorRequest $locatorRequest The request details. Refer to the UPS documentation for available structure * @param $requestOption * * @return string */ private function createRequest(LocatorRequest $locatorRequest, $requestOption) { $xml = new DOMDocument(); $xml->formatOutput = true; $trackRequest = $xml->appendChild($xml->createElement('LocatorRequest')); $trackRequest->setAttribute('xml:lang', 'en-US'); $request = $trackRequest->appendChild($xml->createElement('Request')); $node = $xml->importNode($this->createTransactionNode(), true); $request->appendChild($node); $request->appendChild($xml->createElement('RequestAction', 'Locator')); $request->appendChild($xml->createElement('RequestOption', $requestOption)); // Origin Address $trackRequest->appendChild($locatorRequest->getOriginAddress()->toNode($xml)); // Translate $trackRequest->appendChild($locatorRequest->getTranslate()->toNode($xml)); // Unit of measurement if ($locatorRequest->getUnitOfMeasurement()) { $trackRequest->appendChild($locatorRequest->getUnitOfMeasurement()->toNode($xml)); } // LocationSearchCriteria if ($locatorRequest->getLocationSearchCriteria()) { $trackRequest->appendChild($locatorRequest->getLocationSearchCriteria()->toNode($xml)); } return $xml->saveXML(); }