public function testInstance() { $rule = new RedirectRule([1, Redirect::TYPE_EXACT, Redirect::TARGET_TYPE_PATH_URL, '/from/url', '/to/url', null, null, 301, null, Carbon::today(), Carbon::tomorrow()]); self::assertEquals(1, $rule->getId()); self::assertEquals(Redirect::TYPE_EXACT, $rule->getMatchType()); self::assertEquals(Redirect::TARGET_TYPE_PATH_URL, $rule->getTargetType()); self::assertEquals('/from/url', $rule->getFromUrl()); self::assertEquals('/to/url', $rule->getToUrl()); self::assertEquals(301, $rule->getStatusCode()); self::assertEquals(Carbon::today(), $rule->getFromDate()); self::assertEquals(Carbon::tomorrow(), $rule->getToDate()); }
/** * Check if rule matches a period * * @param RedirectRule $rule * @return bool */ private function matchesPeriod(RedirectRule $rule) { if ($rule->getFromDate() instanceof Carbon && $rule->getToDate() instanceof Carbon) { return $this->matchDate->between($rule->getFromDate(), $rule->getToDate()); } if ($rule->getFromDate() instanceof Carbon && $rule->getToDate() === null) { return $this->matchDate->gte($rule->getFromDate()); } if ($rule->getFromDate() === null && $rule->getToDate() instanceof Carbon) { return $this->matchDate->lte($rule->getToDate()); } return true; }