From 73dce1279760434e1d1b7a903a0a7500462d6f9c Mon Sep 17 00:00:00 2001 From: Frederic Guillot Date: Wed, 8 Feb 2017 18:36:13 -0500 Subject: Prevent people to remove columns that contains tasks --- tests/units/Model/ColumnModelTest.php | 267 ++++++++++++++++++++++++++++++++++ tests/units/Model/ColumnTest.php | 236 ------------------------------ 2 files changed, 267 insertions(+), 236 deletions(-) create mode 100644 tests/units/Model/ColumnModelTest.php delete mode 100644 tests/units/Model/ColumnTest.php (limited to 'tests') diff --git a/tests/units/Model/ColumnModelTest.php b/tests/units/Model/ColumnModelTest.php new file mode 100644 index 00000000..75d1da20 --- /dev/null +++ b/tests/units/Model/ColumnModelTest.php @@ -0,0 +1,267 @@ +container); + $columnModel = new ColumnModel($this->container); + + $this->assertEquals(1, $projectModel->create(array('name' => 'UnitTest'))); + + $column = $columnModel->getById(3); + $this->assertNotEmpty($column); + $this->assertEquals('Work in progress', $column['title']); + + $column = $columnModel->getById(33); + $this->assertEmpty($column); + } + + public function testGetFirstColumnId() + { + $projectModel = new ProjectModel($this->container); + $columnModel = new ColumnModel($this->container); + + $this->assertEquals(1, $projectModel->create(array('name' => 'UnitTest'))); + $this->assertEquals(1, $columnModel->getFirstColumnId(1)); + } + + public function testGetLastColumnId() + { + $projectModel = new ProjectModel($this->container); + $columnModel = new ColumnModel($this->container); + + $this->assertEquals(1, $projectModel->create(array('name' => 'UnitTest'))); + $this->assertEquals(4, $columnModel->getLastColumnId(1)); + } + + public function testGetLastColumnPosition() + { + $projectModel = new ProjectModel($this->container); + $columnModel = new ColumnModel($this->container); + + $this->assertEquals(1, $projectModel->create(array('name' => 'UnitTest'))); + $this->assertEquals(4, $columnModel->getLastColumnPosition(1)); + } + + public function testGetColumnIdByTitle() + { + $projectModel = new ProjectModel($this->container); + $columnModel = new ColumnModel($this->container); + + $this->assertEquals(1, $projectModel->create(array('name' => 'UnitTest'))); + $this->assertEquals(2, $columnModel->getColumnIdByTitle(1, 'Ready')); + } + + public function testGetTitleByColumnId() + { + $projectModel = new ProjectModel($this->container); + $columnModel = new ColumnModel($this->container); + + $this->assertEquals(1, $projectModel->create(array('name' => 'UnitTest'))); + $this->assertEquals('Work in progress', $columnModel->getColumnTitleById(3)); + } + + public function testGetAll() + { + $projectModel = new ProjectModel($this->container); + $columnModel = new ColumnModel($this->container); + + $this->assertEquals(1, $projectModel->create(array('name' => 'UnitTest'))); + + $columns = $columnModel->getAll(1); + $this->assertCount(4, $columns); + + $this->assertEquals(1, $columns[0]['id']); + $this->assertEquals(1, $columns[0]['position']); + $this->assertEquals('Backlog', $columns[0]['title']); + + $this->assertEquals(2, $columns[1]['id']); + $this->assertEquals(2, $columns[1]['position']); + $this->assertEquals('Ready', $columns[1]['title']); + + $this->assertEquals(3, $columns[2]['id']); + $this->assertEquals(3, $columns[2]['position']); + $this->assertEquals('Work in progress', $columns[2]['title']); + + $this->assertEquals(4, $columns[3]['id']); + $this->assertEquals(4, $columns[3]['position']); + $this->assertEquals('Done', $columns[3]['title']); + } + + public function testGetAllWithTasksCount() + { + $projectModel = new ProjectModel($this->container); + $columnModel = new ColumnModel($this->container); + $taskCreationModel = new TaskCreationModel($this->container); + + $this->assertEquals(1, $projectModel->create(array('name' => 'UnitTest'))); + $this->assertEquals(1, $taskCreationModel->create(array('title' => 'UnitTest', 'project_id' => 1, 'column_id' => 1))); + $this->assertEquals(2, $taskCreationModel->create(array('title' => 'UnitTest', 'project_id' => 1, 'column_id' => 2, 'is_active' => 0))); + + $columns = $columnModel->getAllWithTasksCount(1); + $this->assertCount(4, $columns); + + $this->assertEquals(1, $columns[0]['id']); + $this->assertEquals(1, $columns[0]['position']); + $this->assertEquals(1, $columns[0]['project_id']); + $this->assertEquals(0, $columns[0]['task_limit']); + $this->assertEquals(0, $columns[0]['hide_in_dashboard']); + $this->assertEquals('', $columns[0]['description']); + $this->assertEquals('Backlog', $columns[0]['title']); + $this->assertEquals(1, $columns[0]['nb_open_tasks']); + $this->assertEquals(0, $columns[0]['nb_closed_tasks']); + + $this->assertEquals(2, $columns[1]['id']); + $this->assertEquals(2, $columns[1]['position']); + $this->assertEquals('Ready', $columns[1]['title']); + $this->assertEquals(0, $columns[1]['nb_open_tasks']); + $this->assertEquals(1, $columns[1]['nb_closed_tasks']); + } + + public function testGetList() + { + $projectModel = new ProjectModel($this->container); + $columnModel = new ColumnModel($this->container); + + $this->assertEquals(1, $projectModel->create(array('name' => 'UnitTest'))); + + $columns = $columnModel->getList(1); + $this->assertCount(4, $columns); + $this->assertEquals('Backlog', $columns[1]); + $this->assertEquals('Ready', $columns[2]); + $this->assertEquals('Work in progress', $columns[3]); + $this->assertEquals('Done', $columns[4]); + + $columns = $columnModel->getList(1, true); + $this->assertCount(5, $columns); + $this->assertEquals('All columns', $columns[-1]); + $this->assertEquals('Backlog', $columns[1]); + $this->assertEquals('Ready', $columns[2]); + $this->assertEquals('Work in progress', $columns[3]); + $this->assertEquals('Done', $columns[4]); + } + + public function testAddColumn() + { + $projectModel = new ProjectModel($this->container); + $columnModel = new ColumnModel($this->container); + + $this->assertEquals(1, $projectModel->create(array('name' => 'UnitTest'))); + $this->assertNotFalse($columnModel->create(1, 'another column')); + $this->assertNotFalse($columnModel->create(1, 'one more', 3, 'one more description')); + + $columns = $columnModel->getAll(1); + $this->assertTrue(is_array($columns)); + $this->assertEquals(6, count($columns)); + + $this->assertEquals('another column', $columns[4]['title']); + $this->assertEquals(0, $columns[4]['task_limit']); + $this->assertEquals(5, $columns[4]['position']); + + $this->assertEquals('one more', $columns[5]['title']); + $this->assertEquals(3, $columns[5]['task_limit']); + $this->assertEquals(6, $columns[5]['position']); + $this->assertEquals('one more description', $columns[5]['description']); + } + + public function testUpdateColumn() + { + $projectModel = new ProjectModel($this->container); + $columnModel = new ColumnModel($this->container); + + $this->assertEquals(1, $projectModel->create(array('name' => 'UnitTest'))); + + $this->assertTrue($columnModel->update(3, 'blah', 5)); + $this->assertTrue($columnModel->update(2, 'boo')); + + $column = $columnModel->getById(3); + $this->assertNotEmpty($column); + $this->assertEquals('blah', $column['title']); + $this->assertEquals(5, $column['task_limit']); + + $column = $columnModel->getById(2); + $this->assertNotEmpty($column); + $this->assertEquals('boo', $column['title']); + $this->assertEquals(0, $column['task_limit']); + } + + public function testRemoveColumn() + { + $projectModel = new ProjectModel($this->container); + $columnModel = new ColumnModel($this->container); + + $this->assertEquals(1, $projectModel->create(array('name' => 'UnitTest'))); + $this->assertTrue($columnModel->remove(3)); + $this->assertFalse($columnModel->remove(322)); + + $columns = $columnModel->getAll(1); + $this->assertTrue(is_array($columns)); + $this->assertEquals(3, count($columns)); + } + + public function testChangePosition() + { + $projectModel = new ProjectModel($this->container); + $columnModel = new ColumnModel($this->container); + + $this->assertEquals(1, $projectModel->create(array('name' => 'test1'))); + + $columns = $columnModel->getAll(1); + $this->assertEquals(1, $columns[0]['position']); + $this->assertEquals(1, $columns[0]['id']); + $this->assertEquals(2, $columns[1]['position']); + $this->assertEquals(2, $columns[1]['id']); + $this->assertEquals(3, $columns[2]['position']); + $this->assertEquals(3, $columns[2]['id']); + + $this->assertTrue($columnModel->changePosition(1, 3, 2)); + + $columns = $columnModel->getAll(1); + $this->assertEquals(1, $columns[0]['position']); + $this->assertEquals(1, $columns[0]['id']); + $this->assertEquals(2, $columns[1]['position']); + $this->assertEquals(3, $columns[1]['id']); + $this->assertEquals(3, $columns[2]['position']); + $this->assertEquals(2, $columns[2]['id']); + + $this->assertTrue($columnModel->changePosition(1, 2, 1)); + + $columns = $columnModel->getAll(1); + $this->assertEquals(1, $columns[0]['position']); + $this->assertEquals(2, $columns[0]['id']); + $this->assertEquals(2, $columns[1]['position']); + $this->assertEquals(1, $columns[1]['id']); + $this->assertEquals(3, $columns[2]['position']); + $this->assertEquals(3, $columns[2]['id']); + + $this->assertTrue($columnModel->changePosition(1, 2, 2)); + + $columns = $columnModel->getAll(1); + $this->assertEquals(1, $columns[0]['position']); + $this->assertEquals(1, $columns[0]['id']); + $this->assertEquals(2, $columns[1]['position']); + $this->assertEquals(2, $columns[1]['id']); + $this->assertEquals(3, $columns[2]['position']); + $this->assertEquals(3, $columns[2]['id']); + + $this->assertTrue($columnModel->changePosition(1, 4, 1)); + + $columns = $columnModel->getAll(1); + $this->assertEquals(1, $columns[0]['position']); + $this->assertEquals(4, $columns[0]['id']); + $this->assertEquals(2, $columns[1]['position']); + $this->assertEquals(1, $columns[1]['id']); + $this->assertEquals(3, $columns[2]['position']); + $this->assertEquals(2, $columns[2]['id']); + + $this->assertFalse($columnModel->changePosition(1, 2, 0)); + $this->assertFalse($columnModel->changePosition(1, 2, 5)); + } +} diff --git a/tests/units/Model/ColumnTest.php b/tests/units/Model/ColumnTest.php deleted file mode 100644 index 7340a274..00000000 --- a/tests/units/Model/ColumnTest.php +++ /dev/null @@ -1,236 +0,0 @@ -container); - $columnModel = new ColumnModel($this->container); - - $this->assertEquals(1, $projectModel->create(array('name' => 'UnitTest'))); - - $column = $columnModel->getById(3); - $this->assertNotEmpty($column); - $this->assertEquals('Work in progress', $column['title']); - - $column = $columnModel->getById(33); - $this->assertEmpty($column); - } - - public function testGetFirstColumnId() - { - $projectModel = new ProjectModel($this->container); - $columnModel = new ColumnModel($this->container); - - $this->assertEquals(1, $projectModel->create(array('name' => 'UnitTest'))); - $this->assertEquals(1, $columnModel->getFirstColumnId(1)); - } - - public function testGetLastColumnId() - { - $projectModel = new ProjectModel($this->container); - $columnModel = new ColumnModel($this->container); - - $this->assertEquals(1, $projectModel->create(array('name' => 'UnitTest'))); - $this->assertEquals(4, $columnModel->getLastColumnId(1)); - } - - public function testGetLastColumnPosition() - { - $projectModel = new ProjectModel($this->container); - $columnModel = new ColumnModel($this->container); - - $this->assertEquals(1, $projectModel->create(array('name' => 'UnitTest'))); - $this->assertEquals(4, $columnModel->getLastColumnPosition(1)); - } - - public function testGetColumnIdByTitle() - { - $projectModel = new ProjectModel($this->container); - $columnModel = new ColumnModel($this->container); - - $this->assertEquals(1, $projectModel->create(array('name' => 'UnitTest'))); - $this->assertEquals(2, $columnModel->getColumnIdByTitle(1, 'Ready')); - } - - public function testGetTitleByColumnId() - { - $projectModel = new ProjectModel($this->container); - $columnModel = new ColumnModel($this->container); - - $this->assertEquals(1, $projectModel->create(array('name' => 'UnitTest'))); - $this->assertEquals('Work in progress', $columnModel->getColumnTitleById(3)); - } - - public function testGetAll() - { - $projectModel = new ProjectModel($this->container); - $columnModel = new ColumnModel($this->container); - - $this->assertEquals(1, $projectModel->create(array('name' => 'UnitTest'))); - - $columns = $columnModel->getAll(1); - $this->assertCount(4, $columns); - - $this->assertEquals(1, $columns[0]['id']); - $this->assertEquals(1, $columns[0]['position']); - $this->assertEquals('Backlog', $columns[0]['title']); - - $this->assertEquals(2, $columns[1]['id']); - $this->assertEquals(2, $columns[1]['position']); - $this->assertEquals('Ready', $columns[1]['title']); - - $this->assertEquals(3, $columns[2]['id']); - $this->assertEquals(3, $columns[2]['position']); - $this->assertEquals('Work in progress', $columns[2]['title']); - - $this->assertEquals(4, $columns[3]['id']); - $this->assertEquals(4, $columns[3]['position']); - $this->assertEquals('Done', $columns[3]['title']); - } - - public function testGetList() - { - $projectModel = new ProjectModel($this->container); - $columnModel = new ColumnModel($this->container); - - $this->assertEquals(1, $projectModel->create(array('name' => 'UnitTest'))); - - $columns = $columnModel->getList(1); - $this->assertCount(4, $columns); - $this->assertEquals('Backlog', $columns[1]); - $this->assertEquals('Ready', $columns[2]); - $this->assertEquals('Work in progress', $columns[3]); - $this->assertEquals('Done', $columns[4]); - - $columns = $columnModel->getList(1, true); - $this->assertCount(5, $columns); - $this->assertEquals('All columns', $columns[-1]); - $this->assertEquals('Backlog', $columns[1]); - $this->assertEquals('Ready', $columns[2]); - $this->assertEquals('Work in progress', $columns[3]); - $this->assertEquals('Done', $columns[4]); - } - - public function testAddColumn() - { - $projectModel = new ProjectModel($this->container); - $columnModel = new ColumnModel($this->container); - - $this->assertEquals(1, $projectModel->create(array('name' => 'UnitTest'))); - $this->assertNotFalse($columnModel->create(1, 'another column')); - $this->assertNotFalse($columnModel->create(1, 'one more', 3, 'one more description')); - - $columns = $columnModel->getAll(1); - $this->assertTrue(is_array($columns)); - $this->assertEquals(6, count($columns)); - - $this->assertEquals('another column', $columns[4]['title']); - $this->assertEquals(0, $columns[4]['task_limit']); - $this->assertEquals(5, $columns[4]['position']); - - $this->assertEquals('one more', $columns[5]['title']); - $this->assertEquals(3, $columns[5]['task_limit']); - $this->assertEquals(6, $columns[5]['position']); - $this->assertEquals('one more description', $columns[5]['description']); - } - - public function testUpdateColumn() - { - $projectModel = new ProjectModel($this->container); - $columnModel = new ColumnModel($this->container); - - $this->assertEquals(1, $projectModel->create(array('name' => 'UnitTest'))); - - $this->assertTrue($columnModel->update(3, 'blah', 5)); - $this->assertTrue($columnModel->update(2, 'boo')); - - $column = $columnModel->getById(3); - $this->assertNotEmpty($column); - $this->assertEquals('blah', $column['title']); - $this->assertEquals(5, $column['task_limit']); - - $column = $columnModel->getById(2); - $this->assertNotEmpty($column); - $this->assertEquals('boo', $column['title']); - $this->assertEquals(0, $column['task_limit']); - } - - public function testRemoveColumn() - { - $projectModel = new ProjectModel($this->container); - $columnModel = new ColumnModel($this->container); - - $this->assertEquals(1, $projectModel->create(array('name' => 'UnitTest'))); - $this->assertTrue($columnModel->remove(3)); - $this->assertFalse($columnModel->remove(322)); - - $columns = $columnModel->getAll(1); - $this->assertTrue(is_array($columns)); - $this->assertEquals(3, count($columns)); - } - - public function testChangePosition() - { - $projectModel = new ProjectModel($this->container); - $columnModel = new ColumnModel($this->container); - - $this->assertEquals(1, $projectModel->create(array('name' => 'test1'))); - - $columns = $columnModel->getAll(1); - $this->assertEquals(1, $columns[0]['position']); - $this->assertEquals(1, $columns[0]['id']); - $this->assertEquals(2, $columns[1]['position']); - $this->assertEquals(2, $columns[1]['id']); - $this->assertEquals(3, $columns[2]['position']); - $this->assertEquals(3, $columns[2]['id']); - - $this->assertTrue($columnModel->changePosition(1, 3, 2)); - - $columns = $columnModel->getAll(1); - $this->assertEquals(1, $columns[0]['position']); - $this->assertEquals(1, $columns[0]['id']); - $this->assertEquals(2, $columns[1]['position']); - $this->assertEquals(3, $columns[1]['id']); - $this->assertEquals(3, $columns[2]['position']); - $this->assertEquals(2, $columns[2]['id']); - - $this->assertTrue($columnModel->changePosition(1, 2, 1)); - - $columns = $columnModel->getAll(1); - $this->assertEquals(1, $columns[0]['position']); - $this->assertEquals(2, $columns[0]['id']); - $this->assertEquals(2, $columns[1]['position']); - $this->assertEquals(1, $columns[1]['id']); - $this->assertEquals(3, $columns[2]['position']); - $this->assertEquals(3, $columns[2]['id']); - - $this->assertTrue($columnModel->changePosition(1, 2, 2)); - - $columns = $columnModel->getAll(1); - $this->assertEquals(1, $columns[0]['position']); - $this->assertEquals(1, $columns[0]['id']); - $this->assertEquals(2, $columns[1]['position']); - $this->assertEquals(2, $columns[1]['id']); - $this->assertEquals(3, $columns[2]['position']); - $this->assertEquals(3, $columns[2]['id']); - - $this->assertTrue($columnModel->changePosition(1, 4, 1)); - - $columns = $columnModel->getAll(1); - $this->assertEquals(1, $columns[0]['position']); - $this->assertEquals(4, $columns[0]['id']); - $this->assertEquals(2, $columns[1]['position']); - $this->assertEquals(1, $columns[1]['id']); - $this->assertEquals(3, $columns[2]['position']); - $this->assertEquals(2, $columns[2]['id']); - - $this->assertFalse($columnModel->changePosition(1, 2, 0)); - $this->assertFalse($columnModel->changePosition(1, 2, 5)); - } -} -- cgit v1.2.3