diff --git a/tests/Admin/AdminTest.php b/tests/Admin/AdminTest.php new file mode 100644 index 0000000..95fe918 --- /dev/null +++ b/tests/Admin/AdminTest.php @@ -0,0 +1,26 @@ +setName('Projectname'); + $project->setDescription('Description'); + $project->setCreatedBy(new NullAccount(1)); + $project->setStart(new \DateTime('2000-05-05')); + $project->setEnd(new \DateTime('2005-05-05')); + + $money = new Money(); + $money->setString('1.23'); + + $project->setCosts($money); + $project->setBudgetCosts($money); + $project->setBudgetEarnings($money); + $project->setEarnings($money); + + $task = new Task(); + $task->setTitle('ProjectTask 1'); + $task->setCreatedBy(new NullAccount(1)); + + $task2 = new Task(); + $task2->setTitle('ProjectTask 2'); + $task2->setCreatedBy(new NullAccount(1)); + + $project->addTask($task); + $project->addTask($task2); + + $project->setProgress(10); + $project->setProgressType(ProgressType::TASKS); + + $media = new Media(); + $media->setCreatedBy(new NullAccount(1)); + $media->setDescription('desc'); + $media->setPath('some/path'); + $media->setSize(11); + $media->setExtension('png'); + $media->setName('Project Media'); + $project->addMedia($media); + + $id = ProjectMapper::create($project); + self::assertGreaterThan(0, $project->getId()); + self::assertEquals($id, $project->getId()); + + $projectR = ProjectMapper::get($project->getId()); + + self::assertEquals($project->getName(), $projectR->getName()); + self::assertEquals($project->getDescription(), $projectR->getDescription()); + self::assertEquals($project->countTasks(), $projectR->countTasks()); + self::assertEquals($project->getCosts()->getAmount(), $projectR->getCosts()->getAmount()); + self::assertEquals($project->getBudgetEarnings()->getAmount(), $projectR->getBudgetEarnings()->getAmount()); + self::assertEquals($project->getBudgetCosts()->getAmount(), $projectR->getBudgetCosts()->getAmount()); + self::assertEquals($project->getEarnings()->getAmount(), $projectR->getEarnings()->getAmount()); + self::assertEquals($project->getCreatedAt()->format('Y-m-d'), $projectR->getCreatedAt()->format('Y-m-d')); + self::assertEquals($project->getStart()->format('Y-m-d'), $projectR->getStart()->format('Y-m-d')); + self::assertEquals($project->getEnd()->format('Y-m-d'), $projectR->getEnd()->format('Y-m-d')); + self::assertEquals($project->getProgress(), $projectR->getProgress()); + self::assertEquals($project->getProgressType(), $projectR->getProgressType()); + + $expected = $project->getMedias(); + $actual = $projectR->getMedias(); + + self::assertEquals(\end($expected)->getName(), \end($actual)->getName()); + } + + public function testNewest() : void + { + $newest = ProjectMapper::getNewest(1); + + self::assertCount(1, $newest); + } + + /** + * @group volume + * @group module + * @coversNothing + */ + public function testVolume() : void + { + for ($i = 1; $i < 100; ++$i) { + $text = new Text(); + + $project = new Project(); + + $project->setName($text->generateText(\mt_rand(3, 7))); + $project->setDescription($text->generateText(\mt_rand(20, 100))); + $project->setCreatedBy(new NullAccount(1)); + $project->setStart(new \DateTime('2000-05-05')); + $project->setEnd(new \DateTime('2005-05-05')); + $project->setProgress(\mt_rand(0, 100)); + $project->setProgressType(\mt_rand(0, 4)); + + $money = new Money(); + $money->setString('1.23'); + + $project->setCosts($money); + $project->setBudgetCosts($money); + $project->setBudgetEarnings($money); + $project->setEarnings($money); + + $id = ProjectMapper::create($project); + } + } +} diff --git a/tests/Models/ProjectTest.php b/tests/Models/ProjectTest.php new file mode 100644 index 0000000..6b2823f --- /dev/null +++ b/tests/Models/ProjectTest.php @@ -0,0 +1,99 @@ +getId()); + self::assertInstanceOf('\Modules\Calendar\Models\Calendar', $project->getCalendar()); + self::assertEquals((new \DateTime('now'))->format('Y-m-d'), $project->getCreatedAt()->format('Y-m-d')); + self::assertEquals((new \DateTime('now'))->format('Y-m-d'), $project->getStart()->format('Y-m-d')); + self::assertEquals((new \DateTime('now'))->modify('+1 month')->format('Y-m-d'), $project->getEnd()->format('Y-m-d')); + self::assertEquals(0, $project->getCreatedBy()->getId()); + self::assertEquals('', $project->getName()); + self::assertEquals('', $project->getDescription()); + self::assertEquals(0, $project->getCosts()->getInt()); + self::assertEquals(0, $project->getBudgetCosts()->getInt()); + self::assertEquals(0, $project->getBudgetEarnings()->getInt()); + self::assertEquals(0, $project->getEarnings()->getInt()); + self::assertEquals(0, $project->getProgress()); + self::assertEquals(ProgressType::MANUAL, $project->getProgressType()); + self::assertEmpty($project->getTasks()); + self::assertFalse($project->removeTask(2)); + self::assertInstanceOf('\Modules\Tasks\Models\Task', $project->getTask(0)); + } + + public function testSetGet() : void + { + $project = new Project(); + + $project->setName('Project'); + self::assertEquals('Project', $project->getName()); + + $project->setDescription('Description'); + self::assertEquals('Description', $project->getDescription()); + + $project->setStart($date = new \DateTime('2000-05-05')); + self::assertEquals($date->format('Y-m-d'), $project->getStart()->format('Y-m-d')); + + $project->setEnd($date = new \DateTime('2000-05-05')); + self::assertEquals($date->format('Y-m-d'), $project->getEnd()->format('Y-m-d')); + + $money = new Money(); + $money->setString('1.23'); + + $project->setCosts($money); + self::assertEquals($money->getAmount(), $project->getCosts()->getAmount()); + + $project->setBudgetCosts($money); + self::assertEquals($money->getAmount(), $project->getBudgetCosts()->getAmount()); + + $project->setBudgetEarnings($money); + self::assertEquals($money->getAmount(), $project->getBudgetEarnings()->getAmount()); + + $project->setEarnings($money); + self::assertEquals($money->getAmount(), $project->getEarnings()->getAmount()); + + $task = new Task(); + $task->setTitle('A'); + $task->setCreatedBy(new NullAccount(1)); + + $project->addTask($task); + + self::assertEquals('A', $project->getTask(0)->getTitle()); + self::assertCount(1, $project->getTasks()); + self::assertTrue($project->removeTask(0)); + self::assertEquals(0, $project->countTasks()); + + $project->setProgress(10); + self::assertEquals(10, $project->getProgress()); + + $project->setProgressType(ProgressType::TASKS); + self::assertEquals(ProgressType::TASKS, $project->getProgressType()); + } +}