Open Monograph Press  3.3.0
MetadataBagTest.php
1 <?php
2 
3 /*
4  * This file is part of the Symfony package.
5  *
6  * (c) Fabien Potencier <fabien@symfony.com>
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11 
13 
14 use PHPUnit\Framework\TestCase;
16 
22 class MetadataBagTest extends TestCase
23 {
27  protected $bag;
28 
32  protected $array = array();
33 
34  protected function setUp()
35  {
36  parent::setUp();
37  $this->bag = new MetadataBag();
38  $this->array = array(MetadataBag::CREATED => 1234567, MetadataBag::UPDATED => 12345678, MetadataBag::LIFETIME => 0);
39  $this->bag->initialize($this->array);
40  }
41 
42  protected function tearDown()
43  {
44  $this->array = array();
45  $this->bag = null;
46  parent::tearDown();
47  }
48 
49  public function testInitialize()
50  {
51  $sessionMetadata = array();
52 
53  $bag1 = new MetadataBag();
54  $bag1->initialize($sessionMetadata);
55  $this->assertGreaterThanOrEqual(time(), $bag1->getCreated());
56  $this->assertEquals($bag1->getCreated(), $bag1->getLastUsed());
57 
58  sleep(1);
59  $bag2 = new MetadataBag();
60  $bag2->initialize($sessionMetadata);
61  $this->assertEquals($bag1->getCreated(), $bag2->getCreated());
62  $this->assertEquals($bag1->getLastUsed(), $bag2->getLastUsed());
63  $this->assertEquals($bag2->getCreated(), $bag2->getLastUsed());
64 
65  sleep(1);
66  $bag3 = new MetadataBag();
67  $bag3->initialize($sessionMetadata);
68  $this->assertEquals($bag1->getCreated(), $bag3->getCreated());
69  $this->assertGreaterThan($bag2->getLastUsed(), $bag3->getLastUsed());
70  $this->assertNotEquals($bag3->getCreated(), $bag3->getLastUsed());
71  }
72 
73  public function testGetSetName()
74  {
75  $this->assertEquals('__metadata', $this->bag->getName());
76  $this->bag->setName('foo');
77  $this->assertEquals('foo', $this->bag->getName());
78  }
79 
80  public function testGetStorageKey()
81  {
82  $this->assertEquals('_sf2_meta', $this->bag->getStorageKey());
83  }
84 
85  public function testGetLifetime()
86  {
87  $bag = new MetadataBag();
88  $array = array(MetadataBag::CREATED => 1234567, MetadataBag::UPDATED => 12345678, MetadataBag::LIFETIME => 1000);
89  $bag->initialize($array);
90  $this->assertEquals(1000, $bag->getLifetime());
91  }
92 
93  public function testGetCreated()
94  {
95  $this->assertEquals(1234567, $this->bag->getCreated());
96  }
97 
98  public function testGetLastUsed()
99  {
100  $this->assertLessThanOrEqual(time(), $this->bag->getLastUsed());
101  }
102 
103  public function testClear()
104  {
105  $this->bag->clear();
106 
107  // the clear method has no side effects, we just want to ensure it doesn't trigger any exceptions
108  $this->addToAssertionCount(1);
109  }
110 
111  public function testSkipLastUsedUpdate()
112  {
113  $bag = new MetadataBag('', 30);
114  $timeStamp = time();
115 
116  $created = $timeStamp - 15;
117  $sessionMetadata = array(
118  MetadataBag::CREATED => $created,
119  MetadataBag::UPDATED => $created,
120  MetadataBag::LIFETIME => 1000,
121  );
122  $bag->initialize($sessionMetadata);
123 
124  $this->assertEquals($created, $sessionMetadata[MetadataBag::UPDATED]);
125  }
126 
127  public function testDoesNotSkipLastUsedUpdate()
128  {
129  $bag = new MetadataBag('', 30);
130  $timeStamp = time();
131 
132  $created = $timeStamp - 45;
133  $sessionMetadata = array(
134  MetadataBag::CREATED => $created,
135  MetadataBag::UPDATED => $created,
136  MetadataBag::LIFETIME => 1000,
137  );
138  $bag->initialize($sessionMetadata);
139 
140  $this->assertEquals($timeStamp, $sessionMetadata[MetadataBag::UPDATED]);
141  }
142 }
Symfony\Component\HttpFoundation\Tests\Session\Storage\MetadataBagTest\testGetCreated
testGetCreated()
Definition: MetadataBagTest.php:99
Symfony\Component\HttpFoundation\Tests\Session\Storage\MetadataBagTest\testDoesNotSkipLastUsedUpdate
testDoesNotSkipLastUsedUpdate()
Definition: MetadataBagTest.php:133
Symfony\Component\HttpFoundation\Session\Storage\MetadataBag\UPDATED
const UPDATED
Definition: lib/vendor/symfony/http-foundation/Session/Storage/MetadataBag.php:26
Symfony\Component\HttpFoundation\Tests\Session\Storage\MetadataBagTest\$bag
$bag
Definition: MetadataBagTest.php:30
Symfony\Component\HttpFoundation\Tests\Session\Storage\MetadataBagTest\testSkipLastUsedUpdate
testSkipLastUsedUpdate()
Definition: MetadataBagTest.php:117
Symfony\Component\HttpFoundation\Tests\Session\Storage\MetadataBagTest\testInitialize
testInitialize()
Definition: MetadataBagTest.php:55
Symfony\Component\HttpFoundation\Tests\Session\Storage\MetadataBagTest
Definition: MetadataBagTest.php:22
Symfony\Component\HttpFoundation\Session\Storage\MetadataBag\LIFETIME
const LIFETIME
Definition: lib/vendor/symfony/http-foundation/Session/Storage/MetadataBag.php:27
Symfony\Component\HttpFoundation\Tests\Session\Storage\MetadataBagTest\testGetSetName
testGetSetName()
Definition: MetadataBagTest.php:79
Symfony\Component\HttpFoundation\Tests\Session\Storage
Symfony\Component\HttpFoundation\Session\Storage\MetadataBag\CREATED
const CREATED
Definition: lib/vendor/symfony/http-foundation/Session/Storage/MetadataBag.php:25
Symfony\Component\HttpFoundation\Session\Storage\MetadataBag
Definition: lib/vendor/symfony/http-foundation/Session/Storage/MetadataBag.php:23
Symfony\Component\HttpFoundation\Tests\Session\Storage\MetadataBagTest\$array
$array
Definition: MetadataBagTest.php:38
Symfony\Component\HttpFoundation\Tests\Session\Storage\MetadataBagTest\testGetLastUsed
testGetLastUsed()
Definition: MetadataBagTest.php:104
Symfony\Component\HttpFoundation\Tests\Session\Storage\MetadataBagTest\testGetLifetime
testGetLifetime()
Definition: MetadataBagTest.php:91
Symfony\Component\HttpFoundation\Tests\Session\Storage\MetadataBagTest\testGetStorageKey
testGetStorageKey()
Definition: MetadataBagTest.php:86
Symfony\Component\HttpFoundation\Tests\Session\Storage\MetadataBagTest\setUp
setUp()
Definition: MetadataBagTest.php:40
Symfony\Component\HttpFoundation\Tests\Session\Storage\MetadataBagTest\testClear
testClear()
Definition: MetadataBagTest.php:109
Symfony\Component\HttpFoundation\Tests\Session\Storage\MetadataBagTest\tearDown
tearDown()
Definition: MetadataBagTest.php:48