/** * @test * @dataProvider getSecsToExpireProvider */ public function getSecsToExpireShouldReturnDoesNotEpired($seconds, $minSecs, $maxSecs) { $keyValue = new KeyValue('irrelevantKey', 'irrelevantValue', 'irrelevantNamespace'); $keyValue->setExpirationInSeconds($seconds); $secsToExpire = $keyValue->getSecsToExpire(); $this->assertThat($minSecs, $this->lessThanOrEqual($secsToExpire)); $this->assertThat($maxSecs, $this->greaterThanOrEqual($secsToExpire)); }
/** * {@inheritDoc} */ public function set($key, $value, $namespace = KeyValue::DEFAULT_NAMESPACE, $expirationDateTime = KeyValue::NO_EXPIRE) { $effectiveKey = $this->buildKey($key, $namespace); $this->redisClient->set($effectiveKey, serialize($value)); $keyValue = new KeyValue($key, $value, $namespace, $expirationDateTime); if ($expirationDateTime !== KeyValue::NO_EXPIRE) { $this->redisClient->expire($effectiveKey, $keyValue->getSecsToExpire()); } return $keyValue; }