get(EntityManager::class); $segment = new SegmentEntity($name, SegmentEntity::TYPE_DEFAULT, $description); $em->persist($segment); $em->flush(); $responseBuilder = $di->get(SegmentsResponseBuilder::class); $response = $responseBuilder->build($segment); verify($response['name'])->equals($name); verify($response['type'])->equals(SegmentEntity::TYPE_DEFAULT); verify($response['description'])->equals($description); verify($response)->arrayHasKey('id'); verify($response)->arrayHasKey('created_at'); verify($response)->arrayHasKey('updated_at'); verify($response)->arrayHasKey('deleted_at'); $em->remove($segment); $em->flush(); } public function testItBuildsListingsResponse() { $name = 'Response Listings Builder Test'; $description = 'Testing description'; $di = ContainerWrapper::getInstance(); $em = $di->get(EntityManager::class); $segment = new SegmentEntity($name, SegmentEntity::TYPE_DEFAULT, $description); $em->persist($segment); $subscriber = new SubscriberEntity(); $subscriber->setStatus(SubscriberEntity::STATUS_SUBSCRIBED); $subscriber->setEmail('a@example.com'); $em->persist($subscriber); $subscriberSegment = new SubscriberSegmentEntity($segment, $subscriber, SubscriberEntity::STATUS_SUBSCRIBED); $em->persist($subscriberSegment); $em->flush(); $responseBuilder = $di->get(SegmentsResponseBuilder::class); $response = $responseBuilder->buildForListing([$segment]); verify($response)->isArray(); verify($response[0]['name'])->equals($name); verify($response[0]['type'])->equals(SegmentEntity::TYPE_DEFAULT); expect($response[0]['subscribers_url'])->startsWith('http'); verify($response[0]['subscribers_count']['subscribed'])->equals('1'); } }