Skip to content

Commit 5e8d232

Browse files
committed
tests: added one call entity tests
1 parent 724c5c0 commit 5e8d232

10 files changed

+564
-0
lines changed

tests/Unit/OneCall/AlertTest.php

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?php
2+
3+
namespace ProgrammatorDev\OpenWeatherMap\Test\Unit\OneCall;
4+
5+
use ProgrammatorDev\OpenWeatherMap\Entity\OneCall\Alert;
6+
use ProgrammatorDev\OpenWeatherMap\Test\AbstractTest;
7+
8+
class AlertTest extends AbstractTest
9+
{
10+
public function testMethods()
11+
{
12+
$entity = new Alert([
13+
'sender_name' => 'sender name',
14+
'event' => 'event name',
15+
'start' => 1715561801,
16+
'end' => 1715616968,
17+
'description' => 'description',
18+
'tags' => ['tag1', 'tag2']
19+
]);
20+
21+
$this->assertSame('sender name', $entity->getSenderName());
22+
$this->assertSame('event name', $entity->getEventName());
23+
$this->assertInstanceOf(\DateTimeImmutable::class, $entity->getStartsAt());
24+
$this->assertInstanceOf(\DateTimeImmutable::class, $entity->getEndsAt());
25+
$this->assertSame('description', $entity->getDescription());
26+
$this->assertSame(['tag1', 'tag2'], $entity->getTags());
27+
}
28+
}

tests/Unit/OneCall/DayDataTest.php

+79
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
<?php
2+
3+
namespace ProgrammatorDev\OpenWeatherMap\Test\Unit\OneCall;
4+
5+
use ProgrammatorDev\OpenWeatherMap\Entity\Condition;
6+
use ProgrammatorDev\OpenWeatherMap\Entity\OneCall\DayData;
7+
use ProgrammatorDev\OpenWeatherMap\Entity\OneCall\MoonPhase;
8+
use ProgrammatorDev\OpenWeatherMap\Entity\OneCall\Temperature;
9+
use ProgrammatorDev\OpenWeatherMap\Entity\Wind;
10+
use ProgrammatorDev\OpenWeatherMap\Test\AbstractTest;
11+
12+
class DayDataTest extends AbstractTest
13+
{
14+
public function testMethods()
15+
{
16+
$entity = new DayData([
17+
'dt' => 1715561801,
18+
'pressure' => 1000,
19+
'humidity' => 10,
20+
'dew_point' => 10,
21+
'uvi' => 1,
22+
'clouds' => 10,
23+
'wind_speed' => 10,
24+
'wind_deg' => 10,
25+
'wind_gust' => 10,
26+
'weather' => [
27+
[
28+
'id' => 200,
29+
'main' => 'name',
30+
'description' => 'description',
31+
'icon' => '01d'
32+
]
33+
],
34+
'rain' => 1,
35+
'snow' => 1,
36+
'temp' => [
37+
'morn' => 10,
38+
'day' => 15,
39+
'eve' => 15,
40+
'night' => 10,
41+
'min' => 10,
42+
'max' => 15,
43+
],
44+
'feels_like' => [
45+
'morn' => 10,
46+
'day' => 15,
47+
'eve' => 15,
48+
'night' => 10
49+
],
50+
'pop' => 1,
51+
'summary' => 'summary',
52+
'moon_phase' => 1,
53+
'moonrise' => 1715561801,
54+
'moonset' => 1715616968,
55+
'sunrise' => 1715561801,
56+
'sunset' => 1715616968
57+
]);
58+
59+
$this->assertInstanceOf(\DateTimeImmutable::class, $entity->getDateTime());
60+
$this->assertSame(1000, $entity->getAtmosphericPressure());
61+
$this->assertSame(10, $entity->getHumidity());
62+
$this->assertSame(10.0, $entity->getDewPoint());
63+
$this->assertSame(1.0, $entity->getUltraVioletIndex());
64+
$this->assertSame(10, $entity->getCloudiness());
65+
$this->assertInstanceOf(Wind::class, $entity->getWind());
66+
$this->assertContainsOnlyInstancesOf(Condition::class, $entity->getConditions());
67+
$this->assertSame(1.0, $entity->getRainVolume());
68+
$this->assertSame(1.0, $entity->getSnowVolume());
69+
$this->assertInstanceOf(Temperature::class, $entity->getTemperature());
70+
$this->assertInstanceOf(Temperature::class, $entity->getTemperatureFeelsLike());
71+
$this->assertSame(100, $entity->getPrecipitationProbability());
72+
$this->assertSame('summary', $entity->getSummary());
73+
$this->assertInstanceOf(MoonPhase::class, $entity->getMoonPhase());
74+
$this->assertInstanceOf(\DateTimeImmutable::class, $entity->getMoonriseAt());
75+
$this->assertInstanceOf(\DateTimeImmutable::class, $entity->getMoonsetAt());
76+
$this->assertInstanceOf(\DateTimeImmutable::class, $entity->getSunriseAt());
77+
$this->assertInstanceOf(\DateTimeImmutable::class, $entity->getSunsetAt());
78+
}
79+
}

tests/Unit/OneCall/HourDataTest.php

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
<?php
2+
3+
namespace ProgrammatorDev\OpenWeatherMap\Test\Unit\OneCall;
4+
5+
use ProgrammatorDev\OpenWeatherMap\Entity\Condition;
6+
use ProgrammatorDev\OpenWeatherMap\Entity\OneCall\HourData;
7+
use ProgrammatorDev\OpenWeatherMap\Entity\Wind;
8+
use ProgrammatorDev\OpenWeatherMap\Test\AbstractTest;
9+
10+
class HourDataTest extends AbstractTest
11+
{
12+
public function testMethods()
13+
{
14+
$entity = new HourData([
15+
'dt' => 1715561801,
16+
'pressure' => 1000,
17+
'humidity' => 10,
18+
'dew_point' => 10,
19+
'uvi' => 1,
20+
'clouds' => 10,
21+
'wind_speed' => 10,
22+
'wind_deg' => 10,
23+
'wind_gust' => 10,
24+
'weather' => [
25+
[
26+
'id' => 200,
27+
'main' => 'name',
28+
'description' => 'description',
29+
'icon' => '01d'
30+
]
31+
],
32+
'rain' => 1,
33+
'snow' => 1,
34+
'temp' => 10,
35+
'feels_like' => 10,
36+
'visibility' => 10000,
37+
'pop' => 1
38+
]);
39+
40+
$this->assertInstanceOf(\DateTimeImmutable::class, $entity->getDateTime());
41+
$this->assertSame(1000, $entity->getAtmosphericPressure());
42+
$this->assertSame(10, $entity->getHumidity());
43+
$this->assertSame(10.0, $entity->getDewPoint());
44+
$this->assertSame(1.0, $entity->getUltraVioletIndex());
45+
$this->assertSame(10, $entity->getCloudiness());
46+
$this->assertInstanceOf(Wind::class, $entity->getWind());
47+
$this->assertContainsOnlyInstancesOf(Condition::class, $entity->getConditions());
48+
$this->assertSame(1.0, $entity->getRainVolume());
49+
$this->assertSame(1.0, $entity->getSnowVolume());
50+
$this->assertSame(10.0, $entity->getTemperature());
51+
$this->assertSame(10.0, $entity->getTemperatureFeelsLike());
52+
$this->assertSame(10000, $entity->getVisibility());
53+
$this->assertSame(100, $entity->getPrecipitationProbability());
54+
}
55+
}

tests/Unit/OneCall/MinuteDataTest.php

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
3+
namespace ProgrammatorDev\OpenWeatherMap\Test\Unit\OneCall;
4+
5+
use ProgrammatorDev\OpenWeatherMap\Entity\OneCall\MinuteData;
6+
use ProgrammatorDev\OpenWeatherMap\Test\AbstractTest;
7+
8+
class MinuteDataTest extends AbstractTest
9+
{
10+
public function testMethods()
11+
{
12+
$entity = new MinuteData([
13+
'dt' => 1715561801,
14+
'precipitation' => 1,
15+
]);
16+
17+
$this->assertInstanceOf(\DateTimeImmutable::class, $entity->getDateTime());
18+
$this->assertSame(1.0, $entity->getPrecipitation());
19+
}
20+
}

tests/Unit/OneCall/MoonPhaseTest.php

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
3+
namespace ProgrammatorDev\OpenWeatherMap\Test\Unit\OneCall;
4+
5+
use ProgrammatorDev\OpenWeatherMap\Entity\OneCall\MoonPhase;
6+
use ProgrammatorDev\OpenWeatherMap\Test\AbstractTest;
7+
8+
class MoonPhaseTest extends AbstractTest
9+
{
10+
public function testMethods()
11+
{
12+
$entity = new MoonPhase([
13+
'moon_phase' => 1
14+
]);
15+
16+
$this->assertSame(1.0, $entity->getValue());
17+
$this->assertSame('New Moon', $entity->getName());
18+
$this->assertSame('NEW_MOON', $entity->getSystemName());
19+
}
20+
}
+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?php
2+
3+
namespace ProgrammatorDev\OpenWeatherMap\Test\Unit\OneCall;
4+
5+
use ProgrammatorDev\OpenWeatherMap\Entity\OneCall\Temperature;
6+
use ProgrammatorDev\OpenWeatherMap\Test\AbstractTest;
7+
8+
class TemperatureTest extends AbstractTest
9+
{
10+
public function testMethods()
11+
{
12+
$entity = new Temperature([
13+
'morn' => 10,
14+
'day' => 15,
15+
'eve' => 15,
16+
'night' => 10,
17+
'min' => 10,
18+
'max' => 15,
19+
]);
20+
21+
$this->assertSame(10.0, $entity->getMorning());
22+
$this->assertSame(15.0, $entity->getDay());
23+
$this->assertSame(15.0, $entity->getEvening());
24+
$this->assertSame(10.0, $entity->getNight());
25+
$this->assertSame(10.0, $entity->getMin());
26+
$this->assertSame(15.0, $entity->getMax());
27+
}
28+
}
+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
<?php
2+
3+
namespace ProgrammatorDev\OpenWeatherMap\Test\Unit\OneCall;
4+
5+
use ProgrammatorDev\OpenWeatherMap\Entity\Condition;
6+
use ProgrammatorDev\OpenWeatherMap\Entity\OneCall\WeatherData;
7+
use ProgrammatorDev\OpenWeatherMap\Entity\Wind;
8+
use ProgrammatorDev\OpenWeatherMap\Test\AbstractTest;
9+
10+
class WeatherDataTest extends AbstractTest
11+
{
12+
public function testMethods()
13+
{
14+
$entity = new WeatherData([
15+
'dt' => 1715561801,
16+
'pressure' => 1000,
17+
'humidity' => 10,
18+
'dew_point' => 10,
19+
'uvi' => 1,
20+
'clouds' => 10,
21+
'wind_speed' => 10,
22+
'wind_deg' => 10,
23+
'wind_gust' => 10,
24+
'weather' => [
25+
[
26+
'id' => 200,
27+
'main' => 'name',
28+
'description' => 'description',
29+
'icon' => '01d'
30+
]
31+
],
32+
'rain' => 1,
33+
'snow' => 1,
34+
'temp' => 10,
35+
'feels_like' => 10,
36+
'visibility' => 10000,
37+
'sunrise' => 1715561801,
38+
'sunset' => 1715616968
39+
]);
40+
41+
$this->assertInstanceOf(\DateTimeImmutable::class, $entity->getDateTime());
42+
$this->assertSame(1000, $entity->getAtmosphericPressure());
43+
$this->assertSame(10, $entity->getHumidity());
44+
$this->assertSame(10.0, $entity->getDewPoint());
45+
$this->assertSame(1.0, $entity->getUltraVioletIndex());
46+
$this->assertSame(10, $entity->getCloudiness());
47+
$this->assertInstanceOf(Wind::class, $entity->getWind());
48+
$this->assertContainsOnlyInstancesOf(Condition::class, $entity->getConditions());
49+
$this->assertSame(1.0, $entity->getRainVolume());
50+
$this->assertSame(1.0, $entity->getSnowVolume());
51+
$this->assertSame(10.0, $entity->getTemperature());
52+
$this->assertSame(10.0, $entity->getTemperatureFeelsLike());
53+
$this->assertSame(10000, $entity->getVisibility());
54+
$this->assertInstanceOf(\DateTimeImmutable::class, $entity->getSunriseAt());
55+
$this->assertInstanceOf(\DateTimeImmutable::class, $entity->getSunsetAt());
56+
}
57+
}
+69
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
<?php
2+
3+
namespace ProgrammatorDev\OpenWeatherMap\Test\Unit\OneCall;
4+
5+
use ProgrammatorDev\OpenWeatherMap\Entity\Condition;
6+
use ProgrammatorDev\OpenWeatherMap\Entity\Coordinate;
7+
use ProgrammatorDev\OpenWeatherMap\Entity\OneCall\WeatherMoment;
8+
use ProgrammatorDev\OpenWeatherMap\Entity\Timezone;
9+
use ProgrammatorDev\OpenWeatherMap\Entity\Wind;
10+
use ProgrammatorDev\OpenWeatherMap\Test\AbstractTest;
11+
12+
class WeatherMomentTest extends AbstractTest
13+
{
14+
public function testMethods()
15+
{
16+
$entity = new WeatherMoment([
17+
'lat' => 50,
18+
'lon' => 50,
19+
'timezone' => 'UTC',
20+
'timezone_offset' => 0,
21+
'data' => [
22+
[
23+
'dt' => 1715561801,
24+
'pressure' => 1000,
25+
'humidity' => 10,
26+
'dew_point' => 10,
27+
'uvi' => 1,
28+
'clouds' => 10,
29+
'wind_speed' => 10,
30+
'wind_deg' => 10,
31+
'wind_gust' => 10,
32+
'weather' => [
33+
[
34+
'id' => 200,
35+
'main' => 'name',
36+
'description' => 'description',
37+
'icon' => '01d'
38+
]
39+
],
40+
'rain' => 1,
41+
'snow' => 1,
42+
'temp' => 10,
43+
'feels_like' => 10,
44+
'visibility' => 10000,
45+
'sunrise' => 1715561801,
46+
'sunset' => 1715616968
47+
]
48+
]
49+
]);
50+
51+
$this->assertInstanceOf(Coordinate::class, $entity->getCoordinate());
52+
$this->assertInstanceOf(Timezone::class, $entity->getTimezone());
53+
$this->assertInstanceOf(\DateTimeImmutable::class, $entity->getDateTime());
54+
$this->assertSame(1000, $entity->getAtmosphericPressure());
55+
$this->assertSame(10, $entity->getHumidity());
56+
$this->assertSame(10.0, $entity->getDewPoint());
57+
$this->assertSame(1.0, $entity->getUltraVioletIndex());
58+
$this->assertSame(10, $entity->getCloudiness());
59+
$this->assertInstanceOf(Wind::class, $entity->getWind());
60+
$this->assertContainsOnlyInstancesOf(Condition::class, $entity->getConditions());
61+
$this->assertSame(1.0, $entity->getRainVolume());
62+
$this->assertSame(1.0, $entity->getSnowVolume());
63+
$this->assertSame(10.0, $entity->getTemperature());
64+
$this->assertSame(10.0, $entity->getTemperatureFeelsLike());
65+
$this->assertSame(10000, $entity->getVisibility());
66+
$this->assertInstanceOf(\DateTimeImmutable::class, $entity->getSunriseAt());
67+
$this->assertInstanceOf(\DateTimeImmutable::class, $entity->getSunsetAt());
68+
}
69+
}

0 commit comments

Comments
 (0)