assignment(); $firstCompletion = $this->utc('2026-08-15T12:00:00'); $laterCompletion = $this->utc('2026-08-15T13:00:00'); $assignment->complete($firstCompletion); $assignment->complete($laterCompletion); $this->assertSame($firstCompletion, $assignment->getCompletedAt()); $assignment->reopen(); $this->assertNull($assignment->getCompletedAt()); $assignment->complete($laterCompletion); $this->assertSame($laterCompletion, $assignment->getCompletedAt()); } private function assignment(): ScheduleAssignment { return new ScheduleAssignment( id: 1, name: 'Lesson', kind: 'lesson', path: ['Course', 'Lesson'], scheduledDate: $this->utc('2026-08-15'), position: 1, completedAt: null, ); } private function utc(string $value): DateTimeImmutable { return new DateTimeImmutable($value, new DateTimeZone('UTC')); } }