1414namespace App \Tests \Controller ;
1515
1616use ApiTestCase \JsonApiTestCase ;
17+ use App \Foundry \Factory \AuthorFactory ;
18+ use App \Foundry \Factory \ComicBookFactory ;
19+ use App \Foundry \Story \DefaultComicBooksStory ;
1720use Symfony \Component \HttpFoundation \Response ;
21+ use Zenstruck \Foundry \Test \Factories ;
22+ use Zenstruck \Foundry \Test \ResetDatabase ;
1823
1924final class ComicBookApiTest extends JsonApiTestCase
2025{
26+ use Factories;
27+ use ResetDatabase;
28+
2129 /**
2230 * @test
2331 */
24- public function it_allows_creating_a_comic_book ()
32+ public function it_allows_creating_a_comic_book (): void
2533 {
2634 $ data =
2735<<<EOT
@@ -42,7 +50,7 @@ public function it_allows_creating_a_comic_book()
4250 /**
4351 * @test
4452 */
45- public function it_allows_versioned_creating_a_comic_book ()
53+ public function it_allows_versioned_creating_a_comic_book (): void
4654 {
4755 $ this ->markAsSkippedIfNecessary ();
4856
@@ -65,9 +73,9 @@ public function it_allows_versioned_creating_a_comic_book()
6573 /**
6674 * @test
6775 */
68- public function it_allows_updating_a_comic_book ()
76+ public function it_allows_updating_a_comic_book (): void
6977 {
70- $ objects = $ this -> loadFixturesFromFile ( ' comic_books.yml ' );
78+ $ comicBook = self :: someComicBook ()-> create ( );
7179
7280 $ data =
7381<<<EOT
@@ -80,17 +88,17 @@ public function it_allows_updating_a_comic_book()
8088 }
8189EOT ;
8290
83- $ this ->client ->request ('PUT ' , '/v1/comic-books/ ' . $ objects [ ' comic-book1 ' ] ->getId (), [], [], ['CONTENT_TYPE ' => 'application/json ' ], $ data );
91+ $ this ->client ->request ('PUT ' , '/v1/comic-books/ ' . $ comicBook ->getId (), [], [], ['CONTENT_TYPE ' => 'application/json ' ], $ data );
8492 $ response = $ this ->client ->getResponse ();
8593 $ this ->assertResponseCode ($ response , Response::HTTP_NO_CONTENT );
8694 }
8795
8896 /**
8997 * @test
9098 */
91- public function it_allows_updating_partial_information_about_a_comic_book ()
99+ public function it_allows_updating_partial_information_about_a_comic_book (): void
92100 {
93- $ objects = $ this -> loadFixturesFromFile ( ' comic_books.yml ' );
101+ $ comicBook = self :: someComicBook ()-> create ( );
94102
95103 $ data =
96104 <<<EOT
@@ -102,57 +110,57 @@ public function it_allows_updating_partial_information_about_a_comic_book()
102110 }
103111EOT ;
104112
105- $ this ->client ->request ('PATCH ' , '/v1/comic-books/ ' . $ objects [ ' comic-book1 ' ] ->getId (), [], [], ['CONTENT_TYPE ' => 'application/json ' ], $ data );
113+ $ this ->client ->request ('PATCH ' , '/v1/comic-books/ ' . $ comicBook ->getId (), [], [], ['CONTENT_TYPE ' => 'application/json ' ], $ data );
106114 $ response = $ this ->client ->getResponse ();
107115 $ this ->assertResponseCode ($ response , Response::HTTP_NO_CONTENT );
108116 }
109117
110118 /**
111119 * @test
112120 */
113- public function it_allows_removing_a_comic_book ()
121+ public function it_allows_removing_a_comic_book (): void
114122 {
115- $ objects = $ this -> loadFixturesFromFile ( ' comic_books.yml ' );
123+ $ comicBook = self :: someComicBook ()-> create ( );
116124
117- $ this ->client ->request ('DELETE ' , '/v1/comic-books/ ' . $ objects [ ' comic-book1 ' ] ->getId ());
125+ $ this ->client ->request ('DELETE ' , '/v1/comic-books/ ' . $ comicBook ->getId ());
118126 $ response = $ this ->client ->getResponse ();
119127 $ this ->assertResponseCode ($ response , Response::HTTP_NO_CONTENT );
120128 }
121129
122130 /**
123131 * @test
124132 */
125- public function it_allows_showing_a_comic_book ()
133+ public function it_allows_showing_a_comic_book (): void
126134 {
127- $ objects = $ this -> loadFixturesFromFile ( ' comic_books.yml ' );
135+ $ comicBook = self :: someComicBook ()-> create ( );
128136
129- $ this ->client ->request ('GET ' , '/v1/comic-books/ ' . $ objects [ ' comic-book1 ' ] ->getId ());
137+ $ this ->client ->request ('GET ' , '/v1/comic-books/ ' . $ comicBook ->getId ());
130138 $ response = $ this ->client ->getResponse ();
131139 $ this ->assertResponse ($ response , 'comic-books/show_response ' );
132140 }
133141
134142 /**
135143 * @test
136144 */
137- public function it_allows_versioning_of_a_showing_comic_book_serialization ()
145+ public function it_allows_versioning_of_a_showing_comic_book_serialization (): void
138146 {
139147 $ this ->markAsSkippedIfNecessary ();
140148
141- $ objects = $ this -> loadFixturesFromFile ( ' comic_books.yml ' );
149+ $ comicBook = self :: someComicBook ()-> create ( );
142150
143- $ this ->client ->request ('GET ' , '/v1.2/comic-books/ ' . $ objects [ ' comic-book1 ' ] ->getId ());
151+ $ this ->client ->request ('GET ' , '/v1.2/comic-books/ ' . $ comicBook ->getId ());
144152 $ response = $ this ->client ->getResponse ();
145153 $ this ->assertResponse ($ response , 'comic-books/versioned_show_response ' );
146154 }
147155
148156 /**
149157 * @test
150158 */
151- public function it_allows_indexing_of_comic_books ()
159+ public function it_allows_indexing_of_comic_books (): void
152160 {
153161 $ this ->markAsSkippedIfNecessary ();
154162
155- $ this -> loadFixturesFromFile ( ' comic_books.yml ' );
163+ DefaultComicBooksStory:: load ( );
156164
157165 $ this ->client ->request ('GET ' , '/v1/comic-books/ ' );
158166 $ response = $ this ->client ->getResponse ();
@@ -162,11 +170,11 @@ public function it_allows_indexing_of_comic_books()
162170 /**
163171 * @test
164172 */
165- public function it_allows_versioned_indexing_of_comic_books ()
173+ public function it_allows_versioned_indexing_of_comic_books (): void
166174 {
167175 $ this ->markAsSkippedIfNecessary ();
168176
169- $ this -> loadFixturesFromFile ( ' comic_books.yml ' );
177+ DefaultComicBooksStory:: load ( );
170178
171179 $ this ->client ->request ('GET ' , '/v1.2/comic-books/ ' );
172180 $ response = $ this ->client ->getResponse ();
@@ -176,10 +184,8 @@ public function it_allows_versioned_indexing_of_comic_books()
176184 /**
177185 * @test
178186 */
179- public function it_does_not_allow_showing_resource_if_it_does_not_exist ()
187+ public function it_does_not_allow_showing_resource_if_it_does_not_exist (): void
180188 {
181- $ this ->loadFixturesFromFile ('comic_books.yml ' );
182-
183189 $ this ->client ->request ('GET ' , '/v1/comic-books/3 ' );
184190 $ response = $ this ->client ->getResponse ();
185191 $ this ->assertResponseCode ($ response , Response::HTTP_NOT_FOUND );
@@ -191,4 +197,16 @@ private function markAsSkippedIfNecessary(): void
191197 $ this ->markTestSkipped ();
192198 }
193199 }
200+
201+ private static function someComicBook (): ComicBookFactory
202+ {
203+ return ComicBookFactory::new ()
204+ ->withTitle ('Old Man Logan ' )
205+ ->withAuthor (
206+ AuthorFactory::new ()
207+ ->withFirstName ('Andrea ' )
208+ ->withLastName ('Sorrentino ' ),
209+ )
210+ ;
211+ }
194212}
0 commit comments