22
33namespace App \Packages \Features \Controller \Tests ;
44
5+ use App \Models \Country ;
56use App \Models \WorldHeritage ;
67use App \Packages \Features \QueryUseCases \Dto \WorldHeritageDto ;
78use App \Packages \Features \QueryUseCases \UseCase \CreateWorldHeritageUseCase ;
9+ use Database \Seeders \CountrySeeder ;
810use Illuminate \Http \JsonResponse ;
911use Illuminate \Http \Request ;
1012use Illuminate \Support \Facades \DB ;
@@ -18,6 +20,8 @@ protected function setUp(): void
1820 {
1921 parent ::setUp ();
2022 $ this ->refresh ();
23+ $ seeder = new CountrySeeder ();
24+ $ seeder ->run ();
2125 $ this ->controller = new WorldHeritageController ();
2226 }
2327
@@ -32,6 +36,8 @@ private function refresh(): void
3236 if (env ('APP_ENV ' ) === 'testing ' ) {
3337 DB ::connection ('mysql ' )->statement ('SET FOREIGN_KEY_CHECKS=0; ' );
3438 WorldHeritage::truncate ();
39+ Country::truncate ();
40+ DB ::table ('site_state_parties ' )->truncate ();
3541 DB ::connection ('mysql ' )->statement ('SET FOREIGN_KEY_CHECKS=1; ' );
3642 }
3743 }
@@ -40,24 +46,47 @@ private function requestData(): array
4046 {
4147 return [
4248 'id ' => 1 ,
43- 'unesco_id ' => '668 ' ,
44- 'official_name ' => ' Historic Monuments of Ancient Nara ' ,
45- 'name ' => ' Historic Monuments of Ancient Nara ' ,
46- 'name_jp ' => ' 古都奈良の文化財 ' ,
47- 'country ' => 'Japan ' ,
48- 'region ' => 'Asia ' ,
49- 'state_party ' => 'JP ' ,
50- 'category ' => ' cultural ' ,
51- 'criteria ' => [ ' ii ' , ' iii ' , ' v ' ] ,
52- 'year_inscribed ' => 1998 ,
53- 'area_hectares ' => 442.0 ,
54- 'buffer_zone_hectares ' => 320.0 ,
49+ 'unesco_id ' => '1133 ' ,
50+ 'official_name ' => " Ancient and Primeval Beech Forests of the Carpathians and Other Regions of Europe " ,
51+ 'name ' => " Ancient and Primeval Beech Forests " ,
52+ 'name_jp ' => null ,
53+ 'country ' => 'Slovakia ' ,
54+ 'region ' => 'Europe ' ,
55+ 'category ' => 'natural ' ,
56+ 'criteria ' => [ ' ix ' ] ,
57+ 'state_party ' => null ,
58+ 'year_inscribed ' => 2007 ,
59+ 'area_hectares ' => 99947.81 ,
60+ 'buffer_zone_hectares ' => 296275.8 ,
5561 'is_endangered ' => false ,
56- 'latitude ' => 34.6851 ,
57- 'longitude ' => 135.8048 ,
58- 'short_description ' => 'Temples and shrines of the first permanent capital of Japan . ' ,
62+ 'latitude ' => 0.0 ,
63+ 'longitude ' => 0.0 ,
64+ 'short_description ' => 'Transnational serial property of European beech forests illustrating post-glacial expansion and ecological processes across Europe . ' ,
5965 'image_url ' => '' ,
60- 'unesco_site_url ' => 'https://whc.unesco.org/en/list/668/ ' ,
66+ 'unesco_site_url ' => 'https://whc.unesco.org/en/list/1133/ ' ,
67+ 'state_party_codes ' => [
68+ 'AL ' ,'AT ' ,'BE ' ,'BA ' ,'BG ' ,'HR ' ,'CZ ' ,'FR ' ,'DE ' ,'IT ' ,'MK ' ,'PL ' ,'RO ' ,'SK ' ,'SI ' ,'ES ' ,'CH ' ,'UA '
69+ ],
70+ 'state_parties_meta ' => [
71+ 'AL ' => ['is_primary ' => false , 'inscription_year ' => 2007 ],
72+ 'AT ' => ['is_primary ' => false , 'inscription_year ' => 2007 ],
73+ 'BE ' => ['is_primary ' => false , 'inscription_year ' => 2007 ],
74+ 'BA ' => ['is_primary ' => false , 'inscription_year ' => 2007 ],
75+ 'BG ' => ['is_primary ' => false , 'inscription_year ' => 2007 ],
76+ 'HR ' => ['is_primary ' => false , 'inscription_year ' => 2007 ],
77+ 'CZ ' => ['is_primary ' => false , 'inscription_year ' => 2007 ],
78+ 'FR ' => ['is_primary ' => false , 'inscription_year ' => 2007 ],
79+ 'DE ' => ['is_primary ' => false , 'inscription_year ' => 2007 ],
80+ 'IT ' => ['is_primary ' => false , 'inscription_year ' => 2007 ],
81+ 'MK ' => ['is_primary ' => false , 'inscription_year ' => 2007 ],
82+ 'PL ' => ['is_primary ' => false , 'inscription_year ' => 2007 ],
83+ 'RO ' => ['is_primary ' => false , 'inscription_year ' => 2007 ],
84+ 'SK ' => ['is_primary ' => true , 'inscription_year ' => 2007 ],
85+ 'SI ' => ['is_primary ' => false , 'inscription_year ' => 2007 ],
86+ 'ES ' => ['is_primary ' => false , 'inscription_year ' => 2007 ],
87+ 'CH ' => ['is_primary ' => false , 'inscription_year ' => 2007 ],
88+ 'UA ' => ['is_primary ' => false , 'inscription_year ' => 2007 ],
89+ ],
6190 ];
6291 }
6392
@@ -153,6 +182,14 @@ private function mockDto(): WorldHeritageDto
153182 ->shouldReceive ('getUnescoSiteUrl ' )
154183 ->andReturn ($ this ->requestData ()['unesco_site_url ' ]);
155184
185+ $ mock
186+ ->shouldReceive ('getStatePartyCodes ' )
187+ ->andReturn ($ this ->requestData ()['state_party_codes ' ]);
188+
189+ $ mock
190+ ->shouldReceive ('getStatePartiesMeta ' )
191+ ->andReturn ($ this ->requestData ()['state_parties_meta ' ] ?? []);
192+
156193 return $ mock ;
157194 }
158195
@@ -185,5 +222,25 @@ public function test_controller_check_value(): void
185222 );
186223
187224 $ this ->assertEquals (201 , $ result ->getStatusCode ());
225+ $ this ->assertEquals ($ this ->requestData ()['id ' ], $ result ->getOriginalContent ()['data ' ]['id ' ]);
226+ $ this ->assertEquals ($ this ->requestData ()['unesco_id ' ], $ result ->getOriginalContent ()['data ' ]['unesco_id ' ]);
227+ $ this ->assertEquals ($ this ->requestData ()['official_name ' ], $ result ->getOriginalContent ()['data ' ]['official_name ' ]);
228+ $ this ->assertEquals ($ this ->requestData ()['name ' ], $ result ->getOriginalContent ()['data ' ]['name ' ]);
229+ $ this ->assertEquals ($ this ->requestData ()['name_jp ' ], $ result ->getOriginalContent ()['data ' ]['name_jp ' ]);
230+ $ this ->assertEquals ($ this ->requestData ()['country ' ], $ result ->getOriginalContent ()['data ' ]['country ' ]);
231+ $ this ->assertEquals ($ this ->requestData ()['region ' ], $ result ->getOriginalContent ()['data ' ]['region ' ]);
232+ $ this ->assertEquals ($ this ->requestData ()['category ' ], $ result ->getOriginalContent ()['data ' ]['category ' ]);
233+ $ this ->assertEquals ($ this ->requestData ()['criteria ' ], $ result ->getOriginalContent ()['data ' ]['criteria ' ]);
234+ $ this ->assertEquals ($ this ->requestData ()['year_inscribed ' ], $ result ->getOriginalContent ()['data ' ]['year_inscribed ' ]);
235+ $ this ->assertEquals ($ this ->requestData ()['area_hectares ' ], $ result ->getOriginalContent ()['data ' ]['area_hectares ' ]);
236+ $ this ->assertEquals ($ this ->requestData ()['buffer_zone_hectares ' ], $ result ->getOriginalContent ()['data ' ]['buffer_zone_hectares ' ]);
237+ $ this ->assertEquals ($ this ->requestData ()['is_endangered ' ], $ result ->getOriginalContent ()['data ' ]['is_endangered ' ]);
238+ $ this ->assertEquals ($ this ->requestData ()['latitude ' ], $ result ->getOriginalContent ()['data ' ]['latitude ' ]);
239+ $ this ->assertEquals ($ this ->requestData ()['longitude ' ], $ result ->getOriginalContent ()['data ' ]['longitude ' ]);
240+ $ this ->assertEquals ($ this ->requestData ()['short_description ' ], $ result ->getOriginalContent ()['data ' ]['short_description ' ]);
241+ $ this ->assertEquals ($ this ->requestData ()['image_url ' ], $ result ->getOriginalContent ()['data ' ]['image_url ' ]);
242+ $ this ->assertEquals ($ this ->requestData ()['unesco_site_url ' ], $ result ->getOriginalContent ()['data ' ]['unesco_site_url ' ]);
243+ $ this ->assertEquals ($ this ->requestData ()['state_party_codes ' ], $ result ->getOriginalContent ()['data ' ]['state_party_codes ' ]);
244+ $ this ->assertEquals ($ this ->requestData ()['state_parties_meta ' ], $ result ->getOriginalContent ()['data ' ]['state_parties_meta ' ]);
188245 }
189246}
0 commit comments