textRepo = new FakeTextRepository; $this->textRepo->create(new CreateTextDto( name: 'test text', )); $this->controller = new TextController($this->textRepo); } public function test_get_one_text(): void { $response = $this->controller->getText( new Response(), 0, ); $this->assertEquals( json_encode([ 'id' => 0, 'name' => 'test text', ]), $response->getBody() ); } public function test_get_all_texts(): void { $this->textRepo->create(new CreateTextDto( name: 'test text 2', )); $response = $this->controller->getTexts(new Response()); $this->assertEquals( json_encode([ [ 'id' => 0, 'name' => 'test text', ], [ 'id' => 1, 'name' => 'test text 2', ] ]), $response->getBody() ); } public function test_create_text(): void { $request = (new ServerRequestFactory()) ->createServerRequest('POST', 'http://localhost/texts') ->withParsedBody(['name' => 'my new text']); $response = $this->controller->createText( $request, new Response(), new CreateText($this->textRepo), ); $this->assertEquals( json_encode([ 'id' => 1, 'name' => 'my new text', ]), $response->getBody() ); } }