From 26ca64a579791acd36353ccd44e04541e0b3ebc9 Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Mon, 22 Feb 2010 04:37:32 +0000 Subject: [PATCH] MINOR Added ComponentSetTest git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@99580 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- tests/model/ComponentSetTest.php | 70 ++++++++++++++++++++++++++++++++ tests/model/ComponentSetTest.yml | 9 ++++ 2 files changed, 79 insertions(+) create mode 100644 tests/model/ComponentSetTest.php create mode 100644 tests/model/ComponentSetTest.yml diff --git a/tests/model/ComponentSetTest.php b/tests/model/ComponentSetTest.php new file mode 100644 index 000000000..586ecff89 --- /dev/null +++ b/tests/model/ComponentSetTest.php @@ -0,0 +1,70 @@ +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' + ); +} \ No newline at end of file diff --git a/tests/model/ComponentSetTest.yml b/tests/model/ComponentSetTest.yml new file mode 100644 index 000000000..a83b78b79 --- /dev/null +++ b/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 \ No newline at end of file