public function testMatch() { $data = [[self::SAMPLE_PATH, Route::GET_METHOD, true], ['/my', Route::GET_METHOD, true], [self::SAMPLE_PATH, Route::POST_METHOD, false], ['/abrakadabra', Route::GET_METHOD, false]]; foreach ($data as $row) { $expectedResult = $row[2]; $config = new RouteConfig(); $config->path = $row[0]; $config->methods = $row[1]; $config->request = $this->request; $route = new Route($config); $result = $route->match(); $this->assertEquals($expectedResult, $result, sprintf('%s:%s', $row[0], $row[1])); } }
public function testExecute() { $request = new SampleRequest(['method' => Route::GET_METHOD, 'params' => ['word2' => 'world!'], 'path' => '/aaa/Hello']); $output = new SampleOutput(); $collection = new RoutesCollection(); $config = new RouteConfig(); $config->request = $request; $config->operation = new ApiOperationFactory(function () use($request) { return new SampleOperation($request); }); $config->methods = Route::GET_METHOD; $config->path = '/aaa/:word1'; $route = new Route($config); $this->assertTrue($route->match()); $collection->add($route); $service = new ApiService($collection, $request, $output); $result = $service->execute(); $this->assertFalse($output->hasErrors()); $this->assertEquals('Hello world!', $result); }