public function testCanUseDifferentMiddlewaresPipeline() { $container = new Container(); $container->add(SapiEmitter::class, function () { $emitter = Mockery::mock(SapiEmitter::class); $emitter->shouldReceive('emit')->once()->andReturnUsing(function (Response $response) { $this->assertEquals(302, $response->getStatusCode()); }); return $emitter; }); $container->add('pipeline', function () { return function ($request, Response $response) { return $response->withStatus(302); }; }); $app = new Glue(); $app->setContainer($container); $app->setDefinitionProviders([new ZendDiactorosDefinition(), new MockRouterDefinition()]); $app->get('foo', 'bar'); $app->run(); }
public function testCanRunApp() { $request = Mockery::mock(ServerRequestInterface::class); $request->shouldReceive('getMethod')->andReturn('GET'); $request->shouldReceive('getUri')->andReturn(new Uri('/foobar')); $response = Mockery::mock(ResponseInterface::class); $response->shouldReceive('getBody->isWritable')->andReturn(true); $response->shouldReceive('getBody->write')->with('foobar'); $emitter = Mockery::mock(SapiEmitter::class); $emitter->shouldReceive('emit')->once()->with($response); $bus = Mockery::mock(CommandBus::class); $bus->shouldReceive('handle')->andReturn('foobar'); $bus->shouldIgnoreMissing(); $container = new Container(); $container->add(ServerRequestInterface::class, $request); $container->add(ResponseInterface::class, $response); $container->add(DummyController::class, new DummyController($bus)); $container->add(SapiEmitter::class, $emitter); $glue = new Glue(new Configuration(['debug' => false, 'providers' => [RoutingServiceProvider::class], 'middlewares' => [LeagueRouteMiddleware::class]]), $container); $glue->get('foobar', DummyController::class . '::index'); $glue->run(); }