/** * Retrieves last added contract to the broker for all providers. * * @param ResponseFormatter $responseFormatter * * @return Contract * @throws PactBrokerException */ public function retrieveLastAddedPact(ResponseFormatter $responseFormatter = null) { $request = $this->requestBuilder->createRetrieveLastAddedPact($this->baseUrl); $response = $this->client->sendRequest($request); $this->checkIfResponseIsCorrect($response); return new Contract($response->getHeader('X-Pact-Consumer-Version') ? $response->getHeader('X-Pact-Consumer-Version')[0] : '', $responseFormatter ? $responseFormatter->format($response) : $response); }
function it_should_return_empty_string_if_no_version_passed(RequestInterface $request, ResponseInterface $response, ResponseFormatter $responseFormatter) { $this->requestBuilder->createRetrieveLastAddedPact($this->baseUrl)->willReturn($request); $this->client->sendRequest($request)->willReturn($response); $response->getStatusCode()->willReturn(200); $response->getHeader('X-Pact-Consumer-Version')->willReturn([]); $responseFormatter->format($response)->willReturn('some'); $contract = $this->retrieveLastAddedPact($responseFormatter); $contract->shouldHaveType(Contract::class); $contract->data()->shouldReturn('some'); $contract->version()->shouldReturn(''); }