40 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
namespace nur\b\coll;
 | 
						|
 | 
						|
use nur\t\TestCase;
 | 
						|
 | 
						|
class ArrayViewStackTest extends TestCase {
 | 
						|
  function testBasic() {
 | 
						|
    $first = ["a" => 1, "b"=> 1];
 | 
						|
    $second = ["b" => 2, "c" => 2];
 | 
						|
    $third = [];
 | 
						|
    $stack = new ArrayViewStack();
 | 
						|
    $stack->push($first)->push($second)->push($third);
 | 
						|
 | 
						|
    self::assertSame(null, $stack->get("d"));
 | 
						|
    self::assertSame(2, $stack->get("c"));
 | 
						|
    self::assertSame(2, $stack->get("b"));
 | 
						|
    self::assertSame(1, $stack->get("a"));
 | 
						|
 | 
						|
    $stack["a"] = "x";
 | 
						|
    $stack["b"] = "y";
 | 
						|
    $stack["c"] = "z";
 | 
						|
    $stack["d"] = "t";
 | 
						|
 | 
						|
    self::assertSame("t", $stack->get("d"));
 | 
						|
    self::assertSame("z", $stack->get("c"));
 | 
						|
    self::assertSame("y", $stack->get("b"));
 | 
						|
    self::assertSame("x", $stack->get("a"));
 | 
						|
 | 
						|
    unset($stack["a"]);
 | 
						|
    unset($stack["b"]);
 | 
						|
    unset($stack["c"]);
 | 
						|
    unset($stack["d"]);
 | 
						|
 | 
						|
    self::assertSame(null, $stack->get("d"));
 | 
						|
    self::assertSame(2, $stack->get("c"));
 | 
						|
    self::assertSame(2, $stack->get("b"));
 | 
						|
    self::assertSame(1, $stack->get("a"));
 | 
						|
  }
 | 
						|
}
 |