public function testCanBeCreatedFromTrackingNumber() { $number = ContainerTrackingNumber::fromString('test'); $jsonNumber = JsonContainerTrackingNumber::fromNumber($number); $this->assertInstanceOf(JsonContainerTrackingNumber::class, $jsonNumber); return $jsonNumber; }
/** * @param HttpRequest $request */ public function handle(HttpRequest $request) { if ($request->isPost() && $request->getUrl()->getFirstComponent() == 'containers') { return $this->writer->registerContainer(); } if ($request->isGet() && $request->getUrl()->getFirstComponent() == 'containers') { $location = $this->reader->locateContainer(ContainerTrackingNumber::fromString($request->getUrl()->getSecondComponent())); $jsonLocation = JsonLocation::fromLocation($location); return $jsonLocation->json(); } }
public function testHandlesGetRequestToLocateContainer() { $request = $this->getMockBuilder(HttpRequest::class)->disableOriginalConstructor()->getMock(); $requestUrl = $this->getMockBuilder(HttpRequestUrl::class)->disableOriginalConstructor()->getMock(); $requestUrl->method('getFirstComponent')->willReturn('containers'); $requestUrl->method('getSecondComponent')->willReturn('the-tracking-number'); $request->method('isGet')->willReturn(true); $request->method('getUrl')->willReturn($requestUrl); $trackingNumber = ContainerTrackingNumber::fromString('the-tracking-number'); $location = Location::fromCoordinates(Latitude::fromFloat(10.0), Longitude::fromFloat(20.0)); $this->reader->expects($this->once())->method('locateContainer')->with($trackingNumber)->willReturn($location); $this->assertEquals('{"latitude":10,"longitude":20}', $this->api->handle($request)); }
/** * @expectedException \bgphp15\nameless\InvalidArgumentException */ public function testCannotBeCreatedFromEmptyString() { ContainerTrackingNumber::fromString(''); }