示例#1
0
 /**
  * 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');
 }