Skip to content

Commit 2a94e5f

Browse files
committed
acl stuff
1 parent 064a7e5 commit 2a94e5f

15 files changed

Lines changed: 583 additions & 9 deletions

src/ACL/ACLBindingRule.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,9 @@ public function getBindType(): BindingRuleBindType
105105
return $this->BindType;
106106
}
107107

108-
public function setBindType(BindingRuleBindType $BindType): self
108+
public function setBindType(string|BindingRuleBindType $BindType): self
109109
{
110-
$this->BindType = $BindType;
110+
$this->BindType = ($BindType instanceof BindingRuleBindType) ? $BindType : BindingRuleBindType::from($BindType);
111111
return $this;
112112
}
113113

src/ACL/ACLNodeIdentity.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,23 @@ public function getNodeName(): string
3838
return $this->NodeName;
3939
}
4040

41+
public function setNodeName(string $NodeName): self
42+
{
43+
$this->NodeName = $NodeName;
44+
return $this;
45+
}
46+
4147
public function getDatacenter(): string
4248
{
4349
return $this->Datacenter;
4450
}
4551

52+
public function setDatacenter(string $Datacenter): self
53+
{
54+
$this->Datacenter = $Datacenter;
55+
return $this;
56+
}
57+
4658
public static function jsonUnserialize(\stdClass $decoded): self
4759
{
4860
$n = new self();

src/ACL/ACLPolicy.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ public function __construct(
5656
$this->Description = $Description;
5757
$this->Rules = $Rules;
5858
$this->setDatacenters(...$Datacenters);
59-
$this->Datacenters = $Datacenters;
6059
$this->Hash = $Hash;
6160
$this->CreateIndex = $CreateIndex;
6261
$this->ModifyIndex = $ModifyIndex;

src/ACL/ACLServiceIdentity.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,9 @@ public function getDatacenters(): array
5656
return $this->Datacenters;
5757
}
5858

59-
public function setDatacenters(string ...$datacenters): self
59+
public function setDatacenters(string ...$Datacenters): self
6060
{
61-
$this->Datacenters = $datacenters;
61+
$this->Datacenters = $Datacenters;
6262
return $this;
6363
}
6464

src/ACL/ACLTokenExpanded.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public function __construct(
6767
array $TemplatePolicies = [],
6868
bool $Local = false,
6969
string $AuthMethod = '',
70-
\DateInterval|float|int|string|Time\Duration|null $ExpirationTTL = null,
70+
null|int|float|string|\DateInterval|Time\Duration $ExpirationTTL = null,
7171
null|Time\Time $ExpirationTime = null,
7272
null|Time\Time $CreateTime = null,
7373
string $Hash = '',

src/ACL/ACLTokenFields.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ public function setExpirationTTL(null|int|float|string|\DateInterval|Time\Durati
210210
return $this;
211211
}
212212

213-
public function getExpirationTime(): Time\Time
213+
public function getExpirationTime(): null|Time\Time
214214
{
215215
return $this->ExpirationTime;
216216
}

tests/Unit/ACL/ACLAuthMethodTest.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
use DCarbone\PHPConsulAPI\ACL\ACLAuthMethod;
66
use DCarbone\PHPConsulAPI\ACL\ACLAuthMethodNamespaceRule;
7-
use DCarbone\Go\Time;
87
use PHPUnit\Framework\TestCase;
98

109
/**

tests/Unit/ACL/ACLBindingRuleTest.php

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,5 +86,35 @@ public function testJsonUnserialize(): void
8686
self::assertSame('web', $b->getBindName());
8787
self::assertSame(BindingRuleBindType::Service, $b->getBindType());
8888
}
89+
90+
public function testConstructorWithStringBindType(): void
91+
{
92+
$b = new ACLBindingRule(
93+
ID: 'br-str',
94+
BindType: 'service',
95+
BindName: 'web',
96+
);
97+
self::assertSame(BindingRuleBindType::Service, $b->getBindType());
98+
self::assertSame(BindingRuleBindType::Service, $b->BindType);
99+
self::assertSame('web', $b->getBindName());
100+
}
101+
102+
public function testSetBindTypeWithString(): void
103+
{
104+
$b = new ACLBindingRule();
105+
$result = $b->setBindType('role');
106+
self::assertSame($b, $result);
107+
self::assertSame(BindingRuleBindType::Role, $b->getBindType());
108+
self::assertSame(BindingRuleBindType::Role, $b->BindType);
109+
}
110+
111+
public function testSetBindTypeWithEnum(): void
112+
{
113+
$b = new ACLBindingRule();
114+
$result = $b->setBindType(BindingRuleBindType::Node);
115+
self::assertSame($b, $result);
116+
self::assertSame(BindingRuleBindType::Node, $b->getBindType());
117+
self::assertSame(BindingRuleBindType::Node, $b->BindType);
118+
}
89119
}
90120

tests/Unit/ACL/ACLNodeIdentityTest.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,29 @@ public function testConstructorDefaults(): void
1414
{
1515
$n = new ACLNodeIdentity();
1616
self::assertSame('', $n->getNodeName());
17+
self::assertSame('', $n->NodeName);
1718
self::assertSame('', $n->getDatacenter());
19+
self::assertSame('', $n->Datacenter);
1820
}
1921

2022
public function testConstructorWithParams(): void
2123
{
2224
$n = new ACLNodeIdentity(NodeName: 'node-1', Datacenter: 'dc1');
2325
self::assertSame('node-1', $n->getNodeName());
26+
self::assertSame('node-1', $n->NodeName);
2427
self::assertSame('dc1', $n->getDatacenter());
28+
self::assertSame('dc1', $n->Datacenter);
29+
}
30+
31+
public function testFluentSetters(): void
32+
{
33+
$n = new ACLNodeIdentity();
34+
$result = $n->setNodeName('node-set')->setDatacenter('dc-set');
35+
self::assertSame($n, $result);
36+
self::assertSame('node-set', $n->getNodeName());
37+
self::assertSame('node-set', $n->NodeName);
38+
self::assertSame('dc-set', $n->getDatacenter());
39+
self::assertSame('dc-set', $n->Datacenter);
2540
}
2641

2742
public function testJsonSerialize(): void
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
<?php
2+
3+
namespace DCarbone\PHPConsulAPITests\Unit\ACL;
4+
5+
use DCarbone\PHPConsulAPI\ACL\ACLRolePolicyLink;
6+
use PHPUnit\Framework\TestCase;
7+
8+
/**
9+
* @internal
10+
*/
11+
final class ACLRolePolicyLinkTest extends TestCase
12+
{
13+
public function testConstructorDefaults(): void
14+
{
15+
$l = new ACLRolePolicyLink();
16+
self::assertSame('', $l->getID());
17+
self::assertSame('', $l->ID);
18+
self::assertSame('', $l->getName());
19+
self::assertSame('', $l->Name);
20+
}
21+
22+
public function testConstructorWithParams(): void
23+
{
24+
$l = new ACLRolePolicyLink(ID: 'rpl-id', Name: 'rpl-name');
25+
self::assertSame('rpl-id', $l->getID());
26+
self::assertSame('rpl-id', $l->ID);
27+
self::assertSame('rpl-name', $l->getName());
28+
self::assertSame('rpl-name', $l->Name);
29+
}
30+
31+
public function testFluentSetters(): void
32+
{
33+
$l = new ACLRolePolicyLink();
34+
$result = $l->setID('a')->setName('b');
35+
self::assertSame($l, $result);
36+
self::assertSame('a', $l->getID());
37+
self::assertSame('a', $l->ID);
38+
self::assertSame('b', $l->getName());
39+
self::assertSame('b', $l->Name);
40+
}
41+
42+
public function testJsonSerialize(): void
43+
{
44+
$l = new ACLRolePolicyLink(ID: 'x', Name: 'y');
45+
$out = $l->jsonSerialize();
46+
self::assertInstanceOf(\stdClass::class, $out);
47+
self::assertSame('x', $out->ID);
48+
self::assertSame('y', $out->Name);
49+
}
50+
51+
public function testJsonUnserialize(): void
52+
{
53+
$d = new \stdClass();
54+
$d->ID = 'id-1';
55+
$d->Name = 'name-1';
56+
$l = ACLRolePolicyLink::jsonUnserialize($d);
57+
self::assertInstanceOf(ACLRolePolicyLink::class, $l);
58+
self::assertSame('id-1', $l->getID());
59+
self::assertSame('id-1', $l->ID);
60+
self::assertSame('name-1', $l->getName());
61+
self::assertSame('name-1', $l->Name);
62+
}
63+
}
64+

0 commit comments

Comments
 (0)