Example #1
0
 /**
  * @return string
  */
 private function getTestTo()
 {
     if ($this->fails()) {
         throw new \RuntimeException();
     }
     return $this->dio->get('testTo');
 }
Example #2
0
 /**
  * @test
  */
 function requiredIf_after_rule_is_applyed()
 {
     $input = ['flag' => 'A', 'done' => ''];
     $this->validate->source($input);
     $this->validate->asText('flag');
     $this->validate->asText('done')->requiredIf('flag', ['a']);
     $this->assertEquals(true, $this->validate->passes());
     $input = ['flag' => 'A', 'done' => ''];
     $validation = $this->factory->on($input);
     $validation->asText('flag')->string('lower');
     $validation->asText('done')->requiredIf('flag', ['a']);
     $this->assertEquals(true, $validation->fails());
     $this->assertEquals('required item', $validation->message('done'));
 }
Example #3
0
 /**
  * @param Dio         $dio
  * @param array|Rules $rules
  * @return array|Rules
  */
 public static function prepare_requiredIf($dio, $rules)
 {
     if (!self::arrGet($rules, 'requiredIf')) {
         return $rules;
     }
     $args = $rules['requiredIf'];
     if (!is_array($args)) {
         $flag_name = $args;
         $flags_in = null;
     } else {
         $flag_name = $args[0];
         $flags_in = array_key_exists(1, $args) ? (array) $args[1] : null;
     }
     $flag_value = $dio->get($flag_name);
     if ((string) $flag_value === '') {
         return $rules;
     }
     if ($flags_in && !in_array($flag_value, $flags_in)) {
         return $rules;
     }
     $rules['required'] = true;
     return $rules;
 }