72 lines
3.5 KiB
PHP
72 lines
3.5 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_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"]));
|
|
}
|
|
}
|