Exemple #1
0
 /**
  * @param DeadlineWasAddedToTodo $event
  * @return void
  */
 protected function whenDeadlineWasAddedToTodo(DeadlineWasAddedToTodo $event)
 {
     $this->deadline = $event->deadline();
 }
Exemple #2
0
 /**
  * @test
  * @return Todo $todo
  */
 public function it_marks_an_open_todo_as_expired()
 {
     $todoId = TodoId::generate();
     $userId = UserId::generate();
     $deadline = TodoDeadline::fromString('yesterday');
     $events = [TodoWasPosted::byUser($userId, 'Do something that will be forgotten', $todoId, TodoStatus::open()), DeadlineWasAddedToTodo::byUserToDate($todoId, $userId, $deadline)];
     $todo = $this->reconstituteAggregateFromHistory(Todo::class, $events);
     $todo->markAsExpired();
     $events = $this->popRecordedEvent($todo);
     $this->assertEquals(1, count($events));
     $this->assertInstanceOf(TodoWasMarkedAsExpired::class, $events[0]);
     $expectedPayload = ['old_status' => 'open', 'new_status' => 'expired'];
     $this->assertEquals($expectedPayload, $events[0]->payload());
     return $todo;
 }
 /**
  * @param DeadlineWasAddedToTodo $event
  * @return void
  */
 public function onDeadlineWasAddedToTodo(DeadlineWasAddedToTodo $event)
 {
     $this->connection->update(Table::TODO, ['deadline' => $event->deadline()->toString()], ['id' => $event->todoId()->toString()]);
 }