/** * Assert that the property information is matching. * * @param Property $property The property info to check. * * @param string $name The property name. * * @param null|string $visibleConditionClass The class for the visible condition. * * @param null|string $editableConditionClass The class for the editable condition. * * @return void */ protected function assertProperty($property, $name, $visibleConditionClass = null, $editableConditionClass = null) { $this->assertEquals($name, $property->getName(), 'property name mismatch'); if ($visibleConditionClass === null) { $this->assertNull($property->getVisibleCondition()); } else { $this->assertInstanceOf($visibleConditionClass, $property->getVisibleCondition(), $property->getName() . ' getVisibleCondition()'); } if ($editableConditionClass === null) { $this->assertNull($property->getEditableCondition()); } else { $this->assertInstanceOf($editableConditionClass, $property->getEditableCondition(), $property->getName() . ' getVisibleCondition()'); } }