Beispiel #1
0
 /**
  * testGet
  *
  * @return void
  */
 public function testGet()
 {
     $Rule = new ValidationRule(['rule' => 'willFail', 'message' => 'foo']);
     $this->assertEquals('willFail', $Rule->get('rule'));
     $this->assertEquals('foo', $Rule->get('message'));
     $this->assertEquals('default', $Rule->get('provider'));
     $this->assertEquals([], $Rule->get('pass'));
     $this->assertNull($Rule->get('non-existent'));
     $Rule = new ValidationRule(['rule' => ['willPass', 'param'], 'message' => 'bar']);
     $this->assertEquals('willPass', $Rule->get('rule'));
     $this->assertEquals('bar', $Rule->get('message'));
     $this->assertEquals(['param'], $Rule->get('pass'));
 }
 /**
  * Tests that the 'on' key can be a callable function
  *
  * @return void
  */
 public function testCallableOn()
 {
     $data = 'some data';
     $providers = ['default' => $this];
     $Rule = new ValidationRule(['rule' => 'myTestRule', 'on' => function ($context) use($providers) {
         $expected = compact('providers') + ['newRecord' => true, 'data' => []];
         $this->assertEquals($expected, $context);
         return true;
     }]);
     $this->assertFalse($Rule->process($data, $providers, ['newRecord' => true]));
     $Rule = new ValidationRule(['rule' => 'myTestRule', 'on' => function ($context) use($providers) {
         $expected = compact('providers') + ['newRecord' => true, 'data' => []];
         $this->assertEquals($expected, $context);
         return false;
     }]);
     $this->assertTrue($Rule->process($data, $providers, ['newRecord' => true]));
 }