getMockForAbstractClass(ServerRequestInterface::class); /** @var RequestHandlerInterface|MockObject $handler */ $handler = $this->getMockForAbstractClass(RequestHandlerInterface::class); $response = new Response(); $handler->expects($this->atLeastOnce()) ->method('handle') ->willReturn($response); $config = new Config(['add_headers' => false]); $middleware = new AddHeaders($config); $this->assertEquals($response, $middleware->process($request, $handler)); $config->set('add_headers', true); $config->set('headers', ['Foo-Header' => 'bar!']); $return = $middleware->process($request, $handler); $this->assertNotEquals($response, $return); $this->assertArraySubset(['Foo-Header' => ['bar!']], $return->getHeaders()); } }