Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

MINOR Added ComponentSetTest

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@99580 467b73ca-7a2a-4603-9d3b-597d59a354a9
  • Loading branch information...
commit 26ca64a579791acd36353ccd44e04541e0b3ebc9 1 parent aea2f94
@chillu chillu authored
View
70 tests/model/ComponentSetTest.php
@@ -0,0 +1,70 @@
+<?php
+/**
+ * @package sapphire
+ * @subpackage tests
+ */
+class ComponentSetTest extends SapphireTest {
+
+ static $fixture_file = 'sapphire/tests/model/ComponentSetTest.yml';
+
+ function testSetByIDListManyMany() {
+ $team1 = $this->objFromFixture('ComponentSetTest_Team', 'team1');
+ $player1_team1 = $this->objFromFixture('ComponentSetTest_Player', 'player1_team1');
+ $player2 = $this->objFromFixture('ComponentSetTest_Player', 'player2');
+
+ $team1->Players()->setByIdList(array(
+ $player1_team1->ID,
+ $player2->ID
+ ));
+ $team1->flushCache();
+ $this->assertContains(
+ $player2->ID,
+ $team1->Players()->column('ID'),
+ 'Can add new entry'
+ );
+ $this->assertContains(
+ $player1_team1->ID,
+ $team1->Players()->column('ID'),
+ 'Can retain existing entry'
+ );
+
+ $team1->Players()->setByIdList(array(
+ $player1_team1->ID
+ ));
+ $team1->flushCache();
+ $this->assertNotContains(
+ $player2->ID,
+ $team1->Players()->column('ID'),
+ 'Can remove existing entry'
+ );
+ $this->assertContains(
+ $player1_team1->ID,
+ $team1->Players()->column('ID'),
+ 'Can retain existing entry'
+ );
+
+ $team1->Players()->setByIdList(array());
+ $team1->flushCache();
+ $this->assertEquals(0, $team1->Players()->Count(),
+ 'Can remove all entries by passing an empty array'
+ );
+ }
+}
+
+class ComponentSetTest_Player extends Member implements TestOnly {
+ static $belongs_many_many = array(
+ 'Teams' => 'ComponentSetTest_Team'
+ );
+
+}
+
+class ComponentSetTest_Team extends DataObject implements TestOnly {
+
+ static $db = array(
+ 'Title' => 'Varchar',
+ );
+
+ static $many_many = array(
+ 'Players' => 'ComponentSetTest_Player'
+ );
+}
View
9 tests/model/ComponentSetTest.yml
@@ -0,0 +1,9 @@
+ComponentSetTest_Player:
+ player1_team1:
+ Email: player1_team1@test.com
+ player2:
+ Email: player2@test.com
+ComponentSetTest_Team:
+ team1:
+ Title: team1
+ Players: =>ComponentSetTest_Player.player1_team1
Please sign in to comment.
Something went wrong with that request. Please try again.