56 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| namespace nulib\cache;
 | |
| 
 | |
| use nulib\cl;
 | |
| use nulib\output\msg;
 | |
| 
 | |
| class cacheTest extends _TestCase {
 | |
|   const DATA = [
 | |
|     "fr" => ["a" => "un", "b" => "deux"],
 | |
|     "eng" => ["a" => "one", "b" => "two"],
 | |
|     ["a" => 1, "b" => 2],
 | |
|   ];
 | |
| 
 | |
|   function gendata() {
 | |
|     foreach (self::DATA as $key => $item) {
 | |
|       msg::info("yield $key");
 | |
|       yield $key => $item;
 | |
|       sleep(2);
 | |
|     }
 | |
|     msg::info("fin gendata");
 | |
|   }
 | |
| 
 | |
|   function _testRows(iterable $rows) {
 | |
|     $count = 0;
 | |
|     foreach ($rows as $key => $row) {
 | |
|       msg::info("got $key => ".var_export($row, true));
 | |
|       $count++;
 | |
|     }
 | |
|     self::assertSame(3, $count);
 | |
|   }
 | |
| 
 | |
|   function testUsage() {
 | |
|     msg::section("all");
 | |
|     $rows = cache::all($this->gendata(),"gendata");
 | |
|     $this->_testRows($rows);
 | |
| 
 | |
|     msg::section("get");
 | |
|     $rows = cache::get(function() {
 | |
|       return self::DATA;
 | |
|     },"gendata");
 | |
|     $this->_testRows($rows);
 | |
|   }
 | |
| 
 | |
|   function testNc() {
 | |
|     cache::nc();
 | |
| 
 | |
|     msg::section("first pass");
 | |
|     $rows = cache::all($this->gendata(),"gendata");
 | |
|     $this->_testRows($rows);
 | |
| 
 | |
|     msg::section("second pass");
 | |
|     $rows = cache::all($this->gendata(),"gendata");
 | |
|     $this->_testRows($rows);
 | |
|   }
 | |
| }
 |