/** * @param FindSettlementsCriteria $criteria * * @return array */ private function convertFindSettlementsCriteriaToRequest(FindSettlementsCriteria $criteria) { $createdAtFrom = $criteria->getCreatedAtFrom(); $createdAtTo = $criteria->getCreatedAtTo(); $updatedAtFrom = $criteria->getUpdatedAtFrom(); $updatedAtTo = $criteria->getUpdatedAtTo(); $releasedAtFrom = $criteria->getReleasedAtFrom(); $releasedAtTo = $criteria->getReleasedAtTo(); return ['created_at_from' => null === $createdAtFrom ? null : $createdAtFrom->format(DateTime::ISO8601), 'created_at_to' => null === $createdAtTo ? null : $createdAtTo->format(DateTime::ISO8601), 'updated_at_from' => null === $updatedAtFrom ? null : $updatedAtFrom->format(DateTime::ISO8601), 'updated_at_to' => null === $updatedAtTo ? null : $updatedAtTo->format(DateTime::ISO8601), 'released_at_from' => null === $releasedAtFrom ? null : $releasedAtFrom->format(DateTime::ISO8601), 'released_at_to' => null === $releasedAtTo ? null : $releasedAtTo->format(DateTime::ISO8601)]; }
/** * @test */ public function canFindWithAllParams() { $data = '{"settlements":[{"id":"a937f05e-e9fd-442e-a46f-11e84ba37806","short_reference":"20140101-BCDFGH","status":"open","conversion_ids":["c9b6b851-10f9-4bbf-881e-1d8a49adf7d8"],"entries":[],"created_at": "2014-01-01T12:00:00+00:00","updated_at": "2014-01-01T12:00:00+00:00","released_at": "2014-01-01T12:00:00+00:00"}],"pagination":{"total_entries":1,"total_pages":1,"current_page":1,"previous_page":-1,"next_page":-1,"per_page":25,"order":"created_at","order_asc_desc":"asc"}}'; /* @var DateTime[] $dateTimes */ $dateTimes = [new DateTime(), (new DateTime())->modify('-1 hour'), (new DateTime())->modify('-2 hour'), (new DateTime())->modify('-3 hour'), (new DateTime())->modify('-4 hour'), (new DateTime())->modify('-5 hour')]; $entryPoint = new SettlementsEntryPoint(new SimpleEntityManager(), $this->getMockedClient(json_decode($data), 'GET', 'settlements/find', ['created_at_from' => $dateTimes[0]->format(DateTime::ISO8601), 'created_at_to' => $dateTimes[1]->format(DateTime::ISO8601), 'updated_at_from' => $dateTimes[2]->format(DateTime::ISO8601), 'updated_at_to' => $dateTimes[3]->format(DateTime::ISO8601), 'released_at_from' => $dateTimes[4]->format(DateTime::ISO8601), 'released_at_to' => $dateTimes[5]->format(DateTime::ISO8601), 'short_reference' => 'A', 'status' => 'B', 'on_behalf_of' => 'C', 'page' => null, 'per_page' => null, 'order' => null, 'order_asc_desc' => null])); $criteria = new FindSettlementsCriteria(); $criteria->setCreatedAtFrom($dateTimes[0])->setCreatedAtTo($dateTimes[1])->setUpdatedAtFrom($dateTimes[2])->setUpdatedAtTo($dateTimes[3])->setReleasedAtFrom($dateTimes[4])->setReleasedAtTo($dateTimes[5]); $settlements = $entryPoint->find('A', 'B', $criteria, null, 'C'); $this->assertInstanceOf(Settlements::class, $settlements); $list = $settlements->getSettlements(); $this->assertArrayHasKey(0, $list); $this->assertCount(1, $list); $this->validateObjectStrictName($list[0], json_decode($data, true)['settlements'][0]); }