46 {
51
55 $prg->update();
56
57 $assignment1 = $prg->assignUser($usr1->getId(), 6);
58 $assignment2 = $prg->assignUser($usr2->getId(), 6);
59 $assignment2_r = $assignment2->restartAssignment();
60 $assignment3 = $prg->assignUser($usr3->getId(), 6);
61 $assignment4 = $prg->assignUser($usr4->getId(), 6);
62
63 $this->assertCount(1, $prg->getAssignmentsOf($usr1->getId()));
64 $this->assertCount(2, $prg->getAssignmentsOf($usr2->getId()));
65 $this->assertCount(1, $prg->getAssignmentsOf($usr3->getId()));
66 $this->assertCount(1, $prg->getAssignmentsOf($usr4->getId()));
67
68 $yesterday = new DateTime();
69 $yesterday->sub(new DateInterval('P1D'));
70 $tomorrow = new DateTime();
71 $tomorrow->add(new DateInterval('P1D'));
72
73 $m_ass1 = $this->assignment_repo->get($assignment1->getId());
74 $this->assignment_repo->update($m_ass1->setRestartDate($yesterday));
75 $m_ass2 = $this->assignment_repo->get($assignment2->getId());
76 $this->assignment_repo->update($m_ass2->setRestartDate($yesterday));
77 $m_ass3 = $this->assignment_repo->get($assignment3->getId());
78 $this->assignment_repo->update($m_ass3->setRestartDate($tomorrow));
79
80 $job->run();
81
82 $this->assertCount(2, $prg->getAssignmentsOf($usr1->getId()));
83 $this->assertCount(2, $prg->getAssignmentsOf($usr2->getId()));
84 $this->assertCount(1, $prg->getAssignmentsOf($usr3->getId()));
85 $this->assertCount(1, $prg->getAssignmentsOf($usr4->getId()));
86
87 foreach ($prg->getAssignmentsOf($usr1->getId()) as $ass) {
88 if ($ass->getId() !== $assignment1->getId()) {
89 $assignment1_r = $ass;
90 }
91 if ($ass->getId() === $assignment1->getId()) {
92 $assignment1 = $ass;
93 }
94 }
95 $this->assertEquals($assignment1->getRestartedAssignmentId(), $assignment1_r->getId());
96 }