/**
  * Tests whether expiresAt() works as expected.
  *
  * @return void
  */
 public function testExpiresAt()
 {
     $cacheItem = new BasicCacheItem('key');
     $expiresAt = new DateTime();
     $cacheItem->expiresAt($expiresAt);
     $this->assertSame($expiresAt, $cacheItem->getExpirationTime());
     $cacheItem->expiresAt(null);
     $this->assertNotNull($cacheItem->getExpirationTime());
     $this->assertNotSame($expiresAt, $cacheItem->getExpirationTime());
     $expiresAt = DateUtil::getCurrentUtcDateTime();
     $cacheItem->expiresAt($expiresAt);
     $this->assertSame($expiresAt, $cacheItem->getExpirationTime());
     $this->assertSame('UTC', $cacheItem->getExpirationTime()->getTimezone()->getName());
 }
 /**
  * Tests whether save() works as expected.
  *
  * @return void
  */
 public function testSave()
 {
     $cache = $this->getNewCacheInstance();
     $expirationTime = DateUtil::getCurrentUtcDateTime()->add(new DateInterval('PT15M'));
     $cacheItemToSave = new BasicCacheItem('foobar', 'foo');
     $cacheItemToSave->expiresAt($expirationTime);
     $cache->save($cacheItemToSave);
     $cacheItem = $cache->getItem('foobar');
     $this->assertNotNull($cacheItem);
     $this->assertSame('foobar', $cacheItem->getKey());
     $this->assertTrue($cacheItem->isHit());
     $this->assertSame('foo', $cacheItem->get());
     $this->assertEquals($expirationTime, $cacheItem->getExpirationTime());
 }