17 use PHPUnit\Framework\TestCase;
31 protected function setUp(): void
34 'tokenName' =>
'TestToken',
35 'tokenScope' =>
'read',
36 'tokenExpire' =>
'2025-12-31',
37 'username' =>
'testUser',
38 'password' =>
'testPassword'
51 $tokenRequest =
new TokenRequest(...array_values($this->sampleData));
52 $this->assertInstanceOf(TokenRequest::class, $tokenRequest);
63 $tokenRequest =
new TokenRequest(...array_values($this->sampleData));
64 $this->assertEquals($this->sampleData[
'tokenName'], $tokenRequest->getTokenName());
73 $tokenRequest =
new TokenRequest(...array_values($this->sampleData));
74 $this->assertEquals(
'r', $tokenRequest->getTokenScope());
83 $tokenRequest =
new TokenRequest(...array_values($this->sampleData));
84 $this->assertEquals($this->sampleData[
'tokenExpire'], $tokenRequest->getTokenExpire());
93 $tokenRequest =
new TokenRequest(...array_values($this->sampleData));
94 $this->assertEquals($this->sampleData[
'username'], $tokenRequest->getUsername());
103 $tokenRequest =
new TokenRequest(...array_values($this->sampleData));
104 $this->assertEquals($this->sampleData[
'password'], $tokenRequest->getPassword());
115 $tokenRequest =
new TokenRequest(...array_values($this->sampleData));
116 $tokenRequest->setTokenName(
'NewToken');
117 $this->assertEquals(
'NewToken', $tokenRequest->getTokenName());
126 $tokenRequest =
new TokenRequest(...array_values($this->sampleData));
127 $tokenRequest->setTokenScope(
'write');
128 $this->assertEquals(
'w', $tokenRequest->getTokenScope());
137 $tokenRequest =
new TokenRequest(...array_values($this->sampleData));
138 $tokenRequest->setTokenExpire(
'2026-01-01');
139 $this->assertEquals(
'2026-01-01', $tokenRequest->getTokenExpire());
148 $tokenRequest =
new TokenRequest(...array_values($this->sampleData));
149 $tokenRequest->setUsername(
'testUser');
150 $this->assertEquals(
'testUser', $tokenRequest->getUsername());
159 $tokenRequest =
new TokenRequest(...array_values($this->sampleData));
160 $tokenRequest->setPassword(
'testPassword');
161 $this->assertEquals(
'testPassword', $tokenRequest->getPassword());
177 'username' =>
'testUser',
178 'password' =>
'testPassword',
179 'token_name' =>
'TestToken',
180 'token_scope' =>
'read',
181 'token_expire' =>
'2025-12-31'
185 $this->assertInstanceOf(TokenRequest::class, $tokenRequest);
199 'username' =>
'testUser',
200 'password' =>
'testPassword',
201 'tokenName' =>
'TestToken',
202 'tokenScope' =>
'read',
203 'tokenExpire' =>
'2025-12-31'
207 $this->assertInstanceOf(TokenRequest::class, $tokenRequest);
225 $this->expectException(HttpBadRequestException::class);
226 $input = [
'username' =>
'testUser'];
235 $keys = $version === 1 ? TokenRequest::VERSION_1_KEYS : TokenRequest::VERSION_2_KEYS;
236 $input = array_combine($keys, [
'testUser',
'testPassword',
'TestToken',
'read', $expiry]);
238 $this->expectException(HttpBadRequestException::class);
239 $this->expectExceptionMessage(
'Invalid date format provided');
243 public function invalidTokenExpireProvider(): array
246 foreach ([1, 2] as $version) {
247 foreach ([
'2026-10-32',
'2026-11-31',
'2026-02-29',
'1900-02-29',
248 '2026-13-01',
'2026-00-01',
'2026-01-00',
'2026-1-01',
249 '2026-01-1',
'2026-01-01 ',
'not-a-date',
''] as $expiry) {
250 $cases[] = [$expiry, $version];
261 $keys = $version === 1 ? TokenRequest::VERSION_1_KEYS : TokenRequest::VERSION_2_KEYS;
262 $input = array_combine($keys, [
'testUser',
'testPassword',
'TestToken',
'read', $expiry]);
265 $this->assertSame($expiry, $tokenRequest->getTokenExpire());
268 public function validTokenExpireProvider(): array
280 public function testInvalidTokenExpirePreservesPreviousValue()
282 $tokenRequest =
new TokenRequest(...array_values($this->sampleData));
284 $tokenRequest->setTokenExpire(
'2026-10-32');
285 $this->fail(
'Expected an invalid date to be rejected');
286 }
catch (HttpBadRequestException $exception) {
287 $this->assertSame($this->sampleData[
'tokenExpire'], $tokenRequest->getTokenExpire());
static fromArray(array $input, int $version)
Tests for TokenRequest model.
testFromArrayMissingKeys()
testFromArrayInvalidTokenExpire(string $expiry, int $version)
testFromArrayValidTokenExpire(string $expiry, int $version)