public function test_sort_graded() { $time = time(); $oldertime = $time - 100; $newertime = $time + 100; $older = new \StdClass(); $older->opentime = $oldertime; $older->closetime = $oldertime; $older->coursemoduleid = 123; $newer = new \StdClass(); $newer->opentime = $newertime; $newer->closetime = $newertime; $newer->coursemoduleid = 789; $actual = local::sort_graded($older, $newer); $this->assertSame(-1, $actual); $actual = local::sort_graded($newer, $older); $this->assertSame(1, $actual); $olderopenonly = new \StdClass(); $olderopenonly->opentime = $oldertime; $olderopenonly->coursemoduleid = 101; $neweropenonly = new \StdClass(); $neweropenonly->opentime = $newertime; $neweropenonly->coursemoduleid = 102; $actual = local::sort_graded($olderopenonly, $newer); $this->assertSame(-1, $actual); $actual = local::sort_graded($olderopenonly, $neweropenonly); $this->assertSame(-1, $actual); $actual = local::sort_graded($neweropenonly, $older); $this->assertSame(1, $actual); $actual = local::sort_graded($neweropenonly, $olderopenonly); $this->assertSame(1, $actual); $one = new \StdClass(); $one->opentime = $time; $one->closetime = $time; $one->coursemoduleid = 1; $two = new \StdClass(); $two->opentime = $time; $two->closetime = $time; $two->coursemoduleid = 2; $actual = local::sort_graded($one, $two); $this->assertSame(-1, $actual); $actual = local::sort_graded($two, $one); $this->assertSame(1, $actual); // Everything equals itself. $events = [$older, $newer, $olderopenonly, $neweropenonly, $one, $two]; foreach ($events as $event) { $actual = local::sort_graded($event, $event); $this->assertSame(0, $actual); } }