public function testMethods() { $route = new Route('name', 'sourceRoute', 'action'); $this->assertEquals($route->getMethods(), ['GET']); $route->setMethods(['POST']); $this->assertEquals($route->getMethods(), ['POST']); $route->addMethod('HEAD'); $this->assertEquals($route->getMethods(), ['POST', 'HEAD']); $route->removeMethod('POST'); $this->assertEquals($route->getMethods(), ['HEAD']); $this->assertEquals($route->isSatisfiedByMethod('HEAD'), true); $this->assertEquals($route->isSatisfiedByMethod('GET'), false); $route->addMethod('GET'); $this->assertEquals($route->isSatisfiedByMethod('GET'), true); }
/** * Transforms Route array to Route object. * @param array $route Route array with details. * @return Route */ public function transformArrayToRoute(array $route) { if (!isset($route['name']) || !isset($route['sourceRoute']) || !isset($route['action'])) { throw new InvalidArgumentException('Each Route must contains name, sourceRoute and action indexes.'); } $obj = new Route($route['name'], $route['sourceRoute'], $route['action']); if (isset($route['rules'])) { $obj->setRules($route['rules']); } if (isset($route['methods'])) { $obj->setMethods($route['methods']); } if (isset($route['route'])) { $obj->setRoute($route['route']); } if (isset($route['defaults'])) { $obj->setDefaults($route['defaults']); } if (isset($route['extras'])) { $obj->setExtras($route['extras']); } if (isset($route['tokens'])) { $obj->setTokens($route['tokens']); } if (isset($route['arguments'])) { $obj->setArguments($route['arguments']); } return $obj; }