current = Carbon::now(); Carbon::setTestNow($this->current); $this->yearPeriodRetriever = $this->app->make(YearPeriodRetriever::class); $this->previousYearPeriod = $this->createYearPeriod($this->current->year - 1); $this->currentYearPeriod = $this->createCurrentYearPeriod(); $this->nextYearPeriod = $this->createYearPeriod($this->current->year + 1); } public function testRetrievesCorrectCurrentYearPeriod(): void { $this->assertSame($this->currentYearPeriod->id, $this->yearPeriodRetriever->current()->id); } public function testRetrievesCurrentYearPeriodWhenNoneIsSelected(): void { $this->clearSelectedYearPeriod(); $this->assertSame($this->currentYearPeriod->id, $this->yearPeriodRetriever->selected()->id); } public function testRetrievesCorrectYearPeriodWhenSelected(): void { $this->markYearPeriodAsSelected($this->nextYearPeriod); $this->assertSame($this->nextYearPeriod->id, $this->yearPeriodRetriever->selected()->id); } public function testLinks(): void { $expected = [ "current" => $this->current->year, "navigation" => [ [ "year" => $this->previousYearPeriod->year, "link" => route("year-periods.select", $this->previousYearPeriod), ], [ "year" => $this->currentYearPeriod->year, "link" => route("year-periods.select", $this->currentYearPeriod), ], [ "year" => $this->nextYearPeriod->year, "link" => route("year-periods.select", $this->nextYearPeriod), ], ], ]; $this->assertSame($expected, $this->yearPeriodRetriever->links()); } }