diff --git a/tests/e2e/Controllers/TextControllerTest.php b/tests/e2e/Controllers/TextControllerTest.php new file mode 100644 index 0000000..5788360 --- /dev/null +++ b/tests/e2e/Controllers/TextControllerTest.php @@ -0,0 +1,83 @@ +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() + ); + } +}