95 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace nulib\app;
 | |
| 
 | |
| use nulib\tests\TestCase;
 | |
| use nulib\app\args;
 | |
| 
 | |
| class argsTest extends TestCase {
 | |
|   function testFrom_array() {
 | |
|     self::assertSame([], args::from_array(null));
 | |
|     self::assertSame([], args::from_array([]));
 | |
|     self::assertSame([], args::from_array([false]));
 | |
|     self::assertSame(["x"], args::from_array(["x", false]));
 | |
| 
 | |
|     self::assertSame(["--opt"], args::from_array(["--opt"]));
 | |
|     self::assertSame(["--opt", "value"], args::from_array(["--opt", "value"]));
 | |
| 
 | |
|     self::assertSame([], args::from_array(["opt" => false]));
 | |
|     self::assertSame(["--opt"], args::from_array(["opt" => true]));
 | |
|     self::assertSame(["--opt", "value"], args::from_array(["opt" => "value"]));
 | |
|     self::assertSame(["--opt", "42"], args::from_array(["opt" => 42]));
 | |
|     self::assertSame(["--opt", "1", "2", "3", "--"], args::from_array(["opt" => [1, 2, 3]]));
 | |
| 
 | |
|     self::assertSame(["x", "1", "2", "3", "y"], args::from_array(["x", [1, 2, 3], "y"]));
 | |
|   }
 | |
| 
 | |
|   function testBuild_query() {
 | |
|     self::assertSame(null, args::build_query(null));
 | |
|     self::assertSame(null, args::build_query([]));
 | |
| 
 | |
|     self::assertSame(["a" => true], args::build_query(["a"]));
 | |
|     self::assertSame(["a" => true], args::build_query(["+a"]));
 | |
|     self::assertSame(["a" => false], args::build_query(["-a"]));
 | |
|     self::assertSame(["a" => false], args::build_query(["~a"]));
 | |
|     self::assertSame(["x" => "a"], args::build_query(["x=a"]));
 | |
|     self::assertSame(["x" => 0], args::build_query(["x:int=0"]));
 | |
|     self::assertSame(["x" => 42], args::build_query(["x:int=42"]));
 | |
|     self::assertSame(["x" => false], args::build_query(["x:bool=0"]));
 | |
|     self::assertSame(["x" => true], args::build_query(["x:bool=42"]));
 | |
|     self::assertSame(["x" => ["a", "b"]], args::build_query(["x:array=a,b"]));
 | |
|     self::assertSame(["x" => [0, 42]], args::build_query(["x:array:int=0,42"]));
 | |
|     self::assertSame(["x" => [0, 42]], args::build_query(["x:int:array=0,42"]));
 | |
| 
 | |
|     self::assertSame(["x" => "a", "y" => "b"], args::build_query(["x=a", "y=b"]));
 | |
|     self::assertSame(["x" => ["a", "b"]], args::build_query(["x=a", "x=b"]));
 | |
|   }
 | |
| 
 | |
|   function testBuild_method_args() {
 | |
|     self::assertSame([], args::build_method_args(null));
 | |
|     self::assertSame([], args::build_method_args([]));
 | |
| 
 | |
|     self::assertSame(["a"], args::build_method_args(["a"]));
 | |
|     self::assertSame(["a", "b"], args::build_method_args(["a", "b"]));
 | |
| 
 | |
|     self::assertSame([0], args::build_method_args(["int:0"]));
 | |
|     self::assertSame([42], args::build_method_args(["int:42"]));
 | |
|     # pour le moment, pas de tint
 | |
|     self::assertSame([0], args::build_method_args(["int:"]));
 | |
|     self::assertSame([0], args::build_method_args(["int:truc"]));
 | |
| 
 | |
|     self::assertSame([false], args::build_method_args(["bool:0"]));
 | |
|     self::assertSame([true], args::build_method_args(["bool:42"]));
 | |
|     self::assertSame([false], args::build_method_args(["bool:"]));
 | |
|     self::assertSame([true], args::build_method_args(["bool:truc"]));
 | |
|     # pour le moment, pas de tbool
 | |
|     self::assertSame([true], args::build_method_args(["bool:false"]));
 | |
|     self::assertSame([true], args::build_method_args(["bool:true"]));
 | |
| 
 | |
|     self::assertSame([["a", "b"]], args::build_method_args(["array:a,b"]));
 | |
|     self::assertSame([["x" => "a", "y" => "b"]], args::build_method_args(["array:x:a,y:b"]));
 | |
|     # pour le moment, pas de tint
 | |
|     self::assertSame([[0, 42, 0, 0]], args::build_method_args(["array:int:0,42,,truc"]));
 | |
|     self::assertSame([["x" => 0, "y" => 42]], args::build_method_args(["array:int:x:0,y:42"]));
 | |
|     # pour le moment, pas de tbool
 | |
|     self::assertSame([[false, true, false, true, true, true]], args::build_method_args(["array:bool:0,42,,truc,false,true"]));
 | |
|     self::assertSame([["x" => false, "y" => true]], args::build_method_args(["array:bool:x:0,y:42"]));
 | |
| 
 | |
|     self::assertSame([["a" => true]], args::build_method_args(["+a"]));
 | |
|     self::assertSame([["a" => false]], args::build_method_args(["-a"]));
 | |
|     self::assertSame([["a" => false]], args::build_method_args(["~a"]));
 | |
|     self::assertSame([["x" => "a"]], args::build_method_args(["x=a"]));
 | |
|     self::assertSame([["x" => 0]], args::build_method_args(["x:int=0"]));
 | |
|     self::assertSame([["x" => 42]], args::build_method_args(["x:int=42"]));
 | |
|     self::assertSame([["x" => false]], args::build_method_args(["x:bool=0"]));
 | |
|     self::assertSame([["x" => true]], args::build_method_args(["x:bool=42"]));
 | |
|     self::assertSame([["x" => ["a", "b"]]], args::build_method_args(["x:array=a,b"]));
 | |
|     self::assertSame([["x" => [0, 42]]], args::build_method_args(["x:array:int=0,42"]));
 | |
|     self::assertSame([["x" => [0, 42]]], args::build_method_args(["x:int:array=0,42"]));
 | |
| 
 | |
|     self::assertSame([["x" => "a", "y" => "b"], "a", "b"], args::build_method_args(["x=a", "a", "y=b", "b"]));
 | |
| 
 | |
|     self::assertSame([["x" => ["a", "b"]]], args::build_method_args(["x=a", "x=b"]));
 | |
|   }
 | |
| }
 |