1
+ <?php
2
+
3
+ namespace ProgrammatorDev \OpenWeatherMap \Test \Integration ;
4
+
5
+ use ProgrammatorDev \OpenWeatherMap \Entity \OneCall \Weather ;
6
+ use ProgrammatorDev \OpenWeatherMap \Entity \OneCall \WeatherMoment ;
7
+ use ProgrammatorDev \OpenWeatherMap \Entity \OneCall \WeatherSummary ;
8
+ use ProgrammatorDev \OpenWeatherMap \Test \AbstractTest ;
9
+ use ProgrammatorDev \OpenWeatherMap \Test \MockResponse ;
10
+ use ProgrammatorDev \OpenWeatherMap \Test \Util \TestValidationExceptionTrait ;
11
+ use ProgrammatorDev \OpenWeatherMap \Test \Util \TestItemResponseTrait ;
12
+
13
+ class OneCallResourceTest extends AbstractTest
14
+ {
15
+ use TestItemResponseTrait;
16
+ use TestValidationExceptionTrait;
17
+
18
+ public static function provideItemResponseData (): \Generator
19
+ {
20
+ yield 'get weather ' => [
21
+ Weather::class,
22
+ MockResponse::ONE_CALL_WEATHER ,
23
+ 'oneCall ' ,
24
+ 'getWeather ' ,
25
+ [50 , 50 ]
26
+ ];
27
+ yield 'get weather by date ' => [
28
+ WeatherMoment::class,
29
+ MockResponse::ONE_CALL_TIMEMACHINE ,
30
+ 'oneCall ' ,
31
+ 'getWeatherByDate ' ,
32
+ [50 , 50 , new \DateTime ()]
33
+ ];
34
+ yield 'get weather summary by date ' => [
35
+ WeatherSummary::class,
36
+ MockResponse::ONE_CALL_DAY_SUMMARY ,
37
+ 'oneCall ' ,
38
+ 'getWeatherSummaryByDate ' ,
39
+ [50 , 50 , new \DateTime ()]
40
+ ];
41
+ }
42
+
43
+ public static function provideValidationExceptionData (): \Generator
44
+ {
45
+ yield 'get weather, latitude lower than -90 ' => ['oneCall ' , 'getWeather ' , [-91 , 50 ]];
46
+ yield 'get weather, latitude greater than 90 ' => ['oneCall ' , 'getWeather ' , [91 , 50 ]];
47
+ yield 'get weather, longitude lower than -180 ' => ['oneCall ' , 'getWeather ' , [50 , -181 ]];
48
+ yield 'get weather, longitude greater than 180 ' => ['oneCall ' , 'getWeather ' , [50 , 181 ]];
49
+ yield 'get weather by date, latitude lower than -90 ' => ['oneCall ' , 'getWeatherByDate ' , [-91 , 50 , new \DateTime ()]];
50
+ yield 'get weather by date, latitude greater than 90 ' => ['oneCall ' , 'getWeatherByDate ' , [91 , 50 , new \DateTime ()]];
51
+ yield 'get weather by date, longitude lower than -180 ' => ['oneCall ' , 'getWeatherByDate ' , [50 , -181 , new \DateTime ()]];
52
+ yield 'get weather by date, longitude greater than 180 ' => ['oneCall ' , 'getWeatherByDate ' , [50 , 181 , new \DateTime ()]];
53
+ yield 'get weather summary by date, latitude lower than -90 ' => ['oneCall ' , 'getWeatherSummaryByDate ' , [-91 , 50 , new \DateTime ()]];
54
+ yield 'get weather summary by date, latitude greater than 90 ' => ['oneCall ' , 'getWeatherSummaryByDate ' , [91 , 50 , new \DateTime ()]];
55
+ yield 'get weather summary by date, longitude lower than -180 ' => ['oneCall ' , 'getWeatherSummaryByDate ' , [50 , -181 , new \DateTime ()]];
56
+ yield 'get weather summary by date, longitude greater than 180 ' => ['oneCall ' , 'getWeatherSummaryByDate ' , [50 , 181 , new \DateTime ()]];
57
+ }
58
+ }
0 commit comments