diff --git a/tests/Admin/AdminTest.php b/tests/Admin/AdminTest.php new file mode 100644 index 0000000..dec5086 --- /dev/null +++ b/tests/Admin/AdminTest.php @@ -0,0 +1,26 @@ +setName('Promotionname'); + $promotion->setDescription('Description'); + $promotion->setCreatedBy(new NullAccount(1)); + $promotion->setStart(new \DateTime('2000-05-05')); + $promotion->setEnd(new \DateTime('2005-05-05')); + + $money = new Money(); + $money->setString('1.23'); + + $promotion->setCosts($money); + $promotion->setBudget($money); + $promotion->setEarnings($money); + + $task = new Task(); + $task->setTitle('PromotionTask 1'); + $task->setCreatedBy(new NullAccount(1)); + + $task2 = new Task(); + $task2->setTitle('PromotionTask 2'); + $task2->setCreatedBy(new NullAccount(1)); + + $promotion->addTask($task); + $promotion->addTask($task2); + + $media = new Media(); + $media->setCreatedBy(new NullAccount(1)); + $media->setDescription('desc'); + $media->setPath('some/path'); + $media->setSize(11); + $media->setExtension('png'); + $media->setName('Promotion Media'); + $promotion->addMedia($media); + + $id = PromotionMapper::create($promotion); + self::assertGreaterThan(0, $promotion->getId()); + self::assertEquals($id, $promotion->getId()); + + $promotionR = PromotionMapper::get($promotion->getId()); + + self::assertEquals($promotion->getName(), $promotionR->getName()); + self::assertEquals($promotion->getDescription(), $promotionR->getDescription()); + self::assertEquals($promotion->countTasks(), $promotionR->countTasks()); + self::assertEquals($promotion->getCosts()->getAmount(), $promotionR->getCosts()->getAmount()); + self::assertEquals($promotion->getBudget()->getAmount(), $promotionR->getBudget()->getAmount()); + self::assertEquals($promotion->getEarnings()->getAmount(), $promotionR->getEarnings()->getAmount()); + self::assertEquals($promotion->getCreatedAt()->format('Y-m-d'), $promotionR->getCreatedAt()->format('Y-m-d')); + self::assertEquals($promotion->getStart()->format('Y-m-d'), $promotionR->getStart()->format('Y-m-d')); + self::assertEquals($promotion->getEnd()->format('Y-m-d'), $promotionR->getEnd()->format('Y-m-d')); + + $expected = $promotion->getMedia(); + $actual = $promotionR->getMedia(); + + self::assertEquals(\end($expected)->getName(), \end($actual)->getName()); + } + + public function testNewest() : void + { + $newest = PromotionMapper::getNewest(1); + + self::assertCount(1, $newest); + } + + /** + * @group volume + * @group module + * @coversNothing + */ + public function testVolume() : void + { + for ($i = 1; $i < 100; ++$i) { + $text = new Text(); + + $promotion = new Promotion(); + + $promotion->setName($text->generateText(\mt_rand(3, 7))); + $promotion->setDescription($text->generateText(\mt_rand(20, 100))); + $promotion->setCreatedBy(new NullAccount(1)); + $promotion->setStart(new \DateTime('2000-05-05')); + $promotion->setEnd(new \DateTime('2005-05-05')); + + $money = new Money(); + $money->setString('1.23'); + + $promotion->setCosts($money); + $promotion->setBudget($money); + $promotion->setEarnings($money); + + $id = PromotionMapper::create($promotion); + } + } +} diff --git a/tests/Models/PromotionTest.php b/tests/Models/PromotionTest.php new file mode 100644 index 0000000..8e78f87 --- /dev/null +++ b/tests/Models/PromotionTest.php @@ -0,0 +1,86 @@ +getId()); + self::assertInstanceOf('\Modules\Calendar\Models\Calendar', $promotion->getCalendar()); + self::assertEquals((new \DateTime('now'))->format('Y-m-d'), $promotion->getCreatedAt()->format('Y-m-d')); + self::assertEquals((new \DateTime('now'))->format('Y-m-d'), $promotion->getStart()->format('Y-m-d')); + self::assertEquals((new \DateTime('now'))->modify('+1 month')->format('Y-m-d'), $promotion->getEnd()->format('Y-m-d')); + self::assertEquals(0, $promotion->getCreatedBy()->getId()); + self::assertEquals('', $promotion->getName()); + self::assertEquals('', $promotion->getDescription()); + self::assertEquals(0, $promotion->getCosts()->getInt()); + self::assertEquals(0, $promotion->getBudget()->getInt()); + self::assertEquals(0, $promotion->getEarnings()->getInt()); + self::assertEmpty($promotion->getTasks()); + self::assertFalse($promotion->removeTask(2)); + self::assertInstanceOf('\Modules\Tasks\Models\Task', $promotion->getTask(0)); + } + + public function testSetGet() : void + { + $promotion = new Promotion(); + + $promotion->setName('Promotion'); + self::assertEquals('Promotion', $promotion->getName()); + + $promotion->setDescription('Description'); + self::assertEquals('Description', $promotion->getDescription()); + + $promotion->setStart($date = new \DateTime('2000-05-05')); + self::assertEquals($date->format('Y-m-d'), $promotion->getStart()->format('Y-m-d')); + + $promotion->setEnd($date = new \DateTime('2000-05-05')); + self::assertEquals($date->format('Y-m-d'), $promotion->getEnd()->format('Y-m-d')); + + $money = new Money(); + $money->setString('1.23'); + + $promotion->setCosts($money); + self::assertEquals($money->getAmount(), $promotion->getCosts()->getAmount()); + + $promotion->setBudget($money); + self::assertEquals($money->getAmount(), $promotion->getBudget()->getAmount()); + + $promotion->setEarnings($money); + self::assertEquals($money->getAmount(), $promotion->getEarnings()->getAmount()); + + $task = new Task(); + $task->setTitle('Promo Task A'); + $task->setCreatedBy(new NullAccount(1)); + + $promotion->addTask($task); + + self::assertEquals('Promo Task A', $promotion->getTask(0)->getTitle()); + self::assertCount(1, $promotion->getTasks()); + self::assertTrue($promotion->removeTask(0)); + self::assertEquals(0, $promotion->countTasks()); + } +}