Skip to content

Commit 289505f

Browse files
Added tests for identifier defaults
1 parent 70758a1 commit 289505f

9 files changed

Lines changed: 345 additions & 29 deletions

tests/Identifier/Unit/SnowflakeDiscordTest.php

Lines changed: 45 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66

77
use Cycle\ORM\Entity\Behavior\Dispatcher\ListenerProvider;
88
use Cycle\ORM\Entity\Behavior\Identifier\SnowflakeDiscord;
9-
use Cycle\ORM\Entity\Behavior\Identifier\Listener\SnowflakeDiscord as SnowflakeDiscordListener;
9+
use Cycle\ORM\Entity\Behavior\Identifier\Defaults\SnowflakeDiscord as Defaults;
10+
use Cycle\ORM\Entity\Behavior\Identifier\Listener\SnowflakeDiscord as Listener;
1011
use Cycle\ORM\SchemaInterface;
1112
use PHPUnit\Framework\TestCase;
1213

@@ -18,7 +19,7 @@ public static function schemaDataProvider(): \Traversable
1819
[
1920
SchemaInterface::LISTENERS => [
2021
[
21-
ListenerProvider::DEFINITION_CLASS => SnowflakeDiscordListener::class,
22+
ListenerProvider::DEFINITION_CLASS => Listener::class,
2223
ListenerProvider::DEFINITION_ARGS => [
2324
'field' => 'snowflake',
2425
'workerId' => 0,
@@ -34,7 +35,7 @@ public static function schemaDataProvider(): \Traversable
3435
[
3536
SchemaInterface::LISTENERS => [
3637
[
37-
ListenerProvider::DEFINITION_CLASS => SnowflakeDiscordListener::class,
38+
ListenerProvider::DEFINITION_CLASS => Listener::class,
3839
ListenerProvider::DEFINITION_ARGS => [
3940
'field' => 'custom_snowflake',
4041
'workerId' => 0,
@@ -50,7 +51,7 @@ public static function schemaDataProvider(): \Traversable
5051
[
5152
SchemaInterface::LISTENERS => [
5253
[
53-
ListenerProvider::DEFINITION_CLASS => SnowflakeDiscordListener::class,
54+
ListenerProvider::DEFINITION_CLASS => Listener::class,
5455
ListenerProvider::DEFINITION_ARGS => [
5556
'field' => 'custom_snowflake',
5657
'workerId' => 0,
@@ -66,7 +67,7 @@ public static function schemaDataProvider(): \Traversable
6667
[
6768
SchemaInterface::LISTENERS => [
6869
[
69-
ListenerProvider::DEFINITION_CLASS => SnowflakeDiscordListener::class,
70+
ListenerProvider::DEFINITION_CLASS => Listener::class,
7071
ListenerProvider::DEFINITION_ARGS => [
7172
'field' => 'custom_snowflake',
7273
'workerId' => 3,
@@ -91,4 +92,43 @@ public function testModifySchema(array $expected, array $args): void
9192

9293
$this->assertSame($expected, $schema);
9394
}
95+
96+
public function testModifySchemaWithDefaults(): void
97+
{
98+
Defaults::setWorkerId(1);
99+
Defaults::setProcessId(2);
100+
101+
$args = ['snowflake', null, null, null, false];
102+
103+
$expected = [
104+
SchemaInterface::LISTENERS => [
105+
[
106+
ListenerProvider::DEFINITION_CLASS => Listener::class,
107+
ListenerProvider::DEFINITION_ARGS => [
108+
'field' => 'snowflake',
109+
'workerId' => Defaults::getWorkerId(),
110+
'processId' => Defaults::getProcessId(),
111+
'nullable' => false,
112+
],
113+
],
114+
],
115+
];
116+
117+
$schema = [];
118+
$snowflake = new SnowflakeDiscord(...$args);
119+
$snowflake->modifySchema($schema);
120+
121+
$this->assertSame($expected, $schema);
122+
$this->assertSame(1, Defaults::getWorkerId());
123+
$this->assertSame(2, Defaults::getProcessId());
124+
}
125+
126+
#[\Override]
127+
protected function setUp(): void
128+
{
129+
Defaults::setWorkerId(0);
130+
Defaults::setProcessId(0);
131+
132+
parent::setUp();
133+
}
94134
}

tests/Identifier/Unit/SnowflakeGenericTest.php

Lines changed: 45 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66

77
use Cycle\ORM\Entity\Behavior\Dispatcher\ListenerProvider;
88
use Cycle\ORM\Entity\Behavior\Identifier\SnowflakeGeneric;
9-
use Cycle\ORM\Entity\Behavior\Identifier\Listener\SnowflakeGeneric as SnowflakeGenericListener;
9+
use Cycle\ORM\Entity\Behavior\Identifier\Defaults\SnowflakeGeneric as Defaults;
10+
use Cycle\ORM\Entity\Behavior\Identifier\Listener\SnowflakeGeneric as Listener;
1011
use Cycle\ORM\SchemaInterface;
1112
use PHPUnit\Framework\TestCase;
1213

@@ -18,7 +19,7 @@ public static function schemaDataProvider(): \Traversable
1819
[
1920
SchemaInterface::LISTENERS => [
2021
[
21-
ListenerProvider::DEFINITION_CLASS => SnowflakeGenericListener::class,
22+
ListenerProvider::DEFINITION_CLASS => Listener::class,
2223
ListenerProvider::DEFINITION_ARGS => [
2324
'field' => 'snowflake',
2425
'node' => 0,
@@ -34,7 +35,7 @@ public static function schemaDataProvider(): \Traversable
3435
[
3536
SchemaInterface::LISTENERS => [
3637
[
37-
ListenerProvider::DEFINITION_CLASS => SnowflakeGenericListener::class,
38+
ListenerProvider::DEFINITION_CLASS => Listener::class,
3839
ListenerProvider::DEFINITION_ARGS => [
3940
'field' => 'custom_snowflake',
4041
'node' => 0,
@@ -50,7 +51,7 @@ public static function schemaDataProvider(): \Traversable
5051
[
5152
SchemaInterface::LISTENERS => [
5253
[
53-
ListenerProvider::DEFINITION_CLASS => SnowflakeGenericListener::class,
54+
ListenerProvider::DEFINITION_CLASS => Listener::class,
5455
ListenerProvider::DEFINITION_ARGS => [
5556
'field' => 'custom_snowflake',
5657
'node' => 0,
@@ -66,7 +67,7 @@ public static function schemaDataProvider(): \Traversable
6667
[
6768
SchemaInterface::LISTENERS => [
6869
[
69-
ListenerProvider::DEFINITION_CLASS => SnowflakeGenericListener::class,
70+
ListenerProvider::DEFINITION_CLASS => Listener::class,
7071
ListenerProvider::DEFINITION_ARGS => [
7172
'field' => 'custom_snowflake',
7273
'node' => 3,
@@ -91,4 +92,43 @@ public function testModifySchema(array $expected, array $args): void
9192

9293
$this->assertSame($expected, $schema);
9394
}
95+
96+
public function testModifySchemaWithDefaults(): void
97+
{
98+
Defaults::setNode(1);
99+
Defaults::setEpochOffset(1738265600000);
100+
101+
$args = ['snowflake', null, null, null, false];
102+
103+
$expected = [
104+
SchemaInterface::LISTENERS => [
105+
[
106+
ListenerProvider::DEFINITION_CLASS => Listener::class,
107+
ListenerProvider::DEFINITION_ARGS => [
108+
'field' => 'snowflake',
109+
'node' => Defaults::getNode(),
110+
'epochOffset' => Defaults::getEpochOffset(),
111+
'nullable' => false,
112+
],
113+
],
114+
],
115+
];
116+
117+
$schema = [];
118+
$snowflake = new SnowflakeGeneric(...$args);
119+
$snowflake->modifySchema($schema);
120+
121+
$this->assertSame($expected, $schema);
122+
$this->assertSame(1, Defaults::getNode());
123+
$this->assertSame(1738265600000, Defaults::getEpochOffset());
124+
}
125+
126+
#[\Override]
127+
protected function setUp(): void
128+
{
129+
Defaults::setNode(0);
130+
Defaults::setEpochOffset(0);
131+
132+
parent::setUp();
133+
}
94134
}

tests/Identifier/Unit/SnowflakeInstagramTest.php

Lines changed: 41 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66

77
use Cycle\ORM\Entity\Behavior\Dispatcher\ListenerProvider;
88
use Cycle\ORM\Entity\Behavior\Identifier\SnowflakeInstagram;
9-
use Cycle\ORM\Entity\Behavior\Identifier\Listener\SnowflakeInstagram as SnowflakeInstagramListener;
9+
use Cycle\ORM\Entity\Behavior\Identifier\Defaults\SnowflakeInstagram as Defaults;
10+
use Cycle\ORM\Entity\Behavior\Identifier\Listener\SnowflakeInstagram as Listener;
1011
use Cycle\ORM\SchemaInterface;
1112
use PHPUnit\Framework\TestCase;
1213

@@ -18,7 +19,7 @@ public static function schemaDataProvider(): \Traversable
1819
[
1920
SchemaInterface::LISTENERS => [
2021
[
21-
ListenerProvider::DEFINITION_CLASS => SnowflakeInstagramListener::class,
22+
ListenerProvider::DEFINITION_CLASS => Listener::class,
2223
ListenerProvider::DEFINITION_ARGS => [
2324
'field' => 'snowflake',
2425
'shardId' => 0,
@@ -33,7 +34,7 @@ public static function schemaDataProvider(): \Traversable
3334
[
3435
SchemaInterface::LISTENERS => [
3536
[
36-
ListenerProvider::DEFINITION_CLASS => SnowflakeInstagramListener::class,
37+
ListenerProvider::DEFINITION_CLASS => Listener::class,
3738
ListenerProvider::DEFINITION_ARGS => [
3839
'field' => 'custom_snowflake',
3940
'shardId' => 0,
@@ -48,7 +49,7 @@ public static function schemaDataProvider(): \Traversable
4849
[
4950
SchemaInterface::LISTENERS => [
5051
[
51-
ListenerProvider::DEFINITION_CLASS => SnowflakeInstagramListener::class,
52+
ListenerProvider::DEFINITION_CLASS => Listener::class,
5253
ListenerProvider::DEFINITION_ARGS => [
5354
'field' => 'custom_snowflake',
5455
'shardId' => 0,
@@ -63,7 +64,7 @@ public static function schemaDataProvider(): \Traversable
6364
[
6465
SchemaInterface::LISTENERS => [
6566
[
66-
ListenerProvider::DEFINITION_CLASS => SnowflakeInstagramListener::class,
67+
ListenerProvider::DEFINITION_CLASS => Listener::class,
6768
ListenerProvider::DEFINITION_ARGS => [
6869
'field' => 'custom_snowflake',
6970
'shardId' => 3,
@@ -87,4 +88,39 @@ public function testModifySchema(array $expected, array $args): void
8788

8889
$this->assertSame($expected, $schema);
8990
}
91+
92+
public function testModifySchemaWithDefaults(): void
93+
{
94+
Defaults::setShardId(1);
95+
96+
$args = ['snowflake', null, null, false];
97+
98+
$expected = [
99+
SchemaInterface::LISTENERS => [
100+
[
101+
ListenerProvider::DEFINITION_CLASS => Listener::class,
102+
ListenerProvider::DEFINITION_ARGS => [
103+
'field' => 'snowflake',
104+
'shardId' => Defaults::getShardId(),
105+
'nullable' => false,
106+
],
107+
],
108+
],
109+
];
110+
111+
$schema = [];
112+
$snowflake = new SnowflakeInstagram(...$args);
113+
$snowflake->modifySchema($schema);
114+
115+
$this->assertSame($expected, $schema);
116+
$this->assertSame(1, Defaults::getShardId());
117+
}
118+
119+
#[\Override]
120+
protected function setUp(): void
121+
{
122+
Defaults::setShardId(0);
123+
124+
parent::setUp();
125+
}
90126
}

tests/Identifier/Unit/SnowflakeMastodonTest.php

Lines changed: 41 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66

77
use Cycle\ORM\Entity\Behavior\Dispatcher\ListenerProvider;
88
use Cycle\ORM\Entity\Behavior\Identifier\SnowflakeMastodon;
9-
use Cycle\ORM\Entity\Behavior\Identifier\Listener\SnowflakeMastodon as SnowflakeMastodonListener;
9+
use Cycle\ORM\Entity\Behavior\Identifier\Defaults\SnowflakeMastodon as Defaults;
10+
use Cycle\ORM\Entity\Behavior\Identifier\Listener\SnowflakeMastodon as Listener;
1011
use Cycle\ORM\SchemaInterface;
1112
use PHPUnit\Framework\TestCase;
1213

@@ -18,7 +19,7 @@ public static function schemaDataProvider(): \Traversable
1819
[
1920
SchemaInterface::LISTENERS => [
2021
[
21-
ListenerProvider::DEFINITION_CLASS => SnowflakeMastodonListener::class,
22+
ListenerProvider::DEFINITION_CLASS => Listener::class,
2223
ListenerProvider::DEFINITION_ARGS => [
2324
'field' => 'snowflake',
2425
'tableName' => null,
@@ -33,7 +34,7 @@ public static function schemaDataProvider(): \Traversable
3334
[
3435
SchemaInterface::LISTENERS => [
3536
[
36-
ListenerProvider::DEFINITION_CLASS => SnowflakeMastodonListener::class,
37+
ListenerProvider::DEFINITION_CLASS => Listener::class,
3738
ListenerProvider::DEFINITION_ARGS => [
3839
'field' => 'custom_snowflake',
3940
'tableName' => null,
@@ -48,7 +49,7 @@ public static function schemaDataProvider(): \Traversable
4849
[
4950
SchemaInterface::LISTENERS => [
5051
[
51-
ListenerProvider::DEFINITION_CLASS => SnowflakeMastodonListener::class,
52+
ListenerProvider::DEFINITION_CLASS => Listener::class,
5253
ListenerProvider::DEFINITION_ARGS => [
5354
'field' => 'custom_snowflake',
5455
'tableName' => null,
@@ -63,7 +64,7 @@ public static function schemaDataProvider(): \Traversable
6364
[
6465
SchemaInterface::LISTENERS => [
6566
[
66-
ListenerProvider::DEFINITION_CLASS => SnowflakeMastodonListener::class,
67+
ListenerProvider::DEFINITION_CLASS => Listener::class,
6768
ListenerProvider::DEFINITION_ARGS => [
6869
'field' => 'custom_snowflake',
6970
'tableName' => 'users',
@@ -87,4 +88,39 @@ public function testModifySchema(array $expected, array $args): void
8788

8889
$this->assertSame($expected, $schema);
8990
}
91+
92+
public function testModifySchemaWithDefaults(): void
93+
{
94+
Defaults::setTableName('users');
95+
96+
$args = ['snowflake', null, null, false];
97+
98+
$expected = [
99+
SchemaInterface::LISTENERS => [
100+
[
101+
ListenerProvider::DEFINITION_CLASS => Listener::class,
102+
ListenerProvider::DEFINITION_ARGS => [
103+
'field' => 'snowflake',
104+
'tableName' => Defaults::getTableName(),
105+
'nullable' => false,
106+
],
107+
],
108+
],
109+
];
110+
111+
$schema = [];
112+
$snowflake = new SnowflakeMastodon(...$args);
113+
$snowflake->modifySchema($schema);
114+
115+
$this->assertSame($expected, $schema);
116+
$this->assertSame('users', Defaults::getTableName());
117+
}
118+
119+
#[\Override]
120+
protected function setUp(): void
121+
{
122+
Defaults::setTableName(null);
123+
124+
parent::setUp();
125+
}
90126
}

0 commit comments

Comments
 (0)