Skip to content

Commit 62e8a78

Browse files
committed
event
1 parent dd9ee20 commit 62e8a78

3 files changed

Lines changed: 222 additions & 20 deletions

File tree

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
<?php
2+
3+
namespace DCarbone\PHPConsulAPITests\Unit\Event;
4+
5+
use DCarbone\PHPConsulAPI\Event\UserEvent;
6+
use DCarbone\PHPConsulAPI\Event\UserEventResponse;
7+
use PHPUnit\Framework\TestCase;
8+
9+
/**
10+
* @internal
11+
*/
12+
final class UserEventResponseTest extends TestCase
13+
{
14+
public function testDefaults(): void
15+
{
16+
$r = new UserEventResponse();
17+
self::assertNull($r->UserEvent);
18+
self::assertNull($r->getValue());
19+
}
20+
21+
public function testUnmarshalValueWithData(): void
22+
{
23+
$decoded = new \stdClass();
24+
$decoded->ID = 'abc';
25+
$decoded->Name = 'deploy';
26+
$decoded->Payload = 'data';
27+
$decoded->NodeFilter = '';
28+
$decoded->ServiceFilter = '';
29+
$decoded->TagFilter = '';
30+
$decoded->Version = 1;
31+
$decoded->LTime = 5;
32+
33+
$r = new UserEventResponse();
34+
$r->unmarshalValue($decoded);
35+
36+
self::assertNotNull($r->UserEvent);
37+
self::assertNotNull($r->getValue());
38+
self::assertInstanceOf(UserEvent::class, $r->UserEvent);
39+
self::assertSame('abc', $r->UserEvent->ID);
40+
self::assertSame('deploy', $r->UserEvent->Name);
41+
self::assertSame('data', $r->UserEvent->Payload);
42+
self::assertSame(1, $r->UserEvent->Version);
43+
self::assertSame(5, $r->UserEvent->LTime);
44+
}
45+
46+
public function testUnmarshalValueWithNull(): void
47+
{
48+
$r = new UserEventResponse();
49+
$r->unmarshalValue(null);
50+
self::assertNull($r->UserEvent);
51+
self::assertNull($r->getValue());
52+
}
53+
54+
public function testUnmarshalValueOverwritesPrevious(): void
55+
{
56+
$decoded = new \stdClass();
57+
$decoded->ID = 'first';
58+
$decoded->Name = 'ev1';
59+
$decoded->Payload = '';
60+
$decoded->NodeFilter = '';
61+
$decoded->ServiceFilter = '';
62+
$decoded->TagFilter = '';
63+
$decoded->Version = 1;
64+
$decoded->LTime = 0;
65+
66+
$r = new UserEventResponse();
67+
$r->unmarshalValue($decoded);
68+
self::assertSame('first', $r->UserEvent->ID);
69+
70+
$r->unmarshalValue(null);
71+
self::assertNull($r->UserEvent);
72+
}
73+
}
74+

tests/Unit/Event/UserEventTest.php

Lines changed: 71 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
<?php
22

3-
declare(strict_types=1);
4-
53
namespace DCarbone\PHPConsulAPITests\Unit\Event;
64

75
use DCarbone\PHPConsulAPI\Event\UserEvent;
@@ -16,13 +14,21 @@ public function testConstructorDefaults(): void
1614
{
1715
$e = new UserEvent();
1816
self::assertSame('', $e->getID());
17+
self::assertSame('', $e->ID);
1918
self::assertSame('', $e->getName());
19+
self::assertSame('', $e->Name);
2020
self::assertSame('', $e->getPayload());
21+
self::assertSame('', $e->Payload);
2122
self::assertSame('', $e->getNodeFilter());
23+
self::assertSame('', $e->NodeFilter);
2224
self::assertSame('', $e->getServiceFilter());
25+
self::assertSame('', $e->ServiceFilter);
2326
self::assertSame('', $e->getTagFilter());
27+
self::assertSame('', $e->TagFilter);
2428
self::assertSame(0, $e->getVersion());
29+
self::assertSame(0, $e->Version);
2530
self::assertSame(0, $e->getLTime());
31+
self::assertSame(0, $e->LTime);
2632
}
2733

2834
public function testConstructorWithValues(): void
@@ -38,13 +44,58 @@ public function testConstructorWithValues(): void
3844
LTime: 42,
3945
);
4046
self::assertSame('evt-1', $e->getID());
47+
self::assertSame('evt-1', $e->ID);
4148
self::assertSame('deploy', $e->getName());
49+
self::assertSame('deploy', $e->Name);
4250
self::assertSame('data', $e->getPayload());
51+
self::assertSame('data', $e->Payload);
4352
self::assertSame('web-*', $e->getNodeFilter());
53+
self::assertSame('web-*', $e->NodeFilter);
4454
self::assertSame('api', $e->getServiceFilter());
55+
self::assertSame('api', $e->ServiceFilter);
4556
self::assertSame('v1', $e->getTagFilter());
57+
self::assertSame('v1', $e->TagFilter);
4658
self::assertSame(3, $e->getVersion());
59+
self::assertSame(3, $e->Version);
4760
self::assertSame(42, $e->getLTime());
61+
self::assertSame(42, $e->LTime);
62+
}
63+
64+
public function testSettersWithDirectFieldAccess(): void
65+
{
66+
$e = new UserEvent();
67+
68+
$e->setID('id');
69+
self::assertSame('id', $e->getID());
70+
self::assertSame('id', $e->ID);
71+
72+
$e->setName('name');
73+
self::assertSame('name', $e->getName());
74+
self::assertSame('name', $e->Name);
75+
76+
$e->setPayload('payload');
77+
self::assertSame('payload', $e->getPayload());
78+
self::assertSame('payload', $e->Payload);
79+
80+
$e->setNodeFilter('nf');
81+
self::assertSame('nf', $e->getNodeFilter());
82+
self::assertSame('nf', $e->NodeFilter);
83+
84+
$e->setServiceFilter('sf');
85+
self::assertSame('sf', $e->getServiceFilter());
86+
self::assertSame('sf', $e->ServiceFilter);
87+
88+
$e->setTagFilter('tf');
89+
self::assertSame('tf', $e->getTagFilter());
90+
self::assertSame('tf', $e->TagFilter);
91+
92+
$e->setVersion(1);
93+
self::assertSame(1, $e->getVersion());
94+
self::assertSame(1, $e->Version);
95+
96+
$e->setLTime(2);
97+
self::assertSame(2, $e->getLTime());
98+
self::assertSame(2, $e->LTime);
4899
}
49100

50101
public function testFluentSetters(): void
@@ -60,14 +111,14 @@ public function testFluentSetters(): void
60111
->setVersion(1)
61112
->setLTime(2);
62113
self::assertSame($e, $result);
63-
self::assertSame('id', $e->getID());
64-
self::assertSame('name', $e->getName());
65-
self::assertSame('payload', $e->getPayload());
66-
self::assertSame('nf', $e->getNodeFilter());
67-
self::assertSame('sf', $e->getServiceFilter());
68-
self::assertSame('tf', $e->getTagFilter());
69-
self::assertSame(1, $e->getVersion());
70-
self::assertSame(2, $e->getLTime());
114+
self::assertSame('id', $e->ID);
115+
self::assertSame('name', $e->Name);
116+
self::assertSame('payload', $e->Payload);
117+
self::assertSame('nf', $e->NodeFilter);
118+
self::assertSame('sf', $e->ServiceFilter);
119+
self::assertSame('tf', $e->TagFilter);
120+
self::assertSame(1, $e->Version);
121+
self::assertSame(2, $e->LTime);
71122
}
72123

73124
public function testJsonSerialize(): void
@@ -93,22 +144,22 @@ public function testJsonUnserialize(): void
93144
$decoded->Version = 2;
94145
$decoded->LTime = 7;
95146
$e = UserEvent::jsonUnserialize($decoded);
96-
self::assertSame('e1', $e->getID());
97-
self::assertSame('ev', $e->getName());
98-
self::assertSame('p', $e->getPayload());
99-
self::assertSame(2, $e->getVersion());
100-
self::assertSame(7, $e->getLTime());
147+
self::assertSame('e1', $e->ID);
148+
self::assertSame('ev', $e->Name);
149+
self::assertSame('p', $e->Payload);
150+
self::assertSame(2, $e->Version);
151+
self::assertSame(7, $e->LTime);
101152
}
102153

103154
public function testJsonRoundTrip(): void
104155
{
105156
$original = new UserEvent(ID: 'rt', Name: 'round', Payload: 'trip', Version: 1, LTime: 3);
106157
$restored = UserEvent::jsonUnserialize($original->jsonSerialize());
107-
self::assertSame($original->getID(), $restored->getID());
108-
self::assertSame($original->getName(), $restored->getName());
109-
self::assertSame($original->getPayload(), $restored->getPayload());
110-
self::assertSame($original->getVersion(), $restored->getVersion());
111-
self::assertSame($original->getLTime(), $restored->getLTime());
158+
self::assertSame($original->ID, $restored->ID);
159+
self::assertSame($original->Name, $restored->Name);
160+
self::assertSame($original->Payload, $restored->Payload);
161+
self::assertSame($original->Version, $restored->Version);
162+
self::assertSame($original->LTime, $restored->LTime);
112163
}
113164
}
114165

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
<?php
2+
3+
namespace DCarbone\PHPConsulAPITests\Unit\Event;
4+
5+
use DCarbone\PHPConsulAPI\Event\UserEvent;
6+
use DCarbone\PHPConsulAPI\Event\UserEventsResponse;
7+
use PHPUnit\Framework\TestCase;
8+
9+
/**
10+
* @internal
11+
*/
12+
final class UserEventsResponseTest extends TestCase
13+
{
14+
public function testDefaults(): void
15+
{
16+
$r = new UserEventsResponse();
17+
self::assertSame([], $r->UserEvents);
18+
self::assertSame([], $r->getValue());
19+
}
20+
21+
public function testUnmarshalValue(): void
22+
{
23+
$ev1 = new \stdClass();
24+
$ev1->ID = 'e1';
25+
$ev1->Name = 'deploy';
26+
$ev1->Payload = 'p1';
27+
$ev1->NodeFilter = '';
28+
$ev1->ServiceFilter = '';
29+
$ev1->TagFilter = '';
30+
$ev1->Version = 1;
31+
$ev1->LTime = 10;
32+
33+
$ev2 = new \stdClass();
34+
$ev2->ID = 'e2';
35+
$ev2->Name = 'restart';
36+
$ev2->Payload = '';
37+
$ev2->NodeFilter = 'web';
38+
$ev2->ServiceFilter = '';
39+
$ev2->TagFilter = '';
40+
$ev2->Version = 2;
41+
$ev2->LTime = 20;
42+
43+
$r = new UserEventsResponse();
44+
$r->unmarshalValue([$ev1, $ev2]);
45+
46+
self::assertCount(2, $r->UserEvents);
47+
self::assertCount(2, $r->getValue());
48+
self::assertInstanceOf(UserEvent::class, $r->UserEvents[0]);
49+
self::assertInstanceOf(UserEvent::class, $r->UserEvents[1]);
50+
self::assertSame('e1', $r->UserEvents[0]->ID);
51+
self::assertSame('deploy', $r->UserEvents[0]->Name);
52+
self::assertSame('e2', $r->UserEvents[1]->ID);
53+
self::assertSame('restart', $r->UserEvents[1]->Name);
54+
self::assertSame('web', $r->UserEvents[1]->NodeFilter);
55+
}
56+
57+
public function testUnmarshalValueResetsArray(): void
58+
{
59+
$ev = new \stdClass();
60+
$ev->ID = 'first';
61+
$ev->Name = 'ev';
62+
$ev->Payload = '';
63+
$ev->NodeFilter = '';
64+
$ev->ServiceFilter = '';
65+
$ev->TagFilter = '';
66+
$ev->Version = 1;
67+
$ev->LTime = 0;
68+
69+
$r = new UserEventsResponse();
70+
$r->unmarshalValue([$ev]);
71+
self::assertCount(1, $r->UserEvents);
72+
73+
$r->unmarshalValue([]);
74+
self::assertSame([], $r->UserEvents);
75+
}
76+
}
77+

0 commit comments

Comments
 (0)