/** * 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])); }