'Ingo', 'Surname' => 'Schommer' ]; public function provideMatchesForList() { return [ [ ['FirstName' => 'Ingo'] ], [ ['Surname' => 'Schommer'] ], [ ['FirstName' => 'Ingo', 'Surname' => 'Schommer'] ] ]; } public function provideInvalidMatchesForList() { return [ [ ['FirstName' => 'AnyoneNotInList'] ], [ ['Surname' => 'NotInList'] ], [ ['FirstName' => 'Ingo', 'Surname' => 'Minnee'] ] ]; } /** * @dataProvider provideMatchesForList() * * @param $match */ public function testEvaluateMatchesCorrectlyArrayData($match) { $constraint = new ViewableDataContains($match); $item = ArrayData::create($this->test_data); $this->assertTrue($constraint->evaluate($item, '', true)); } /** * @dataProvider provideMatchesForList() * * @param $match */ public function testEvaluateMatchesCorrectlyDataObject($match) { $constraint = new ViewableDataContains($match); $item = Member::create($this->test_data); $this->assertTrue($constraint->evaluate($item, '', true)); } /** * @dataProvider provideInvalidMatchesForList() * * @param $matches */ public function testEvaluateDoesNotMatchWrongMatchInArrayData($match) { $constraint = new ViewableDataContains($match); $item = ArrayData::create($this->test_data); $this->assertFalse($constraint->evaluate($item, '', true)); } /** * @dataProvider provideInvalidMatchesForList() * * @param $matches */ public function testEvaluateDoesNotMatchWrongMatchInDataObject($match) { $constraint = new ViewableDataContains($match); $item = Member::create($this->test_data); $this->assertFalse($constraint->evaluate($item, '', true)); } public function testFieldAccess() { $data = new TestObject(['name' => 'Damian']); $constraint = new ViewableDataContains(['name' => 'Damian', 'Something' => 'something']); $this->assertTrue($constraint->evaluate($data, '', true)); $constraint = new ViewableDataContains(['name' => 'Damian', 'Something' => 'notthing']); $this->assertFalse($constraint->evaluate($data, '', true)); } }