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