update to PHP-8.1
[m6w6/seekat] / tests / CacheTest.php
1 <?php
2
3 class CacheTest extends BaseTest
4 {
5 use ConsumePromise;
6 use AssertSuccess;
7
8 /**
9 * @group testdox
10 * @dataProvider provideAPI
11 */
12 function testCachesSuccessiveCalls($api) {
13 $api->getCache()->clear();
14 $m6w6 = $this->assertSuccess($api->users->m6w6);
15 $data = $api->getCache()->getStorage();
16 $m6w6_ = $this->assertSuccess($api->users->m6w6);
17
18 $this->assertEquals("m6w6", $m6w6->login);
19 $this->assertEquals("m6w6", $m6w6_->login);
20
21 $this->assertIsArray($data);
22 $this->assertCount(1, $data);
23 $this->assertEquals($data, $api->getCache()->getStorage());
24 }
25
26 /**
27 * @group testdox
28 * @dataProvider provideAPI
29 */
30 function testRefreshesStaleCacheEntries($api) {
31 $api->getCache()->clear();
32 $m6w6 = $this->assertSuccess($api->users->m6w6);
33
34 $data = $api->getCache()->getStorage();
35 /* @var \http\Header $resp */
36 $resp = current($data);
37 $resp->setHeader("X-Cache-Time", null);
38 $resp->setHeader("Cache-Control", null);
39 $resp->setHeader("Expires", 0);
40
41 $m6w6_ = $this->assertSuccess($api->users->m6w6);
42
43 $this->assertEquals("m6w6", $m6w6->login);
44 $this->assertEquals("m6w6", $m6w6_->login);
45
46 $this->assertIsArray($data);
47 $this->assertCount(1, $data);
48 $this->assertEquals($data, $api->getCache()->getStorage());
49
50 $this->assertIsNumeric($resp->getHeader("X-Cache-Time"));
51 }
52 }