setup1(); $aodef->setup2(); #var_export($aodef->debugInfos()); #XXX self::assertSame($options, $aodef->getOptions()); self::assertSame($haveShortOptions, $aodef->haveShortOptions, "haveShortOptions"); self::assertSame($haveLongOptions, $aodef->haveLongOptions, "haveLongOptions"); self::assertSame($isCommand, $aodef->isCommand, "isCommand"); self::assertSame($haveArgs, $aodef->haveArgs, "haveArgs"); self::assertSame($minArgs, $aodef->minArgs, "minArgs"); self::assertSame($maxArgs, $aodef->maxArgs, "maxArgs"); self::assertSame($argsdesc, $aodef->argsdesc, "argsdesc"); } function testArgsNone() { $aodef = new Aodef(["-o"]); self::assertArg($aodef, ["-o"], true, false, false, false, 0, 0, ""); $aodef = new Aodef(["--longo"]); self::assertArg($aodef, ["--longo"], false, true, false, false, 0, 0, ""); $aodef = new Aodef(["-o", "--longo"]); self::assertArg($aodef, ["-o", "--longo"], true, true, false, false, 0, 0, ""); } function testArgsMandatory() { $aodef = new Aodef(["-o:", "--longo"]); self::assertArg($aodef, ["-o", "--longo"], true, true, false, true, 1, 1, "VALUE"); $aodef = new Aodef(["-a:", "-b:"]); self::assertArg($aodef, ["-a", "-b"], true, false, false, true, 1, 1, "VALUE"); $aodef = new Aodef(["-a:", "-b::"]); self::assertArg($aodef, ["-a", "-b"], true, false, false, true, 1, 1, "VALUE"); $aodef = new Aodef(["-a::", "-b:"]); self::assertArg($aodef, ["-a", "-b"], true, false, false, true, 1, 1, "VALUE"); $aodef = new Aodef(["-o", "--longo", "args" => true]); self::assertArg($aodef, ["-o", "--longo"], true, true, false, true, 1, 1, "VALUE"); $aodef = new Aodef(["-o", "--longo", "args" => 1]); self::assertArg($aodef, ["-o", "--longo"], true, true, false, true, 1, 1, "VALUE"); $aodef = new Aodef(["-o", "--longo", "args" => "value"]); self::assertArg($aodef, ["-o", "--longo"], true, true, false, true, 1, 1, "VALUE"); $aodef = new Aodef(["-o", "--longo", "args" => ["value"]]); self::assertArg($aodef, ["-o", "--longo"], true, true, false, true, 1, 1, "VALUE"); } function testArgsOptional() { $aodef = new Aodef(["-o::", "--longo"]); self::assertArg($aodef, ["-o", "--longo"], true, true, false, true, 0, 1, "[VALUE]"); $aodef = new Aodef(["-o", "--longo", "args" => [["value"]]]); self::assertArg($aodef, ["-o", "--longo"], true, true, false, true, 0, 1, "[VALUE]"); $aodef = new Aodef(["-o", "--longo", "args" => [[null]]]); self::assertArg($aodef, ["-o", "--longo"], true, true, false, true, 0, PHP_INT_MAX, "[VALUEs...]"); $aodef = new Aodef(["-o", "--longo", "args" => ["value", null]]); self::assertArg($aodef, ["-o", "--longo"], true, true, false, true, 1, PHP_INT_MAX, "VALUE [VALUEs...]"); $aodef = new Aodef(["-o", "--longo", "args" => "*"]); self::assertArg($aodef, ["-o", "--longo"], true, true, false, true, 0, PHP_INT_MAX, "[VALUEs...]"); $aodef = new Aodef(["-o", "--longo", "args" => "+"]); self::assertArg($aodef, ["-o", "--longo"], true, true, false, true, 1, PHP_INT_MAX, "VALUE [VALUEs...]"); } function testMerge() { $BASE = ["-o:", "--longo"]; $aodef = new Aodef([ "merge" => $BASE, "add" => ["-a", "--longa"], "remove" => ["-o", "--longo"], ]); self::assertArg($aodef, ["-a", "--longa"], true, true, false, false, 0, 0, ""); $aodef = new Aodef([ "merge" => $BASE, "add" => ["-a", "--longa"], "remove" => ["-o", "--longo"], "-x", ]); self::assertArg($aodef, ["-a", "--longa", "-x"], true, true, false, false, 0, 0, ""); } }