mirror of
https://github.com/Karaka-Management/oms-EventManagement.git
synced 2026-01-11 16:48:42 +00:00
test fixes
This commit is contained in:
parent
12d025d336
commit
41c6e6f84a
199
Models/Event.php
199
Models/Event.php
|
|
@ -18,6 +18,7 @@ use Modules\Admin\Models\Account;
|
|||
use Modules\Admin\Models\NullAccount;
|
||||
use Modules\Calendar\Models\Calendar;
|
||||
use Modules\Tasks\Models\Task;
|
||||
use Modules\Tasks\Models\NullTask;
|
||||
use phpOMS\Localization\Money;
|
||||
use phpOMS\Stdlib\Base\Exception\InvalidEnumValue;
|
||||
|
||||
|
|
@ -85,7 +86,7 @@ class Event
|
|||
* @var Calendar
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private Calendar $calendar;
|
||||
public Calendar $calendar;
|
||||
|
||||
/**
|
||||
* Costs.
|
||||
|
|
@ -93,7 +94,7 @@ class Event
|
|||
* @var Money
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private Money $costs;
|
||||
public Money $costs;
|
||||
|
||||
/**
|
||||
* Budget.
|
||||
|
|
@ -101,7 +102,7 @@ class Event
|
|||
* @var Money
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private Money $budget;
|
||||
public Money $budget;
|
||||
|
||||
/**
|
||||
* Earnings.
|
||||
|
|
@ -109,7 +110,7 @@ class Event
|
|||
* @var Money
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private Money $earnings;
|
||||
public Money $earnings;
|
||||
|
||||
/**
|
||||
* Tasks.
|
||||
|
|
@ -133,7 +134,7 @@ class Event
|
|||
* @var int
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private int $progress = 0;
|
||||
public int $progress = 0;
|
||||
|
||||
/**
|
||||
* Progress type.
|
||||
|
|
@ -218,84 +219,6 @@ class Event
|
|||
$this->media[] = $media;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get start date.
|
||||
*
|
||||
* @return \DateTime
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function getStart() : \DateTime
|
||||
{
|
||||
return $this->start;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set start date.
|
||||
*
|
||||
* @param \DateTime $start Start date
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function setStart(\DateTime $start) : void
|
||||
{
|
||||
$this->start = $start;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set end.
|
||||
*
|
||||
* @param \DateTime $end End date
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function setEnd(\DateTime $end) : void
|
||||
{
|
||||
$this->end = $end;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get end.
|
||||
*
|
||||
* @return \DateTime
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function getEnd() : \DateTime
|
||||
{
|
||||
return $this->end;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get progress.
|
||||
*
|
||||
* @return int
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function getProgress() : int
|
||||
{
|
||||
return $this->progress;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set progress.
|
||||
*
|
||||
* @param int $progress Progress
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function setProgress(int $progress) : void
|
||||
{
|
||||
$this->progress = $progress;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get progress type.
|
||||
*
|
||||
|
|
@ -322,18 +245,6 @@ class Event
|
|||
$this->progressType = $type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get calendar.
|
||||
*
|
||||
* @return Calendar
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function getCalendar() : Calendar
|
||||
{
|
||||
return $this->calendar;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add task.
|
||||
*
|
||||
|
|
@ -345,11 +256,7 @@ class Event
|
|||
*/
|
||||
public function addTask(Task $task) : void
|
||||
{
|
||||
if ($task->getId() !== 0) {
|
||||
$this->tasks[$task->getId()] = $task;
|
||||
} else {
|
||||
$this->tasks[] = $task;
|
||||
}
|
||||
$this->tasks[] = $task;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -383,7 +290,7 @@ class Event
|
|||
*/
|
||||
public function getTask(int $id) : Task
|
||||
{
|
||||
return $this->tasks[$id] ?? new Task();
|
||||
return $this->tasks[$id] ?? new NullTask();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -441,80 +348,34 @@ class Event
|
|||
}
|
||||
|
||||
/**
|
||||
* Get costs.
|
||||
*
|
||||
* @return Money
|
||||
*
|
||||
* @since 1.0.0
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getCosts() : Money
|
||||
public function toArray() : array
|
||||
{
|
||||
return $this->costs;
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'type' => $this->type,
|
||||
'start' => $this->start,
|
||||
'end' => $this->end,
|
||||
'name' => $this->name,
|
||||
'description' => $this->description,
|
||||
'calendar' => $this->calendar,
|
||||
'costs' => $this->costs,
|
||||
'budget' => $this->budget,
|
||||
'earnings' => $this->earnings,
|
||||
'tasks' => $this->tasks,
|
||||
'media' => $this->media,
|
||||
'progress' => $this->progress,
|
||||
'progressType' => $this->progressType,
|
||||
'createdAt' => $this->createdAt,
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get budget.
|
||||
*
|
||||
* @return Money
|
||||
*
|
||||
* @since 1.0.0
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getBudget() : Money
|
||||
public function jsonSerialize()
|
||||
{
|
||||
return $this->budget;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get earnings.
|
||||
*
|
||||
* @return Money
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function getEarnings() : Money
|
||||
{
|
||||
return $this->earnings;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set costs.
|
||||
*
|
||||
* @param Money $costs Costs
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function setCosts(Money $costs) : void
|
||||
{
|
||||
$this->costs = $costs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set budget.
|
||||
*
|
||||
* @param Money $budget Budget
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function setBudget(Money $budget) : void
|
||||
{
|
||||
$this->budget = $budget;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set earnings.
|
||||
*
|
||||
* @param Money $earnings Earnings
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function setEarnings(Money $earnings) : void
|
||||
{
|
||||
$this->earnings = $earnings;
|
||||
return $this->toArray();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,15 +41,15 @@ final class EventMapperTest extends \PHPUnit\Framework\TestCase
|
|||
$event->name = 'Eventname';
|
||||
$event->description = 'Event description';
|
||||
$event->createdBy = new NullAccount(1);
|
||||
$event->setStart(new \DateTime('2000-05-05'));
|
||||
$event->setEnd(new \DateTime('2005-05-05'));
|
||||
$event->start = new \DateTime('2000-05-05');
|
||||
$event->end = new \DateTime('2005-05-05');
|
||||
|
||||
$money = new Money();
|
||||
$money->setString('1.23');
|
||||
|
||||
$event->setCosts($money);
|
||||
$event->setBudget($money);
|
||||
$event->setEarnings($money);
|
||||
$event->costs = $money;
|
||||
$event->budget = $money;
|
||||
$event->earnings = $money;
|
||||
|
||||
$task = new Task();
|
||||
$task->title = 'EventTask 1';
|
||||
|
|
@ -62,7 +62,7 @@ final class EventMapperTest extends \PHPUnit\Framework\TestCase
|
|||
$event->addTask($task);
|
||||
$event->addTask($task2);
|
||||
|
||||
$event->setProgress(11);
|
||||
$event->progress = 11;
|
||||
$event->setProgressType(ProgressType::TASKS);
|
||||
|
||||
$media = new Media();
|
||||
|
|
@ -83,12 +83,12 @@ final class EventMapperTest extends \PHPUnit\Framework\TestCase
|
|||
self::assertEquals($event->name, $eventR->name);
|
||||
self::assertEquals($event->description, $eventR->description);
|
||||
self::assertEquals($event->countTasks(), $eventR->countTasks());
|
||||
self::assertEquals($event->getStart()->format('Y-m-d'), $eventR->getStart()->format('Y-m-d'));
|
||||
self::assertEquals($event->getEnd()->format('Y-m-d'), $eventR->getEnd()->format('Y-m-d'));
|
||||
self::assertEquals($event->getCosts()->getAmount(), $eventR->getCosts()->getAmount());
|
||||
self::assertEquals($event->getBudget()->getAmount(), $eventR->getBudget()->getAmount());
|
||||
self::assertEquals($event->getEarnings()->getAmount(), $eventR->getEarnings()->getAmount());
|
||||
self::assertEquals($event->getProgress(), $eventR->getProgress());
|
||||
self::assertEquals($event->start->format('Y-m-d'), $eventR->start->format('Y-m-d'));
|
||||
self::assertEquals($event->end->format('Y-m-d'), $eventR->end->format('Y-m-d'));
|
||||
self::assertEquals($event->costs->getAmount(), $eventR->costs->getAmount());
|
||||
self::assertEquals($event->budget->getAmount(), $eventR->budget->getAmount());
|
||||
self::assertEquals($event->earnings->getAmount(), $eventR->earnings->getAmount());
|
||||
self::assertEquals($event->progress, $eventR->progress);
|
||||
self::assertEquals($event->getProgressType(), $eventR->getProgressType());
|
||||
|
||||
$expected = $event->getMedia();
|
||||
|
|
@ -124,17 +124,17 @@ final class EventMapperTest extends \PHPUnit\Framework\TestCase
|
|||
$event->name = $text->generateText(\mt_rand(3, 7));
|
||||
$event->description = $text->generateText(\mt_rand(20, 100));
|
||||
$event->createdBy = new NullAccount(1);
|
||||
$event->setStart(new \DateTime('2000-05-05'));
|
||||
$event->setEnd(new \DateTime('2005-05-05'));
|
||||
$event->setProgress(\mt_rand(0, 100));
|
||||
$event->start = new \DateTime('2000-05-05');
|
||||
$event->end = new \DateTime('2005-05-05');
|
||||
$event->progress = \mt_rand(0, 100);
|
||||
$event->setProgressType(\mt_rand(0, 4));
|
||||
|
||||
$money = new Money();
|
||||
$money->setString('1.23');
|
||||
|
||||
$event->setCosts($money);
|
||||
$event->setBudget($money);
|
||||
$event->setEarnings($money);
|
||||
$event->costs = $money;
|
||||
$event->budget = $money;
|
||||
$event->earnings = $money;
|
||||
|
||||
$id = EventMapper::create($event);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ use Modules\EventManagement\Models\Event;
|
|||
use Modules\EventManagement\Models\EventType;
|
||||
use Modules\EventManagement\Models\ProgressType;
|
||||
use Modules\Tasks\Models\Task;
|
||||
use Modules\Media\Models\Media;
|
||||
use phpOMS\Localization\Money;
|
||||
|
||||
/**
|
||||
|
|
@ -25,67 +26,181 @@ use phpOMS\Localization\Money;
|
|||
*/
|
||||
final class EventTest extends \PHPUnit\Framework\TestCase
|
||||
{
|
||||
private Event $event;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function setUp() : void
|
||||
{
|
||||
$this->event = new Event();
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\EventManagement\Models\Event
|
||||
* @group module
|
||||
*/
|
||||
public function testDefault() : void
|
||||
{
|
||||
$event = new Event();
|
||||
|
||||
self::assertEquals(0, $event->getId());
|
||||
self::assertEquals(EventType::DEFAULT, $event->getType());
|
||||
self::assertInstanceOf('\Modules\Calendar\Models\Calendar', $event->getCalendar());
|
||||
self::assertEquals((new \DateTime('now'))->format('Y-m-d'), $event->getStart()->format('Y-m-d'));
|
||||
self::assertEquals((new \DateTime('now'))->modify('+1 month')->format('Y-m-d'), $event->getEnd()->format('Y-m-d'));
|
||||
self::assertEquals(0, $event->getCosts()->getInt());
|
||||
self::assertEquals(0, $event->getBudget()->getInt());
|
||||
self::assertEquals(0, $event->getEarnings()->getInt());
|
||||
self::assertFalse($event->removeTask(2));
|
||||
self::assertEmpty($event->getTasks());
|
||||
self::assertEquals(0, $event->getProgress());
|
||||
self::assertEquals(ProgressType::MANUAL, $event->getProgressType());
|
||||
self::assertEquals(0, $this->event->getId());
|
||||
self::assertEquals(EventType::DEFAULT, $this->event->getType());
|
||||
self::assertInstanceOf('\Modules\Calendar\Models\Calendar', $this->event->calendar);
|
||||
self::assertEquals((new \DateTime('now'))->format('Y-m-d'), $this->event->start->format('Y-m-d'));
|
||||
self::assertEquals((new \DateTime('now'))->modify('+1 month')->format('Y-m-d'), $this->event->end->format('Y-m-d'));
|
||||
self::assertEquals(0, $this->event->costs->getInt());
|
||||
self::assertEquals(0, $this->event->budget->getInt());
|
||||
self::assertEquals(0, $this->event->earnings->getInt());
|
||||
self::assertFalse($this->event->removeTask(2));
|
||||
self::assertEmpty($this->event->getTasks());
|
||||
self::assertEmpty($this->event->getMedia());
|
||||
self::assertInstanceOf('\Modules\Tasks\Models\NullTask', $this->event->getTask(1));
|
||||
self::assertEquals(0, $this->event->progress);
|
||||
self::assertEquals(ProgressType::MANUAL, $this->event->getProgressType());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\EventManagement\Models\Event
|
||||
* @group module
|
||||
*/
|
||||
public function testSetGet() : void
|
||||
public function testTypeInputOutput() : void
|
||||
{
|
||||
$event = new Event();
|
||||
$this->event->setType(EventType::SEMINAR);
|
||||
self::assertEquals(EventType::SEMINAR, $this->event->getType());
|
||||
}
|
||||
|
||||
$event->setType(EventType::SEMINAR);
|
||||
self::assertEquals(EventType::SEMINAR, $event->getType());
|
||||
/**
|
||||
* @covers Modules\EventManagement\Models\Event
|
||||
* @group module
|
||||
*/
|
||||
public function testInvalidTypeInputOutput() : void
|
||||
{
|
||||
$this->expectException(\phpOMS\Stdlib\Base\Exception\InvalidEnumValue::class);
|
||||
$this->event->setType(999);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\EventManagement\Models\Event
|
||||
* @group module
|
||||
*/
|
||||
public function testCostsInputOutput() : void
|
||||
{
|
||||
$money = new Money();
|
||||
$money->setString('1.23');
|
||||
|
||||
$event->setCosts($money);
|
||||
self::assertEquals($money->getAmount(), $event->getCosts()->getAmount());
|
||||
$this->event->costs = $money;
|
||||
self::assertEquals($money->getAmount(), $this->event->costs->getAmount());
|
||||
}
|
||||
|
||||
$event->setBudget($money);
|
||||
self::assertEquals($money->getAmount(), $event->getBudget()->getAmount());
|
||||
/**
|
||||
* @covers Modules\EventManagement\Models\Event
|
||||
* @group module
|
||||
*/
|
||||
public function testBudgetInputOutput() : void
|
||||
{
|
||||
$money = new Money();
|
||||
$money->setString('1.23');
|
||||
|
||||
$event->setEarnings($money);
|
||||
self::assertEquals($money->getAmount(), $event->getEarnings()->getAmount());
|
||||
$this->event->budget = $money;
|
||||
self::assertEquals($money->getAmount(), $this->event->budget->getAmount());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\EventManagement\Models\Event
|
||||
* @group module
|
||||
*/
|
||||
public function testEarningsInputOutput() : void
|
||||
{
|
||||
$money = new Money();
|
||||
$money->setString('1.23');
|
||||
|
||||
$this->event->earnings = $money;
|
||||
self::assertEquals($money->getAmount(), $this->event->earnings->getAmount());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\EventManagement\Models\Event
|
||||
* @group module
|
||||
*/
|
||||
public function testMediaInputOutput() : void
|
||||
{
|
||||
$this->event->addMedia(new Media());
|
||||
self::assertCount(1, $this->event->getMedia());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\EventManagement\Models\Event
|
||||
* @group module
|
||||
*/
|
||||
public function testTaskInputOutput() : void
|
||||
{
|
||||
$task = new Task();
|
||||
$task->title = 'A';
|
||||
|
||||
$event->addTask($task);
|
||||
self::assertEquals('A', $event->getTask(0)->title);
|
||||
$this->event->addTask($task);
|
||||
self::assertEquals('A', $this->event->getTask(0)->title);
|
||||
|
||||
self::assertTrue($event->removeTask(0));
|
||||
self::assertEquals(0, $event->countTasks());
|
||||
self::assertTrue($this->event->removeTask(0));
|
||||
self::assertEquals(0, $this->event->countTasks());
|
||||
|
||||
$event->addTask($task);
|
||||
self::assertCount(1, $event->getTasks());
|
||||
$this->event->addTask($task);
|
||||
self::assertCount(1, $this->event->getTasks());
|
||||
}
|
||||
|
||||
$event->setProgress(10);
|
||||
self::assertEquals(10, $event->getProgress());
|
||||
/**
|
||||
* @covers Modules\EventManagement\Models\Event
|
||||
* @group module
|
||||
*/
|
||||
public function testProgressInputOutput() : void
|
||||
{
|
||||
$this->event->progress = 10;
|
||||
self::assertEquals(10, $this->event->progress);
|
||||
}
|
||||
|
||||
$event->setProgressType(ProgressType::TASKS);
|
||||
self::assertEquals(ProgressType::TASKS, $event->getProgressType());
|
||||
/**
|
||||
* @covers Modules\EventManagement\Models\Event
|
||||
* @group module
|
||||
*/
|
||||
public function testProgressTypeInputOutput() : void
|
||||
{
|
||||
$this->event->setProgressType(ProgressType::TASKS);
|
||||
self::assertEquals(ProgressType::TASKS, $this->event->getProgressType());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\EventManagement\Models\Event
|
||||
* @group module
|
||||
*/
|
||||
public function testSerialize() : void
|
||||
{
|
||||
$this->event->name = 'Name';
|
||||
$this->event->description = 'Description';
|
||||
$this->event->start = new \DateTime();
|
||||
$this->event->end = new \DateTime();
|
||||
$this->event->setType(EventType::SEMINAR);
|
||||
$this->event->progress = 10;
|
||||
$this->event->setProgressType(ProgressType::TASKS);
|
||||
|
||||
$serialized = $this->event->jsonSerialize();
|
||||
unset($serialized['calendar']);
|
||||
unset($serialized['createdAt']);
|
||||
|
||||
self::assertEquals(
|
||||
[
|
||||
'id' => 0,
|
||||
'type' => EventType::SEMINAR,
|
||||
'start' => $this->event->start,
|
||||
'end' => $this->event->end,
|
||||
'name' => 'Name',
|
||||
'description' => 'Description',
|
||||
'costs' => new Money(),
|
||||
'budget' => new Money(),
|
||||
'earnings' => new Money(),
|
||||
'tasks' => [],
|
||||
'media' => [],
|
||||
'progress' => 10,
|
||||
'progressType' => ProgressType::TASKS,
|
||||
],
|
||||
$serialized
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user