public function testSetupRecursively() { $handler = $this->getMock('\\PHPVS\\RuleSet'); $handler->expects($this->atLeastOnce())->method('handle'); RuleSet::filter(['array' => ['age' => -1, 'email' => 'not an email']], ['array' => RuleSet::setup(['age' => Validator::int()->prepare(), 'email' => Validator::email()->prepare()], $required = true)], "", $handler); // test not required $handler2 = $this->getMock('\\PHPVS\\RuleSet'); $handler2->expects($this->never())->method('handle'); RuleSet::filter(['array' => ['age' => "", 'email' => ""]], ['array' => RuleSet::setup(['age' => Validator::int()->required(false)->prepare(), 'email' => Validator::email()->required(false)->prepare()], $required = true)], "", $handler2); }