Esempio n. 1
0
 /**
  * Test has many relationships
  *   - Test getComponents() gets the ComponentSet of the other side of the relation
  *   - Test the IDs on the DataObjects are set correctly
  */
 public function testHasManyRelationships()
 {
     $team = $this->objFromFixture('DataObjectTest_Team', 'team1');
     // Test getComponents() gets the ComponentSet of the other side of the relation
     $this->assertTrue($team->Comments()->Count() == 2);
     // Test the IDs on the DataObjects are set correctly
     foreach ($team->Comments() as $comment) {
         $this->assertEquals($team->ID, $comment->TeamID);
     }
     // Test that we can add and remove items that already exist in the database
     $newComment = new DataObjectTest_TeamComment();
     $newComment->Name = "Automated commenter";
     $newComment->Comment = "This is a new comment";
     $newComment->write();
     $team->Comments()->add($newComment);
     $this->assertEquals($team->ID, $newComment->TeamID);
     $comment1 = $this->fixture->objFromFixture('DataObjectTest_TeamComment', 'comment1');
     $comment2 = $this->fixture->objFromFixture('DataObjectTest_TeamComment', 'comment2');
     $team->Comments()->remove($comment2);
     $commentIDs = $team->Comments()->sort('ID')->column('ID');
     $this->assertEquals(array($comment1->ID, $newComment->ID), $commentIDs);
 }
 /**
  * Test has many relationships
  *   - Test getComponents() gets the ComponentSet of the other side of the relation
  *   - Test the IDs on the DataObjects are set correctly
  */
 public function testHasManyRelationships()
 {
     $team1 = $this->objFromFixture('DataObjectTest_Team', 'team1');
     // Test getComponents() gets the ComponentSet of the other side of the relation
     $this->assertTrue($team1->Comments()->Count() == 2);
     $team1Comments = [['Comment' => 'This is a team comment by Joe'], ['Comment' => 'This is a team comment by Bob']];
     // Test the IDs on the DataObjects are set correctly
     $this->assertDOSEquals($team1Comments, $team1->Comments());
     // Test that has_many can be infered from the has_one via getNonReciprocalComponent
     $this->assertDOSEquals($team1Comments, $team1->inferReciprocalComponent('DataObjectTest_TeamComment', 'Team'));
     // Test that we can add and remove items that already exist in the database
     $newComment = new DataObjectTest_TeamComment();
     $newComment->Name = "Automated commenter";
     $newComment->Comment = "This is a new comment";
     $newComment->write();
     $team1->Comments()->add($newComment);
     $this->assertEquals($team1->ID, $newComment->TeamID);
     $comment1 = $this->objFromFixture('DataObjectTest_TeamComment', 'comment1');
     $comment2 = $this->objFromFixture('DataObjectTest_TeamComment', 'comment2');
     $team1->Comments()->remove($comment2);
     $team1CommentIDs = $team1->Comments()->sort('ID')->column('ID');
     $this->assertEquals(array($comment1->ID, $newComment->ID), $team1CommentIDs);
     // Test that removing an item from a list doesn't remove it from the same
     // relation belonging to a different object
     $team1 = $this->objFromFixture('DataObjectTest_Team', 'team1');
     $team2 = $this->objFromFixture('DataObjectTest_Team', 'team2');
     $team2->Comments()->remove($comment1);
     $team1CommentIDs = $team1->Comments()->sort('ID')->column('ID');
     $this->assertEquals(array($comment1->ID, $newComment->ID), $team1CommentIDs);
 }