108 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			108 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| namespace nur\mapper\base\capacitor;
 | |
| 
 | |
| use PHPUnit\Framework\TestCase;
 | |
| 
 | |
| class CapacitorTest extends TestCase {
 | |
|   function testPk() {
 | |
|     $c = new Capacitor();
 | |
|     $c->setKeys(["id" => true]);
 | |
|     $c->charge(["id" => 1, "title" => "first"]);
 | |
|     $c->charge(["id" => 1, "title" => "first (doublon)"]);
 | |
|     self::assertSame([
 | |
|       "1" => ["id" => 1, "title" => "first (doublon)"],
 | |
|     ], $c->discharge());
 | |
|   }
 | |
| 
 | |
|   function testSortSeq() {
 | |
|     $items = [
 | |
|       ["second", 4, 2, 1],
 | |
|       ["hello", 1, 1, 4],
 | |
|       ["first", 3, 1, 2],
 | |
|       ["world", 2, 2, 3],
 | |
|     ];
 | |
|     $c = new Capacitor();
 | |
|     foreach ($items as $item) {
 | |
|       $c->charge($item);
 | |
|     }
 | |
| 
 | |
|     $c->sort([1]);
 | |
|     self::assertSame([
 | |
|       ["hello", 1, 1, 4],
 | |
|       ["world", 2, 2, 3],
 | |
|       ["first", 3, 1, 2],
 | |
|       ["second", 4, 2, 1],
 | |
|     ], $c->discharge(null, false));
 | |
| 
 | |
|     $c->sort([2]);
 | |
|     self::assertSame([
 | |
|       ["hello", 1, 1, 4],
 | |
|       ["first", 3, 1, 2],
 | |
|       ["world", 2, 2, 3],
 | |
|       ["second", 4, 2, 1],
 | |
|     ], $c->discharge(null, false));
 | |
| 
 | |
|     $c->sort([3]);
 | |
|     self::assertSame([
 | |
|       ["second", 4, 2, 1],
 | |
|       ["first", 3, 1, 2],
 | |
|       ["world", 2, 2, 3],
 | |
|       ["hello", 1, 1, 4],
 | |
|     ], $c->discharge(null, false));
 | |
| 
 | |
|     $c->sort([2, 3]);
 | |
|     self::assertSame([
 | |
|       ["first", 3, 1, 2],
 | |
|       ["hello", 1, 1, 4],
 | |
|       ["second", 4, 2, 1],
 | |
|       ["world", 2, 2, 3],
 | |
|     ], $c->discharge(null, false));
 | |
|   }
 | |
| 
 | |
|   function testSortAssoc() {
 | |
|     $items = [
 | |
|       ["hello", 1, 1, 4],
 | |
|       ["world", 2, 2, 3],
 | |
|       ["first", 3, 1, 2],
 | |
|       ["second", 4, 2, 1],
 | |
|     ];
 | |
|     $c = new Capacitor();
 | |
|     $c->setKeys([[0, true]]);
 | |
|     foreach ($items as $item) {
 | |
|       $c->charge($item);
 | |
|     }
 | |
| 
 | |
|     $c->sort([1]);
 | |
|     self::assertSame([
 | |
|       "hello" => ["hello", 1, 1, 4],
 | |
|       "world" => ["world", 2, 2, 3],
 | |
|       "first" => ["first", 3, 1, 2],
 | |
|       "second" => ["second", 4, 2, 1],
 | |
|     ], $c->discharge(null, false));
 | |
| 
 | |
|     $c->sort([2]);
 | |
|     self::assertSame([
 | |
|       "hello" => ["hello", 1, 1, 4],
 | |
|       "first" => ["first", 3, 1, 2],
 | |
|       "world" => ["world", 2, 2, 3],
 | |
|       "second" => ["second", 4, 2, 1],
 | |
|     ], $c->discharge(null, false));
 | |
| 
 | |
|     $c->sort([3]);
 | |
|     self::assertSame([
 | |
|       "second" => ["second", 4, 2, 1],
 | |
|       "first" => ["first", 3, 1, 2],
 | |
|       "world" => ["world", 2, 2, 3],
 | |
|       "hello" => ["hello", 1, 1, 4],
 | |
|     ], $c->discharge(null, false));
 | |
| 
 | |
|     $c->sort([2, 3]);
 | |
|     self::assertSame([
 | |
|       "first" => ["first", 3, 1, 2],
 | |
|       "hello" => ["hello", 1, 1, 4],
 | |
|       "second" => ["second", 4, 2, 1],
 | |
|       "world" => ["world", 2, 2, 3],
 | |
|     ], $c->discharge(null, false));
 | |
|   }
 | |
| }
 |