/** * Testing the getRelatedClassDisplayFieldValue() method on ONE-TO-MANY and MANY-TO-MANY relations. * * @since 1.2.1 */ public function testGetRelatedClassDisplayFieldValuePass() { $oneToManyRel = new Relation(); $oneToManyRel->setRelatedClass('Alpha\\Model\\Person'); $oneToManyRel->setRelatedClassField('OID'); $oneToManyRel->setRelatedClassDisplayField('displayName'); $oneToManyRel->setRelationType('ONE-TO-MANY'); $oneToManyRel->setValue($this->person->getOID()); $this->assertEquals($this->person->getDisplayName(), $oneToManyRel->getRelatedClassDisplayFieldValue(), 'testing the getRelatedClassDisplayFieldValue() method on ONE-TO-MANY relation'); $group = new Rights(); $group->set('name', 'unittestgroup'); $group->save(); $person1 = new Person(); $person1->set('displayName', 'user1'); $person1->set('email', '*****@*****.**'); $person1->set('password', 'password'); $person1->save(); $person1->addToGroup('unittestgroup'); $person2 = new Person(); $person2->set('displayName', 'user2'); $person2->set('email', '*****@*****.**'); $person2->set('password', 'password'); $person2->save(); $person2->addToGroup('unittestgroup'); $person2->getPropObject('rights')->setValue($group->getOID()); $this->assertEquals(2, count($group->getPropObject('members')->getRelatedObjects('Alpha\\Model\\Rights')), 'testing the getRelatedClassDisplayFieldValue() method on MANY-TO-MANY relation'); try { $this->assertEquals('user1@test.com,user2@test.com', $person2->getPropObject('rights')->getRelatedClassDisplayFieldValue(), 'testing the getRelatedClassDisplayFieldValue() method on MANY-TO-MANY relation'); $this->fail('testing the getRelatedClassDisplayFieldValue() method on MANY-TO-MANY relation'); } catch (IllegalArguementException $e) { $this->assertEquals($e->getMessage(), 'Tried to load related MANY-TO-MANY fields but no accessingClassName parameter set on the call to getRelatedClassDisplayFieldValue!', 'testing the getRelatedClassDisplayFieldValue() method on MANY-TO-MANY relation'); } $this->assertEquals('user1@test.com,user2@test.com', $person2->getPropObject('rights')->getRelatedClassDisplayFieldValue('Alpha\\Model\\Rights'), 'testing the getRelatedClassDisplayFieldValue() method on MANY-TO-MANY relation'); }