silviooosilva /
CacheerPHP
| 1 | <?php |
||
| 2 | |||
| 3 | use PHPUnit\Framework\TestCase; |
||
| 4 | use Silviooosilva\CacheerPhp\Cacheer; |
||
| 5 | use Silviooosilva\CacheerPhp\Config\Option\Builder\OptionBuilder; |
||
| 6 | use Silviooosilva\CacheerPhp\Helpers\FlushHelper; |
||
| 7 | use Predis\Client as PredisClient; |
||
| 8 | use Predis\Autoloader as PredisAutoloader; |
||
| 9 | |||
| 10 | class RedisOptionBuilderTTLAndFlushTest extends TestCase |
||
| 11 | { |
||
| 12 | private ?PredisClient $client = null; |
||
| 13 | |||
| 14 | protected function setUp(): void |
||
| 15 | { |
||
| 16 | try { |
||
| 17 | PredisAutoloader::register(); |
||
| 18 | $this->client = new PredisClient([ |
||
| 19 | 'scheme' => 'tcp', |
||
| 20 | 'host' => REDIS_CONNECTION_CONFIG['REDIS_HOST'] ?? '127.0.0.1', |
||
| 21 | 'port' => REDIS_CONNECTION_CONFIG['REDIS_PORT'] ?? 6379, |
||
| 22 | ]); |
||
| 23 | $this->client->connect(); |
||
| 24 | $this->client->ping(); |
||
| 25 | } catch (\Throwable $e) { |
||
| 26 | $this->markTestSkipped('Redis not available: ' . $e->getMessage()); |
||
| 27 | } |
||
| 28 | } |
||
| 29 | |||
| 30 | protected function tearDown(): void |
||
| 31 | { |
||
| 32 | if ($this->client) { |
||
| 33 | $this->client->disconnect(); |
||
| 34 | } |
||
| 35 | } |
||
| 36 | |||
| 37 | public function test_expiration_time_from_options_sets_default_ttl() |
||
| 38 | { |
||
| 39 | $options = OptionBuilder::forRedis() |
||
| 40 | ->setNamespace('app:') |
||
| 41 | ->expirationTime('1 seconds') |
||
| 42 | ->build(); |
||
| 43 | |||
| 44 | $cache = new Cacheer($options); |
||
| 45 | $cache->setDriver()->useRedisDriver(); |
||
| 46 | |||
| 47 | $key = 'redis_opt_ttl_key'; |
||
| 48 | $cache->putCache($key, 'v'); |
||
| 49 | $this->assertTrue($cache->isSuccess()); |
||
| 50 | |||
| 51 | sleep(2); |
||
| 52 | $this->assertNull($cache->getCache($key)); |
||
| 53 | } |
||
| 54 | |||
| 55 | public function test_flush_after_from_options_triggers_auto_flush() |
||
| 56 | { |
||
| 57 | $options = OptionBuilder::forRedis() |
||
| 58 | ->setNamespace('app:') |
||
| 59 | ->flushAfter('1 seconds') |
||
| 60 | ->build(); |
||
| 61 | |||
| 62 | $flushFile = FlushHelper::pathFor('redis', 'app:'); |
||
| 63 | file_put_contents($flushFile, (string) (time() - 3600)); |
||
| 64 | |||
| 65 | // seed |
||
| 66 | $seed = new Cacheer(OptionBuilder::forRedis()->setNamespace('app:')->build()); |
||
| 67 | $seed->setDriver()->useRedisDriver(); |
||
| 68 | $seed->putCache('to_be_flushed', '1'); |
||
| 69 | |||
| 70 | // new instance should auto-flush on init |
||
| 71 | $cache = new Cacheer($options); |
||
| 72 | $cache->setDriver()->useRedisDriver(); |
||
| 73 | $this->assertFalse((bool)$this->client->exists('app:to_be_flushed')); |
||
|
0 ignored issues
–
show
|
|||
| 74 | } |
||
| 75 | } |
||
| 76 |
This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.
This is most likely a typographical error or the method has been renamed.