From 7ff0dc1c8d5f995669ae49222ed3be11076cf455 Mon Sep 17 00:00:00 2001 From: Andrey Helldar Date: Tue, 14 Nov 2023 23:14:20 +0300 Subject: [PATCH 1/3] Added `Cache::rememberForever` method --- composer.json | 2 +- src/Services/Cache.php | 5 +++++ src/Services/Storages/Disabled.php | 5 +++++ src/Services/Storages/MainStore.php | 7 +++++++ src/Services/Storages/TaggedStore.php | 7 +++++++ src/Support/CacheManager.php | 5 +++++ .../Arrayables/Many/Arr/DragonCodeTest.php | 9 +++++++++ .../Arrayables/Many/Arr/IlluminateTest.php | 9 +++++++++ .../NotWhen/Arrayables/Many/Arr/MixedTest.php | 9 +++++++++ .../Arrayables/Many/Files/DragonCodeTest.php | 9 +++++++++ .../Arrayables/Many/Files/IlluminateTest.php | 9 +++++++++ .../NotWhen/Arrayables/Many/Files/MixedTest.php | 9 +++++++++ .../Arrayables/Many/Redis/DragonCodeTest.php | 13 +++++++++++++ .../Arrayables/Many/Redis/IlluminateTest.php | 13 +++++++++++++ .../NotWhen/Arrayables/Many/Redis/MixedTest.php | 13 +++++++++++++ .../Arrayables/Simple/Arr/DragonCodeTest.php | 9 +++++++++ .../Arrayables/Simple/Arr/IlluminateTest.php | 9 +++++++++ .../Arrayables/Simple/Files/DragonCodeTest.php | 9 +++++++++ .../Arrayables/Simple/Files/IlluminateTest.php | 9 +++++++++ .../Arrayables/Simple/Redis/DragonCodeTest.php | 13 +++++++++++++ .../Arrayables/Simple/Redis/IlluminateTest.php | 13 +++++++++++++ tests/Cache/NotWhen/Callables/ArrayTest.php | 11 +++++++++++ tests/Cache/NotWhen/Callables/FileTest.php | 11 +++++++++++ tests/Cache/NotWhen/Callables/RedisTest.php | 15 +++++++++++++++ tests/Cache/NotWhen/Dto/ArrayTest.php | 9 +++++++++ tests/Cache/NotWhen/Dto/FileTest.php | 9 +++++++++ tests/Cache/NotWhen/Dto/RedisTest.php | 13 +++++++++++++ tests/Cache/NotWhen/Simple/ArrayTest.php | 7 +++++++ tests/Cache/NotWhen/Simple/FileTest.php | 7 +++++++ tests/Cache/NotWhen/Simple/RedisTest.php | 11 +++++++++++ .../When/Arrayables/Many/Arr/DragonCodeTest.php | 8 ++++++++ .../When/Arrayables/Many/Arr/IlluminateTest.php | 8 ++++++++ .../Cache/When/Arrayables/Many/Arr/MixedTest.php | 8 ++++++++ .../When/Arrayables/Many/Files/DragonCodeTest.php | 8 ++++++++ .../When/Arrayables/Many/Files/IlluminateTest.php | 8 ++++++++ .../When/Arrayables/Many/Files/MixedTest.php | 8 ++++++++ .../When/Arrayables/Many/Redis/DragonCodeTest.php | 13 +++++++++++++ .../When/Arrayables/Many/Redis/IlluminateTest.php | 13 +++++++++++++ .../When/Arrayables/Many/Redis/MixedTest.php | 13 +++++++++++++ .../When/Arrayables/Simple/Arr/DragonCodeTest.php | 8 ++++++++ .../When/Arrayables/Simple/Arr/IlluminateTest.php | 8 ++++++++ .../Arrayables/Simple/Files/DragonCodeTest.php | 8 ++++++++ .../Arrayables/Simple/Files/IlluminateTest.php | 8 ++++++++ .../Arrayables/Simple/Redis/DragonCodeTest.php | 13 +++++++++++++ .../Arrayables/Simple/Redis/IlluminateTest.php | 13 +++++++++++++ tests/Cache/When/Callables/ArrayTest.php | 10 ++++++++++ tests/Cache/When/Callables/FileTest.php | 10 ++++++++++ tests/Cache/When/Callables/RedisTest.php | 15 +++++++++++++++ tests/Cache/When/Dto/ArrayTest.php | 8 ++++++++ tests/Cache/When/Dto/FileTest.php | 8 ++++++++ tests/Cache/When/Dto/RedisTest.php | 13 +++++++++++++ tests/Cache/When/Simple/ArrayTest.php | 10 ++++++++++ tests/Cache/When/Simple/FileTest.php | 10 ++++++++++ tests/Cache/When/Simple/RedisTest.php | 11 +++++++++++ 54 files changed, 518 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index afcc87a..3d3f0f4 100644 --- a/composer.json +++ b/composer.json @@ -46,7 +46,7 @@ ], "require": { "php": "^8.0", - "dragon-code/contracts": "^2.16", + "dragon-code/contracts": "^2.21", "dragon-code/support": "^6.11.3", "illuminate/support": ">=6.0 <11.0" }, diff --git a/src/Services/Cache.php b/src/Services/Cache.php index 0731181..4489070 100644 --- a/src/Services/Cache.php +++ b/src/Services/Cache.php @@ -97,6 +97,11 @@ public function remember(mixed $value): mixed return $this->manager()->remember($this->getKey(), $value, $this->ttl); } + public function rememberForever(mixed $value): mixed + { + return $this->manager()->rememberForever($this->getKey(), $value); + } + public function forget(): static { $this->manager()->forget($this->getKey()); diff --git a/src/Services/Storages/Disabled.php b/src/Services/Storages/Disabled.php index 80c929a..7f0dea6 100644 --- a/src/Services/Storages/Disabled.php +++ b/src/Services/Storages/Disabled.php @@ -21,6 +21,11 @@ public function remember(string $key, $value, int $seconds): mixed return $this->get($key, $value); } + public function rememberForever(string $key, $value): mixed + { + return $this->get($key, $value); + } + public function forget(string $key): void {} public function has(string $key): bool diff --git a/src/Services/Storages/MainStore.php b/src/Services/Storages/MainStore.php index f25c32e..cabbd55 100644 --- a/src/Services/Storages/MainStore.php +++ b/src/Services/Storages/MainStore.php @@ -33,6 +33,13 @@ public function remember(string $key, $value, int $seconds): mixed return Cache::remember($key, $seconds, $value); } + public function rememberForever(string $key, $value): mixed + { + $value = $this->makeCallable($value); + + return Cache::rememberForever($key, $value); + } + public function forget(string $key): void { Cache::forget($key); diff --git a/src/Services/Storages/TaggedStore.php b/src/Services/Storages/TaggedStore.php index 0610784..b42d354 100644 --- a/src/Services/Storages/TaggedStore.php +++ b/src/Services/Storages/TaggedStore.php @@ -43,6 +43,13 @@ public function remember(string $key, $value, int $seconds): mixed return $this->cache()->remember($key, $seconds, $value); } + public function rememberForever(string $key, $value): mixed + { + $value = $this->makeCallable($value); + + return $this->cache()->rememberForever($key, $value); + } + public function forget(string $key): void { $this->cache()->forget($key); diff --git a/src/Support/CacheManager.php b/src/Support/CacheManager.php index 732df57..f923399 100644 --- a/src/Support/CacheManager.php +++ b/src/Support/CacheManager.php @@ -46,6 +46,11 @@ public function remember(string $key, $value, int $seconds): mixed return $this->instance()->remember($key, $value, $seconds); } + public function rememberForever(string $key, $value): mixed + { + return $this->instance()->rememberForever($key, $value); + } + public function forget(string $key): void { $this->instance()->forget($key); diff --git a/tests/Cache/NotWhen/Arrayables/Many/Arr/DragonCodeTest.php b/tests/Cache/NotWhen/Arrayables/Many/Arr/DragonCodeTest.php index 8c5ad8a..e80a576 100644 --- a/tests/Cache/NotWhen/Arrayables/Many/Arr/DragonCodeTest.php +++ b/tests/Cache/NotWhen/Arrayables/Many/Arr/DragonCodeTest.php @@ -45,6 +45,15 @@ public function testRemember() $this->assertNull($this->cache()->get()); } + public function testRememberForever() + { + $item = new DragonCodeArrayable(); + + $this->assertSame($item, $this->cache()->rememberForever($item)); + + $this->assertNull($this->cache()->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/NotWhen/Arrayables/Many/Arr/IlluminateTest.php b/tests/Cache/NotWhen/Arrayables/Many/Arr/IlluminateTest.php index 896ab0f..c122e45 100644 --- a/tests/Cache/NotWhen/Arrayables/Many/Arr/IlluminateTest.php +++ b/tests/Cache/NotWhen/Arrayables/Many/Arr/IlluminateTest.php @@ -45,6 +45,15 @@ public function testRemember() $this->assertNull($this->cache()->get()); } + public function testRememberForever() + { + $item = new IlluminateArrayable(); + + $this->assertSame($item, $this->cache()->rememberForever($item)); + + $this->assertNull($this->cache()->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/NotWhen/Arrayables/Many/Arr/MixedTest.php b/tests/Cache/NotWhen/Arrayables/Many/Arr/MixedTest.php index ab2d7ee..bce9c1f 100644 --- a/tests/Cache/NotWhen/Arrayables/Many/Arr/MixedTest.php +++ b/tests/Cache/NotWhen/Arrayables/Many/Arr/MixedTest.php @@ -49,6 +49,15 @@ public function testRemember() $this->assertNull($this->cache()->get()); } + public function testRememberForever() + { + $item = new MixedArrayable(); + + $this->assertSame($item, $this->cache()->rememberForever($item)); + + $this->assertNull($this->cache()->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/NotWhen/Arrayables/Many/Files/DragonCodeTest.php b/tests/Cache/NotWhen/Arrayables/Many/Files/DragonCodeTest.php index bed7213..9b87902 100644 --- a/tests/Cache/NotWhen/Arrayables/Many/Files/DragonCodeTest.php +++ b/tests/Cache/NotWhen/Arrayables/Many/Files/DragonCodeTest.php @@ -47,6 +47,15 @@ public function testRemember() $this->assertNull($this->cache()->get()); } + public function testRememberForever() + { + $item = new DragonCodeArrayable(); + + $this->assertSame($item, $this->cache()->rememberForever($item)); + + $this->assertNull($this->cache()->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/NotWhen/Arrayables/Many/Files/IlluminateTest.php b/tests/Cache/NotWhen/Arrayables/Many/Files/IlluminateTest.php index f0f6c2e..d8ac4f3 100644 --- a/tests/Cache/NotWhen/Arrayables/Many/Files/IlluminateTest.php +++ b/tests/Cache/NotWhen/Arrayables/Many/Files/IlluminateTest.php @@ -47,6 +47,15 @@ public function testRemember() $this->assertNull($this->cache()->get()); } + public function testRememberForever() + { + $item = new IlluminateArrayable(); + + $this->assertSame($item, $this->cache()->rememberForever($item)); + + $this->assertNull($this->cache()->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/NotWhen/Arrayables/Many/Files/MixedTest.php b/tests/Cache/NotWhen/Arrayables/Many/Files/MixedTest.php index 21bdbe3..a91025b 100644 --- a/tests/Cache/NotWhen/Arrayables/Many/Files/MixedTest.php +++ b/tests/Cache/NotWhen/Arrayables/Many/Files/MixedTest.php @@ -51,6 +51,15 @@ public function testRemember() $this->assertNull($this->cache()->get()); } + public function testRememberForever() + { + $item = new MixedArrayable(); + + $this->assertSame($item, $this->cache()->rememberForever($item)); + + $this->assertNull($this->cache()->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/NotWhen/Arrayables/Many/Redis/DragonCodeTest.php b/tests/Cache/NotWhen/Arrayables/Many/Redis/DragonCodeTest.php index 855e17b..a87c17a 100644 --- a/tests/Cache/NotWhen/Arrayables/Many/Redis/DragonCodeTest.php +++ b/tests/Cache/NotWhen/Arrayables/Many/Redis/DragonCodeTest.php @@ -59,6 +59,19 @@ public function testRemember() $this->assertNull($this->cache(['cache'])->get()); } + public function testRememberForever() + { + $item = new DragonCodeArrayable(); + + $this->assertSame($item, $this->cache()->rememberForever($item)); + + $this->assertNull($this->cache()->get()); + $this->assertNull($this->cache(['qwerty', 'cache'])->get()); + + $this->assertNull($this->cache(['qwerty'])->get()); + $this->assertNull($this->cache(['cache'])->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/NotWhen/Arrayables/Many/Redis/IlluminateTest.php b/tests/Cache/NotWhen/Arrayables/Many/Redis/IlluminateTest.php index 30b8653..86f0d55 100644 --- a/tests/Cache/NotWhen/Arrayables/Many/Redis/IlluminateTest.php +++ b/tests/Cache/NotWhen/Arrayables/Many/Redis/IlluminateTest.php @@ -59,6 +59,19 @@ public function testRemember() $this->assertNull($this->cache(['cache'])->get()); } + public function testRememberForever() + { + $item = new IlluminateArrayable(); + + $this->assertSame($item, $this->cache()->rememberForever($item)); + + $this->assertNull($this->cache()->get()); + $this->assertNull($this->cache(['qwerty', 'cache'])->get()); + + $this->assertNull($this->cache(['qwerty'])->get()); + $this->assertNull($this->cache(['cache'])->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/NotWhen/Arrayables/Many/Redis/MixedTest.php b/tests/Cache/NotWhen/Arrayables/Many/Redis/MixedTest.php index ff829a3..016d58d 100644 --- a/tests/Cache/NotWhen/Arrayables/Many/Redis/MixedTest.php +++ b/tests/Cache/NotWhen/Arrayables/Many/Redis/MixedTest.php @@ -63,6 +63,19 @@ public function testRemember() $this->assertNull($this->cache(['cache'])->get()); } + public function testRememberForever() + { + $item = new MixedArrayable(); + + $this->assertSame($item, $this->cache()->rememberForever($item)); + + $this->assertNull($this->cache()->get()); + $this->assertNull($this->cache(['qwerty', 'cache'])->get()); + + $this->assertNull($this->cache(['qwerty'])->get()); + $this->assertNull($this->cache(['cache'])->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/NotWhen/Arrayables/Simple/Arr/DragonCodeTest.php b/tests/Cache/NotWhen/Arrayables/Simple/Arr/DragonCodeTest.php index f0de9d0..7c10edc 100644 --- a/tests/Cache/NotWhen/Arrayables/Simple/Arr/DragonCodeTest.php +++ b/tests/Cache/NotWhen/Arrayables/Simple/Arr/DragonCodeTest.php @@ -41,6 +41,15 @@ public function testRemember() $this->assertNull($this->cache()->get()); } + public function testRememberForever() + { + $item = new DragonCodeArrayable(); + + $this->assertSame($item, $this->cache()->rememberForever($item)); + + $this->assertNull($this->cache()->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/NotWhen/Arrayables/Simple/Arr/IlluminateTest.php b/tests/Cache/NotWhen/Arrayables/Simple/Arr/IlluminateTest.php index a36c4dd..6116ed8 100644 --- a/tests/Cache/NotWhen/Arrayables/Simple/Arr/IlluminateTest.php +++ b/tests/Cache/NotWhen/Arrayables/Simple/Arr/IlluminateTest.php @@ -41,6 +41,15 @@ public function testRemember() $this->assertNull($this->cache()->get()); } + public function testRememberForever() + { + $item = new IlluminateArrayable(); + + $this->assertSame($item, $this->cache()->rememberForever($item)); + + $this->assertNull($this->cache()->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/NotWhen/Arrayables/Simple/Files/DragonCodeTest.php b/tests/Cache/NotWhen/Arrayables/Simple/Files/DragonCodeTest.php index 658b3e5..f15d78f 100644 --- a/tests/Cache/NotWhen/Arrayables/Simple/Files/DragonCodeTest.php +++ b/tests/Cache/NotWhen/Arrayables/Simple/Files/DragonCodeTest.php @@ -43,6 +43,15 @@ public function testRemember() $this->assertNull($this->cache()->get()); } + public function testRememberForever() + { + $item = new DragonCodeArrayable(); + + $this->assertSame($item, $this->cache()->rememberForever($item)); + + $this->assertNull($this->cache()->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/NotWhen/Arrayables/Simple/Files/IlluminateTest.php b/tests/Cache/NotWhen/Arrayables/Simple/Files/IlluminateTest.php index 97c960e..a1d8a6d 100644 --- a/tests/Cache/NotWhen/Arrayables/Simple/Files/IlluminateTest.php +++ b/tests/Cache/NotWhen/Arrayables/Simple/Files/IlluminateTest.php @@ -43,6 +43,15 @@ public function testRemember() $this->assertNull($this->cache()->get()); } + public function testRememberForever() + { + $item = new IlluminateArrayable(); + + $this->assertSame($item, $this->cache()->rememberForever($item)); + + $this->assertNull($this->cache()->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/NotWhen/Arrayables/Simple/Redis/DragonCodeTest.php b/tests/Cache/NotWhen/Arrayables/Simple/Redis/DragonCodeTest.php index c509a60..c105b12 100644 --- a/tests/Cache/NotWhen/Arrayables/Simple/Redis/DragonCodeTest.php +++ b/tests/Cache/NotWhen/Arrayables/Simple/Redis/DragonCodeTest.php @@ -55,6 +55,19 @@ public function testRemember() $this->assertNull($this->cache(['cache'])->get()); } + public function testRememberForever() + { + $item = new DragonCodeArrayable(); + + $this->assertSame($item, $this->cache()->rememberForever($item)); + + $this->assertNull($this->cache()->get()); + $this->assertNull($this->cache(['qwerty', 'cache'])->get()); + + $this->assertNull($this->cache(['qwerty'])->get()); + $this->assertNull($this->cache(['cache'])->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/NotWhen/Arrayables/Simple/Redis/IlluminateTest.php b/tests/Cache/NotWhen/Arrayables/Simple/Redis/IlluminateTest.php index 0508554..891a0c6 100644 --- a/tests/Cache/NotWhen/Arrayables/Simple/Redis/IlluminateTest.php +++ b/tests/Cache/NotWhen/Arrayables/Simple/Redis/IlluminateTest.php @@ -55,6 +55,19 @@ public function testRemember() $this->assertNull($this->cache(['cache'])->get()); } + public function testRememberForever() + { + $item = new IlluminateArrayable(); + + $this->assertSame($item, $this->cache()->rememberForever($item)); + + $this->assertNull($this->cache()->get()); + $this->assertNull($this->cache(['qwerty', 'cache'])->get()); + + $this->assertNull($this->cache(['qwerty'])->get()); + $this->assertNull($this->cache(['cache'])->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/NotWhen/Callables/ArrayTest.php b/tests/Cache/NotWhen/Callables/ArrayTest.php index 67aec58..3856563 100644 --- a/tests/Cache/NotWhen/Callables/ArrayTest.php +++ b/tests/Cache/NotWhen/Callables/ArrayTest.php @@ -43,6 +43,17 @@ public function testRemember() $this->assertNull($this->cache()->get()); } + public function testRememberForever() + { + $item = function () { + return $this->value; + }; + + $this->assertSame($this->value, $this->cache()->rememberForever($item)); + + $this->assertNull($this->cache()->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/NotWhen/Callables/FileTest.php b/tests/Cache/NotWhen/Callables/FileTest.php index cba4f6a..d185384 100644 --- a/tests/Cache/NotWhen/Callables/FileTest.php +++ b/tests/Cache/NotWhen/Callables/FileTest.php @@ -43,6 +43,17 @@ public function testRemember() $this->assertNull($this->cache()->get()); } + public function testRememberForever() + { + $item = function () { + return $this->value; + }; + + $this->assertSame($this->value, $this->cache()->rememberForever($item)); + + $this->assertNull($this->cache()->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/NotWhen/Callables/RedisTest.php b/tests/Cache/NotWhen/Callables/RedisTest.php index 588fae9..791a20c 100644 --- a/tests/Cache/NotWhen/Callables/RedisTest.php +++ b/tests/Cache/NotWhen/Callables/RedisTest.php @@ -55,6 +55,21 @@ public function testRemember() $this->assertNull($this->cache(['cache'])->get()); } + public function testRememberForever() + { + $item = function () { + return $this->value; + }; + + $this->assertSame($this->value, $this->cache()->rememberForever($item)); + + $this->assertNull($this->cache()->get()); + $this->assertNull($this->cache(['qwerty', 'cache'])->get()); + + $this->assertNull($this->cache(['qwerty'])->get()); + $this->assertNull($this->cache(['cache'])->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/NotWhen/Dto/ArrayTest.php b/tests/Cache/NotWhen/Dto/ArrayTest.php index b78bc22..58cb663 100644 --- a/tests/Cache/NotWhen/Dto/ArrayTest.php +++ b/tests/Cache/NotWhen/Dto/ArrayTest.php @@ -43,6 +43,15 @@ public function testRemember() $this->assertNull($this->cache()->get()); } + public function testRememberForever() + { + $item = $this->dto(); + + $this->assertSame($item, $this->cache()->rememberForever($item)); + + $this->assertNull($this->cache()->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/NotWhen/Dto/FileTest.php b/tests/Cache/NotWhen/Dto/FileTest.php index 070720c..d6036ab 100644 --- a/tests/Cache/NotWhen/Dto/FileTest.php +++ b/tests/Cache/NotWhen/Dto/FileTest.php @@ -45,6 +45,15 @@ public function testRemember() $this->assertNull($this->cache()->get()); } + public function testRememberForever() + { + $item = $this->dto(); + + $this->assertSame($item, $this->cache()->rememberForever($item)); + + $this->assertNull($this->cache()->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/NotWhen/Dto/RedisTest.php b/tests/Cache/NotWhen/Dto/RedisTest.php index e582b27..2afb53b 100644 --- a/tests/Cache/NotWhen/Dto/RedisTest.php +++ b/tests/Cache/NotWhen/Dto/RedisTest.php @@ -57,6 +57,19 @@ public function testRemember() $this->assertNull($this->cache(['cache'])->get()); } + public function testRememberForever() + { + $item = $this->dto(); + + $this->assertSame($item, $this->cache()->rememberForever($item)); + + $this->assertNull($this->cache()->get()); + $this->assertNull($this->cache(['qwerty', 'cache'])->get()); + + $this->assertNull($this->cache(['qwerty'])->get()); + $this->assertNull($this->cache(['cache'])->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/NotWhen/Simple/ArrayTest.php b/tests/Cache/NotWhen/Simple/ArrayTest.php index 0d31b30..3042d29 100644 --- a/tests/Cache/NotWhen/Simple/ArrayTest.php +++ b/tests/Cache/NotWhen/Simple/ArrayTest.php @@ -33,6 +33,13 @@ public function testRemember() $this->assertNull($this->cache()->get()); } + public function testRememberForever() + { + $this->assertSame($this->value, $this->cache()->rememberForever($this->value)); + + $this->assertNull($this->cache()->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/NotWhen/Simple/FileTest.php b/tests/Cache/NotWhen/Simple/FileTest.php index 8cbc9ff..547af5e 100644 --- a/tests/Cache/NotWhen/Simple/FileTest.php +++ b/tests/Cache/NotWhen/Simple/FileTest.php @@ -33,6 +33,13 @@ public function testRemember() $this->assertNull($this->cache()->get()); } + public function testRememberForever() + { + $this->assertSame($this->value, $this->cache()->rememberForever($this->value)); + + $this->assertNull($this->cache()->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/NotWhen/Simple/RedisTest.php b/tests/Cache/NotWhen/Simple/RedisTest.php index 817ada2..03924f0 100644 --- a/tests/Cache/NotWhen/Simple/RedisTest.php +++ b/tests/Cache/NotWhen/Simple/RedisTest.php @@ -47,6 +47,17 @@ public function testRemember() $this->assertNull($this->cache(['cache'])->get()); } + public function testRememberForever() + { + $this->assertSame($this->value, $this->cache()->rememberForever($this->value)); + + $this->assertNull($this->cache()->get()); + $this->assertNull($this->cache(['qwerty', 'cache'])->get()); + + $this->assertNull($this->cache(['qwerty'])->get()); + $this->assertNull($this->cache(['cache'])->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/When/Arrayables/Many/Arr/DragonCodeTest.php b/tests/Cache/When/Arrayables/Many/Arr/DragonCodeTest.php index af44590..2c46928 100644 --- a/tests/Cache/When/Arrayables/Many/Arr/DragonCodeTest.php +++ b/tests/Cache/When/Arrayables/Many/Arr/DragonCodeTest.php @@ -45,6 +45,14 @@ public function testRemember() $this->assertSame(serialize($item), serialize($this->cache()->get())); } + public function testRememberForever() + { + $item = new DragonCodeArrayable(); + + $this->assertSame(serialize($item), serialize($this->cache()->rememberForever($item))); + $this->assertSame(serialize($item), serialize($this->cache()->get())); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/When/Arrayables/Many/Arr/IlluminateTest.php b/tests/Cache/When/Arrayables/Many/Arr/IlluminateTest.php index 38812a4..b32c195 100644 --- a/tests/Cache/When/Arrayables/Many/Arr/IlluminateTest.php +++ b/tests/Cache/When/Arrayables/Many/Arr/IlluminateTest.php @@ -45,6 +45,14 @@ public function testRemember() $this->assertSame(serialize($item), serialize($this->cache()->get())); } + public function testRememberForever() + { + $item = new IlluminateArrayable(); + + $this->assertSame(serialize($item), serialize($this->cache()->rememberForever($item))); + $this->assertSame(serialize($item), serialize($this->cache()->get())); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/When/Arrayables/Many/Arr/MixedTest.php b/tests/Cache/When/Arrayables/Many/Arr/MixedTest.php index 9252536..34cee9e 100644 --- a/tests/Cache/When/Arrayables/Many/Arr/MixedTest.php +++ b/tests/Cache/When/Arrayables/Many/Arr/MixedTest.php @@ -49,6 +49,14 @@ public function testRemember() $this->assertSame(serialize($item), serialize($this->cache()->get())); } + public function testRememberForever() + { + $item = new MixedArrayable(); + + $this->assertSame(serialize($item), serialize($this->cache()->rememberForever($item))); + $this->assertSame(serialize($item), serialize($this->cache()->get())); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/When/Arrayables/Many/Files/DragonCodeTest.php b/tests/Cache/When/Arrayables/Many/Files/DragonCodeTest.php index 297d6a5..77a9d7f 100644 --- a/tests/Cache/When/Arrayables/Many/Files/DragonCodeTest.php +++ b/tests/Cache/When/Arrayables/Many/Files/DragonCodeTest.php @@ -47,6 +47,14 @@ public function testRemember() $this->assertSame(serialize($item), serialize($this->cache()->get())); } + public function testRememberForever() + { + $item = new DragonCodeArrayable(); + + $this->assertSame(serialize($item), serialize($this->cache()->rememberForever($item))); + $this->assertSame(serialize($item), serialize($this->cache()->get())); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/When/Arrayables/Many/Files/IlluminateTest.php b/tests/Cache/When/Arrayables/Many/Files/IlluminateTest.php index b356afc..3f0fb77 100644 --- a/tests/Cache/When/Arrayables/Many/Files/IlluminateTest.php +++ b/tests/Cache/When/Arrayables/Many/Files/IlluminateTest.php @@ -47,6 +47,14 @@ public function testRemember() $this->assertSame(serialize($item), serialize($this->cache()->get())); } + public function testRememberForever() + { + $item = new IlluminateArrayable(); + + $this->assertSame(serialize($item), serialize($this->cache()->rememberForever($item))); + $this->assertSame(serialize($item), serialize($this->cache()->get())); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/When/Arrayables/Many/Files/MixedTest.php b/tests/Cache/When/Arrayables/Many/Files/MixedTest.php index b81d2b5..b1eb026 100644 --- a/tests/Cache/When/Arrayables/Many/Files/MixedTest.php +++ b/tests/Cache/When/Arrayables/Many/Files/MixedTest.php @@ -51,6 +51,14 @@ public function testRemember() $this->assertSame(serialize($item), serialize($this->cache()->get())); } + public function testRememberForever() + { + $item = new MixedArrayable(); + + $this->assertSame(serialize($item), serialize($this->cache()->rememberForever($item))); + $this->assertSame(serialize($item), serialize($this->cache()->get())); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/When/Arrayables/Many/Redis/DragonCodeTest.php b/tests/Cache/When/Arrayables/Many/Redis/DragonCodeTest.php index b3077a9..f8f9c4b 100644 --- a/tests/Cache/When/Arrayables/Many/Redis/DragonCodeTest.php +++ b/tests/Cache/When/Arrayables/Many/Redis/DragonCodeTest.php @@ -61,6 +61,19 @@ public function testRemember() $this->assertNull($this->cache(['cache'])->get()); } + public function testRememberForever() + { + $item = new DragonCodeArrayable(); + + $this->assertSame(serialize($item), serialize($this->cache()->rememberForever($item))); + + $this->assertSame(serialize($item), serialize($this->cache()->get())); + $this->assertSame(serialize($item), serialize($this->cache(['qwerty', 'cache'])->get())); + + $this->assertNull($this->cache(['qwerty'])->get()); + $this->assertNull($this->cache(['cache'])->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/When/Arrayables/Many/Redis/IlluminateTest.php b/tests/Cache/When/Arrayables/Many/Redis/IlluminateTest.php index e890258..78f5483 100644 --- a/tests/Cache/When/Arrayables/Many/Redis/IlluminateTest.php +++ b/tests/Cache/When/Arrayables/Many/Redis/IlluminateTest.php @@ -61,6 +61,19 @@ public function testRemember() $this->assertNull($this->cache(['cache'])->get()); } + public function testRememberForever() + { + $item = new IlluminateArrayable(); + + $this->assertSame(serialize($item), serialize($this->cache()->rememberForever($item))); + + $this->assertSame(serialize($item), serialize($this->cache()->get())); + $this->assertSame(serialize($item), serialize($this->cache(['qwerty', 'cache'])->get())); + + $this->assertNull($this->cache(['qwerty'])->get()); + $this->assertNull($this->cache(['cache'])->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/When/Arrayables/Many/Redis/MixedTest.php b/tests/Cache/When/Arrayables/Many/Redis/MixedTest.php index 4087332..022e504 100644 --- a/tests/Cache/When/Arrayables/Many/Redis/MixedTest.php +++ b/tests/Cache/When/Arrayables/Many/Redis/MixedTest.php @@ -65,6 +65,19 @@ public function testRemember() $this->assertNull($this->cache(['cache'])->get()); } + public function testRememberForever() + { + $item = new MixedArrayable(); + + $this->assertSame(serialize($item), serialize($this->cache()->rememberForever($item))); + + $this->assertSame(serialize($item), serialize($this->cache()->get())); + $this->assertSame(serialize($item), serialize($this->cache(['qwerty', 'cache'])->get())); + + $this->assertNull($this->cache(['qwerty'])->get()); + $this->assertNull($this->cache(['cache'])->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/When/Arrayables/Simple/Arr/DragonCodeTest.php b/tests/Cache/When/Arrayables/Simple/Arr/DragonCodeTest.php index 8efc1d4..2b830b5 100644 --- a/tests/Cache/When/Arrayables/Simple/Arr/DragonCodeTest.php +++ b/tests/Cache/When/Arrayables/Simple/Arr/DragonCodeTest.php @@ -41,6 +41,14 @@ public function testRemember() $this->assertSame(serialize($item), serialize($this->cache()->get())); } + public function testRememberForever() + { + $item = new DragonCodeArrayable(); + + $this->assertSame(serialize($item), serialize($this->cache()->rememberForever($item))); + $this->assertSame(serialize($item), serialize($this->cache()->get())); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/When/Arrayables/Simple/Arr/IlluminateTest.php b/tests/Cache/When/Arrayables/Simple/Arr/IlluminateTest.php index 813eec1..ea4c4ed 100644 --- a/tests/Cache/When/Arrayables/Simple/Arr/IlluminateTest.php +++ b/tests/Cache/When/Arrayables/Simple/Arr/IlluminateTest.php @@ -41,6 +41,14 @@ public function testRemember() $this->assertSame(serialize($item), serialize($this->cache()->get())); } + public function testRememberForever() + { + $item = new IlluminateArrayable(); + + $this->assertSame(serialize($item), serialize($this->cache()->rememberForever($item))); + $this->assertSame(serialize($item), serialize($this->cache()->get())); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/When/Arrayables/Simple/Files/DragonCodeTest.php b/tests/Cache/When/Arrayables/Simple/Files/DragonCodeTest.php index 278b42a..37c7e18 100644 --- a/tests/Cache/When/Arrayables/Simple/Files/DragonCodeTest.php +++ b/tests/Cache/When/Arrayables/Simple/Files/DragonCodeTest.php @@ -43,6 +43,14 @@ public function testRemember() $this->assertSame(serialize($item), serialize($this->cache()->get())); } + public function testRememberForever() + { + $item = new DragonCodeArrayable(); + + $this->assertSame(serialize($item), serialize($this->cache()->rememberForever($item))); + $this->assertSame(serialize($item), serialize($this->cache()->get())); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/When/Arrayables/Simple/Files/IlluminateTest.php b/tests/Cache/When/Arrayables/Simple/Files/IlluminateTest.php index 3639739..fbba899 100644 --- a/tests/Cache/When/Arrayables/Simple/Files/IlluminateTest.php +++ b/tests/Cache/When/Arrayables/Simple/Files/IlluminateTest.php @@ -43,6 +43,14 @@ public function testRemember() $this->assertSame(serialize($item), serialize($this->cache()->get())); } + public function testRememberForever() + { + $item = new IlluminateArrayable(); + + $this->assertSame(serialize($item), serialize($this->cache()->rememberForever($item))); + $this->assertSame(serialize($item), serialize($this->cache()->get())); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/When/Arrayables/Simple/Redis/DragonCodeTest.php b/tests/Cache/When/Arrayables/Simple/Redis/DragonCodeTest.php index e826972..d9b2995 100644 --- a/tests/Cache/When/Arrayables/Simple/Redis/DragonCodeTest.php +++ b/tests/Cache/When/Arrayables/Simple/Redis/DragonCodeTest.php @@ -57,6 +57,19 @@ public function testRemember() $this->assertNull($this->cache(['cache'])->get()); } + public function testRememberForever() + { + $item = new DragonCodeArrayable(); + + $this->assertSame(serialize($item), serialize($this->cache()->rememberForever($item))); + + $this->assertSame(serialize($item), serialize($this->cache()->get())); + $this->assertSame(serialize($item), serialize($this->cache(['qwerty', 'cache'])->get())); + + $this->assertNull($this->cache(['qwerty'])->get()); + $this->assertNull($this->cache(['cache'])->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/When/Arrayables/Simple/Redis/IlluminateTest.php b/tests/Cache/When/Arrayables/Simple/Redis/IlluminateTest.php index 007d48e..102bb3b 100644 --- a/tests/Cache/When/Arrayables/Simple/Redis/IlluminateTest.php +++ b/tests/Cache/When/Arrayables/Simple/Redis/IlluminateTest.php @@ -57,6 +57,19 @@ public function testRemember() $this->assertNull($this->cache(['cache'])->get()); } + public function testRememberForever() + { + $item = new IlluminateArrayable(); + + $this->assertSame(serialize($item), serialize($this->cache()->rememberForever($item))); + + $this->assertSame(serialize($item), serialize($this->cache()->get())); + $this->assertSame(serialize($item), serialize($this->cache(['qwerty', 'cache'])->get())); + + $this->assertNull($this->cache(['qwerty'])->get()); + $this->assertNull($this->cache(['cache'])->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/When/Callables/ArrayTest.php b/tests/Cache/When/Callables/ArrayTest.php index 314ef2d..950fe43 100644 --- a/tests/Cache/When/Callables/ArrayTest.php +++ b/tests/Cache/When/Callables/ArrayTest.php @@ -40,6 +40,16 @@ public function testRemember() $this->assertSame($this->value, $this->cache()->get()); } + public function testRememberForever() + { + $item = function () { + return $this->value; + }; + + $this->assertSame($this->value, $this->cache()->rememberForever($item)); + $this->assertSame($this->value, $this->cache()->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/When/Callables/FileTest.php b/tests/Cache/When/Callables/FileTest.php index 88ba139..c4048b7 100644 --- a/tests/Cache/When/Callables/FileTest.php +++ b/tests/Cache/When/Callables/FileTest.php @@ -42,6 +42,16 @@ public function testRemember() $this->assertSame($this->value, $this->cache()->get()); } + public function testRememberForever() + { + $item = function () { + return $this->value; + }; + + $this->assertSame($this->value, $this->cache()->rememberForever($item)); + $this->assertSame($this->value, $this->cache()->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/When/Callables/RedisTest.php b/tests/Cache/When/Callables/RedisTest.php index 9a3618f..62d65bf 100644 --- a/tests/Cache/When/Callables/RedisTest.php +++ b/tests/Cache/When/Callables/RedisTest.php @@ -57,6 +57,21 @@ public function testRemember() $this->assertNull($this->cache(['cache'])->get()); } + public function testRememberForever() + { + $item = function () { + return $this->value; + }; + + $this->assertSame($this->value, $this->cache()->rememberForever($item)); + + $this->assertSame($this->value, $this->cache()->get()); + $this->assertSame($this->value, $this->cache(['qwerty', 'cache'])->get()); + + $this->assertNull($this->cache(['qwerty'])->get()); + $this->assertNull($this->cache(['cache'])->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/When/Dto/ArrayTest.php b/tests/Cache/When/Dto/ArrayTest.php index afa8b2a..503725a 100644 --- a/tests/Cache/When/Dto/ArrayTest.php +++ b/tests/Cache/When/Dto/ArrayTest.php @@ -43,6 +43,14 @@ public function testRemember() $this->assertSame(serialize($item), serialize($this->cache()->get())); } + public function testRememberForever() + { + $item = $this->dto(); + + $this->assertSame(serialize($item), serialize($this->cache()->rememberForever($item))); + $this->assertSame(serialize($item), serialize($this->cache()->get())); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/When/Dto/FileTest.php b/tests/Cache/When/Dto/FileTest.php index 920d062..7dfb3f6 100644 --- a/tests/Cache/When/Dto/FileTest.php +++ b/tests/Cache/When/Dto/FileTest.php @@ -45,6 +45,14 @@ public function testRemember() $this->assertSame(serialize($item), serialize($this->cache()->get())); } + public function testRememberForever() + { + $item = $this->dto(); + + $this->assertSame(serialize($item), serialize($this->cache()->rememberForever($item))); + $this->assertSame(serialize($item), serialize($this->cache()->get())); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/When/Dto/RedisTest.php b/tests/Cache/When/Dto/RedisTest.php index 672d317..b45c8be 100644 --- a/tests/Cache/When/Dto/RedisTest.php +++ b/tests/Cache/When/Dto/RedisTest.php @@ -59,6 +59,19 @@ public function testRemember() $this->assertNull($this->cache(['cache'])->get()); } + public function testRememberForever() + { + $item = $this->dto(); + + $this->assertSame(serialize($item), serialize($this->cache()->rememberForever($item))); + + $this->assertSame(serialize($item), serialize($this->cache()->get())); + $this->assertSame(serialize($item), serialize($this->cache(['qwerty', 'cache'])->get())); + + $this->assertNull($this->cache(['qwerty'])->get()); + $this->assertNull($this->cache(['cache'])->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/When/Simple/ArrayTest.php b/tests/Cache/When/Simple/ArrayTest.php index 6a926a5..8ccf36f 100644 --- a/tests/Cache/When/Simple/ArrayTest.php +++ b/tests/Cache/When/Simple/ArrayTest.php @@ -40,6 +40,16 @@ public function testRemember() $this->assertSame($this->value, $this->cache()->remember(microtime())); } + public function testRememberForever() + { + $this->assertSame($this->value, $this->cache()->rememberForever($this->value)); + + $this->assertSame($this->value, $this->cache()->get()); + + $this->assertSame($this->value, $this->cache()->remember(microtime())); + $this->assertSame($this->value, $this->cache()->remember(microtime())); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/When/Simple/FileTest.php b/tests/Cache/When/Simple/FileTest.php index b7f2691..f8a70d6 100644 --- a/tests/Cache/When/Simple/FileTest.php +++ b/tests/Cache/When/Simple/FileTest.php @@ -42,6 +42,16 @@ public function testRemember() $this->assertSame($this->value, $this->cache()->remember(microtime())); } + public function testRememberForever() + { + $this->assertSame($this->value, $this->cache()->rememberForever($this->value)); + + $this->assertSame($this->value, $this->cache()->get()); + + $this->assertSame($this->value, $this->cache()->remember(microtime())); + $this->assertSame($this->value, $this->cache()->remember(microtime())); + } + public function testForget() { $this->assertNull($this->cache()->get()); diff --git a/tests/Cache/When/Simple/RedisTest.php b/tests/Cache/When/Simple/RedisTest.php index b784abb..215b201 100644 --- a/tests/Cache/When/Simple/RedisTest.php +++ b/tests/Cache/When/Simple/RedisTest.php @@ -47,6 +47,17 @@ public function testRemember() $this->assertNull($this->cache(['cache'])->get()); } + public function testRememberForever() + { + $this->assertSame($this->value, $this->cache()->rememberForever($this->value)); + + $this->assertSame($this->value, $this->cache()->get()); + $this->assertSame($this->value, $this->cache(['qwerty', 'cache'])->get()); + + $this->assertNull($this->cache(['qwerty'])->get()); + $this->assertNull($this->cache(['cache'])->get()); + } + public function testForget() { $this->assertNull($this->cache()->get()); From 675056676667f51e7bb281e5ef5ec5bc97d13ba4 Mon Sep 17 00:00:00 2001 From: Andrey Helldar Date: Tue, 14 Nov 2023 23:16:55 +0300 Subject: [PATCH 2/3] Replace redis container name --- .github/workflows/phpunit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/phpunit.yml b/.github/workflows/phpunit.yml index 0c0c933..1e3901c 100644 --- a/.github/workflows/phpunit.yml +++ b/.github/workflows/phpunit.yml @@ -40,7 +40,7 @@ jobs: uses: actions/checkout@v4 - name: Setup Redis - uses: zhulik/redis-action@1.1.0 + uses: shogo82148/actions-setup-redis@v1 - name: Setup PHP uses: shivammathur/setup-php@v2 From 2ec8662e5f953e737414ac4d30bbecd004bbda97 Mon Sep 17 00:00:00 2001 From: Andrey Helldar Date: Tue, 14 Nov 2023 23:18:25 +0300 Subject: [PATCH 3/3] Fixed code-style --- src/Concerns/Call.php | 3 --- tests/Support/KeyTest.php | 12 ++++++------ 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/Concerns/Call.php b/src/Concerns/Call.php index cbd6eb1..e6f8c7e 100644 --- a/src/Concerns/Call.php +++ b/src/Concerns/Call.php @@ -8,9 +8,6 @@ trait Call { use Arrayable; - /** - * @param mixed $callback - */ protected function call(mixed $callback = null): mixed { return $this->isCallable($callback) ? $callback() : $callback; diff --git a/tests/Support/KeyTest.php b/tests/Support/KeyTest.php index 657383e..152352a 100644 --- a/tests/Support/KeyTest.php +++ b/tests/Support/KeyTest.php @@ -31,8 +31,8 @@ public function testString() { $key = Key::get(':', ['Foo', 'Bar', 'Baz']); - $expected = - '17358f5eb750c32289df798e7766e830:64db6856f253b7bf17202a3dd3254fc1:05797d9d2d667864e94e07ba8df60840'; + $expected + = '17358f5eb750c32289df798e7766e830:64db6856f253b7bf17202a3dd3254fc1:05797d9d2d667864e94e07ba8df60840'; $this->assertSame($expected, $key); } @@ -41,8 +41,8 @@ public function testNumeric() { $key = Key::get(':', [1, 2, 3]); - $expected = - 'd944267ac25276f12cb03fc698810d94:7b2fb106352b24c6dd644a8cdf200295:d8526ab50063e2025ef690f730cd5542'; + $expected + = 'd944267ac25276f12cb03fc698810d94:7b2fb106352b24c6dd644a8cdf200295:d8526ab50063e2025ef690f730cd5542'; $this->assertSame($expected, $key); } @@ -154,8 +154,8 @@ public function testModelKey() { $key = Key::get(':', [User::class, 'foo', 'bar']); - $expected = - '87789eae95facc4a5bfdeb957b860942:086f76c144511e1198c29a261e87ca50:2b72000f7b07c51cbbe0e7f85a19597e'; + $expected + = '87789eae95facc4a5bfdeb957b860942:086f76c144511e1198c29a261e87ca50:2b72000f7b07c51cbbe0e7f85a19597e'; $this->assertSame($expected, $key); }