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"])); } }