diff --git a/tests/integration/API/JSON/ResponseBuilders/NewslettersResponseBuilderTest.php b/tests/integration/API/JSON/ResponseBuilders/NewslettersResponseBuilderTest.php new file mode 100644 index 0000000000..ea9a5d5df6 --- /dev/null +++ b/tests/integration/API/JSON/ResponseBuilders/NewslettersResponseBuilderTest.php @@ -0,0 +1,49 @@ +get(EntityManager::class); + $em->persist($newsletter = new NewsletterEntity); + $newsletter->setSubject('Response Builder Test'); + $newsletter->setType(NewsletterEntity::TYPE_STANDARD); + $newsletter->setStatus(NewsletterEntity::STATUS_SENT); + $em->flush(); + $stats = [ + 'total_sent' => 10, + 'children_count' => 3, + 'statistics' => [ + 'opened' => 6, + 'clicked' => 4, + 'unsubscribed' => 2, + 'revenue' => null, + ], + ]; + $repository = Stub::make(NewsletterStatisticsRepository::class, [ + 'getTotalSentCount' => $stats['total_sent'], + 'getChildrenCount' => $stats['children_count'], + 'getStatistics' => new NewsletterStatistics(4, 6, 2, 10, null), + ]); + $responseBuilder = new NewslettersResponseBuilder($repository); + $response = $responseBuilder->build($newsletter, [ + NewslettersResponseBuilder::RELATION_CHILDREN_COUNT, + NewslettersResponseBuilder::RELATION_TOTAL_SENT, + NewslettersResponseBuilder::RELATION_STATISTICS, + ]); + expect($response['total_sent'])->equals($stats['total_sent']); + expect($response['children_count'])->equals($stats['children_count']); + expect($response['statistics'])->equals($stats['statistics']); + $em->remove($newsletter); + $em->flush(); + } +} \ No newline at end of file