public function testConstructionSuccess() { $optionDependency = new ezcConsoleOption("d", "depend"); $optionExclusion = new ezcConsoleOption("e", "exclude"); $ruleDependency = new ezcConsoleOptionRule($optionDependency, array("abc")); $ruleExclusion = new ezcConsoleOptionRule($optionExclusion, array("abc")); $option = new ezcConsoleOption("a", "aaa", ezcConsoleInput::TYPE_INT, 23, true, "Shorthelp", "Longhelp", array($ruleDependency), array($ruleExclusion), false, true, true); $this->assertEquals($option->short, "a"); $this->assertEquals($option->long, "aaa"); $this->assertEquals(ezcConsoleInput::TYPE_INT, $option->type); $this->assertEquals(23, $option->default); $this->assertTrue($option->multiple); $this->assertEquals("Shorthelp", $option->shorthelp); $this->assertEquals("Longhelp", $option->longhelp); $this->assertEquals(array($ruleDependency), $option->getDependencies()); $this->assertEquals(array($ruleExclusion), $option->getExclusions()); $this->assertFalse($option->arguments); $this->assertTrue($option->mandatory); $this->assertTrue($option->isHelpOption); }
/** * Validated option exclusions. * * Validates exclusions by $option. * * @param ezcConsoleOption $option. */ private function validateExclusions(ezcConsoleOption $option) { $optSet = $option->value !== false && (!is_array($option->value) || $option->value !== array()); foreach ($option->getExclusions() as $excl) { if ($excl->ifSet === $optSet) { $this->validateExclusion($option, $excl); } } }