/** * @param $rateRequest * * @throws Exception * * @return RateRequest */ public function getRate($rateRequest) { if ($rateRequest instanceof Shipment) { $shipment = $rateRequest; $rateRequest = new RateRequest(); $rateRequest->setShipment($shipment); } $this->requestOption = 'Rate'; return $this->sendRequest($rateRequest); }
/** * @expectedException \Exception */ public function testGetRateInvalidShipment() { $request = new RateRequest(); $shipment = new Shipment(); $shipment->Shipper = new \stdClass(); $shipment->Shipper->Name = 'Test Shipper'; $shipment->Shipper->ShipperNumber = '12345'; $shipment->Shipper->Address = new \stdClass(); $shipment->Shipper->Address->AddressLine1 = '123 Some St.'; $shipment->Shipper->Address->City = 'Test'; $shipment->Shipper->Address->PostalCode = '12345'; $shipment->Shipper->Address->StateProvinceCode = 'WA'; $shipment->ShipTo = new \stdClass(); $shipment->ShipTo->CompanyName = 'Test ShipTo'; $shipment->ShipTo->Address = new \stdClass(); $shipment->ShipTo->Address->AddressLine1 = '1234 Some St.'; $shipment->ShipTo->Address->City = 'Other City'; $shipment->ShipTo->Address->PostalCode = '12345'; $shipment->ShipTo->Address->StateProvinceCode = 'WA'; $shipment->Service = new \stdClass(); $shipment->Service->Code = '03'; $package = new \stdClass(); $package->PackagingType = new \stdClass(); $package->PackagingType->Code = '02'; $package->PackageWeight = new \stdClass(); $package->PackageWeight->Weight = '10'; $shipment->Package = array($package); $request->setShipment($shipment); // should throw exception cause invalid zip code throw new \Exception(); // fixme //$this->rate->getRate($shipment); }