synergy/server_tests/server/controller/RunCtrlTest.php (237 lines of code) (raw):

<?php namespace Synergy\Controller\Test; use Synergy\Controller\RunCtrl; use Synergy\DB\DB_DAO; use Synergy\DB\Test\FixtureTestCase; use Synergy\Model\Exception\AssignmentConflictException; use Synergy\Model\TestAssignment; use Synergy\Model\TestRun; /** * Description of RunCtrlTest * * @author vriha */ class RunCtrlTest extends FixtureTestCase { /** * @var RunCtrl */ protected $object; public function setUp() { $this->object = new RunCtrl(); parent::setUp(); } public function testGetRunPlain() { $run = $this->object->getRun(1, false); $this->assertEquals('Sample test run', $run->title); $this->assertEquals('Desc', $run->desc); $this->assertEquals('2013-11-01 00:00:00', $run->start); $this->assertEquals('2013-11-28 00:00:00', $run->end); $this->assertEquals(1, count($run->attachments)); $this->assertEquals(1, $run->attachments[0]->id); $this->assertEquals('/empty', $run->attachments[0]->getPath()); $this->assertEquals(3, count($run->assignments)); $this->assertEquals(3, $run->assignments[2]->id); $this->assertEquals('warning', $run->assignments[2]->info); $this->assertEquals(14, $run->assignments[2]->passed); $this->assertEquals(4, $run->assignments[2]->failed); $this->assertEquals(2, $run->assignments[2]->skipped); $this->assertEquals(1, $run->assignments[0]->id); $this->assertEquals('pending', $run->assignments[0]->info); $this->assertEquals('pending', $run->assignments[1]->info); $this->assertEquals(2, $run->assignments[1]->id); $this->assertEquals(20, $run->completed); $this->assertEquals(60, $run->total); } public function testGetRunUserCentric() { $run = $this->object->getRun(1, true); $this->assertEquals('Sample test run', $run->title); $this->assertEquals('Desc', $run->desc); $this->assertEquals('2013-11-01 00:00:00', $run->start); $this->assertEquals('2013-11-28 00:00:00', $run->end); $this->assertEquals(1, count($run->attachments)); $this->assertEquals(1, $run->attachments[0]->id); $this->assertEquals('/empty', $run->attachments[0]->getPath()); $this->assertEquals(2, count($run->assignments)); $this->assertEquals(2, count($run->assignments["import_5_1"]->assignments)); $this->assertEquals(0, $run->assignments["import_5_1"]->assignments[0]->completed); $this->assertEquals(1, count($run->assignments["import_4_-1"]->assignments)); $this->assertEquals(20, $run->completed); $this->assertEquals(60, $run->total); } public function testRestartAssignment() { $this->object->restartAssignment(1); $restarted = $this->object->getRun(1, false)->assignments[0]; $this->assertNull($this->object->getAssigmentProgress(1)); $this->assertEquals(0, $restarted->completed); $this->assertEquals(0, $restarted->failed); $this->assertEquals(0, $restarted->skipped); $this->assertEquals(0, $restarted->passed); } public function testGetAssignment() { $assignment = $this->object->getAssignment(1); $this->assertEquals("Sample test run", $assignment->testRunTitle); $this->assertEquals("LESS support Test Specification for test 7.4", $assignment->specificationData->title); $this->assertEquals("LESS support Test Specification for test 7.4", $assignment->specification); $this->assertEquals(5, $assignment->specificationId); $this->assertEquals("pending", $assignment->info); $this->assertEquals("Windows", $assignment->platform); $this->assertEquals(0, $assignment->completed); $this->assertEquals("sanity", $assignment->label); } public function testDeleteAssignmentsForSpecification() { $this->object->deleteAssignmentsForSpecification(5); $this->assertNull($this->object->getAssignment(2)); $this->assertNull($this->object->getAssignment(1)); $this->assertNull($this->object->getAssigmentProgress(2)); $this->assertNull($this->object->getAssigmentProgress(1)); $conflict = false; try { $this->assertNotNull($this->object->getAssignment(3)); } catch (AssignmentConflictException $e) { $conflict = true; } $this->assertTrue($conflict); } public function testDeleteRun() { $this->object->deleteRun(1); $this->assertNull($this->object->getRun(1, false)); $this->assertNull($this->object->getAssignment(1)); $this->assertNull($this->object->getAssigmentProgress(1)); $this->assertEquals(0, count($this->object->getAttachments(1))); } public function testDeleteAssignmentsForTestRun() { $this->object->createAssignment(5, 1, 1, 2, "jack", -1, TestAssignment::CREATED_BY_TESTER); DB_DAO::executeQuery("UPDATE test_assignement SET id=999 WHERE id IS NULL"); $this->object->deleteAssignmentsForTestRun(1); $run = $this->object->getAssignments(1); $run2 = $this->object->getAssignments(2); $this->assertEquals(0, count($run)); $this->assertEquals(1, count($run2)); } public function testDeleteAssignment() { $this->object->deleteAssignment(1); $this->assertNull($this->object->getAssignment(1)); $this->assertNotNull($this->object->getAssignment(2)); } public function testGetRuns() { $runs = $this->object->getRuns(1); $this->assertEquals(1, count($runs)); $this->assertEquals('Sample test run', $runs->testRuns[1]->title); $this->assertEquals(60, $runs->testRuns[1]->total); $this->assertEquals(20, $runs->testRuns[1]->completed); $this->assertEquals(3, $runs->testRuns[1]->membersCount); $runs2 = $this->object->getRuns(2); $this->assertEquals(0, count($runs2->testRuns)); } public function testCreateRun() { date_default_timezone_set('UTC'); $today = date("Y-m-d H:i:s"); $end = date("Y-m-d H:i:s", strtotime(date("Y-m-d H:i:s") . " + 1 day")); $testRun = new TestRun("MyRun", -1, $today, $end); $testRun->desc = "desc"; $this->object->createRun($testRun->title, $testRun->desc, $testRun->start, $testRun->end, -1); DB_DAO::executeQuery("UPDATE test_run SET id=999 WHERE id IS NULL"); $newRun = $this->object->getRun(999, false); $this->assertEquals($testRun->title, $newRun->title); $this->assertEquals($testRun->desc, $newRun->desc); $this->assertEquals($testRun->start, $newRun->start); $this->assertEquals($testRun->end, $newRun->end); } public function testGetRunOverview() { $overview = $this->object->getRunOverview(1); $this->assertEquals("Sample test run", $overview->title); $this->assertEquals("Desc", $overview->desc); $this->assertEquals("2013-11-01 00:00:00", $overview->start); $this->assertEquals("2013-11-28 00:00:00", $overview->end); $this->assertEquals(1, count($overview->attachments)); } public function testEditRun() { $this->object->editRun(1, "New Title", "Desc2", "2013-10-01 00:00:00", "2013-12-01 00:00:00", -1); $updatedRun = $this->object->getRun(1, false); $this->assertEquals("New Title", $updatedRun->title); $this->assertEquals("Desc2", $updatedRun->desc); $this->assertEquals("2013-10-01 00:00:00", $updatedRun->start); $this->assertEquals("2013-12-01 00:00:00", $updatedRun->end); } public function testCreateAssignment() { $this->object->createAssignment(4, 1, 1, 2, "jack", -1, TestAssignment::CREATED_BY_TESTER); DB_DAO::executeQuery("UPDATE test_assignement SET id=999 WHERE id IS NULL"); $newAssignment = $this->object->getAssignment(999); $this->assertEquals("Sample test run2", $newAssignment->testRunTitle); $this->assertEquals("Cordova support Test Specification for test 7.4", $newAssignment->specificationData->title); $this->assertEquals("Cordova support Test Specification for test 7.4", $newAssignment->specification); $this->assertEquals(4, $newAssignment->specificationId); $this->assertEquals("pending", $newAssignment->info); $this->assertEquals("Windows", $newAssignment->platform); $this->assertEquals(0, $newAssignment->completed); $this->assertEquals(1, $newAssignment->total); $this->assertEquals("sanity", $newAssignment->label); $this->object->createAssignment(4, 1, -1, 2, "jack", -1, TestAssignment::CREATED_BY_TESTER); DB_DAO::executeQuery("UPDATE test_assignement SET id=333 WHERE id IS NULL"); $newAssignment = $this->object->getAssignment(333); $this->assertEquals("Sample test run2", $newAssignment->testRunTitle); $this->assertEquals("Cordova support Test Specification for test 7.4", $newAssignment->specificationData->title); $this->assertEquals("Cordova support Test Specification for test 7.4", $newAssignment->specification); $this->assertEquals(4, $newAssignment->specificationId); $this->assertEquals("pending", $newAssignment->info); $this->assertEquals(0, $newAssignment->completed); $this->assertEquals(5, $newAssignment->total); $this->assertEquals("", $newAssignment->label); } public function testCreateAssignmentTribe() { $before = $this->object->getAssignments(2); $this->object->createAssignment(8, 1, 1, 2, "", 1, TestAssignment::CREATED_BY_TESTER); $after = $this->object->getAssignments(2); $this->assertEquals(1 + count($before), count($after)); $before = $this->object->getAssignments(2); $this->object->createAssignment(8, 1, 1, 2, "", 2, TestAssignment::CREATED_BY_TESTER); $after = $this->object->getAssignments(2); $this->assertEquals(count($before), count($after)); } public function testCheckUserIsAssigned() { $this->assertFalse($this->object->checkUserIsAssigned(1, "jack")); $this->assertTrue($this->object->checkUserIsAssigned(1, "import")); } public function updateAssignment($id, $numberOfCases, $numberOfCasesCompleted, $failedCases, $skippedCases, $passedCases) { } public function testDeleteAssignmentProgress() { $this->object->deleteAssignmentProgress(1); $this->assertNull($this->object->getAssigmentProgress(1)); } public function testGetRunTitleForAssignment() { $this->assertEquals("Sample test run", $this->object->getRunTitleForAssignment(1)); $this->assertEquals("", $this->object->getRunTitleForAssignment(4)); } public function getUsersAssignments($username) { } public function getAllUsersAssignments($username) { } public function testDeleteUsersAssignments() { $this->object->createAssignment(5, 1, 0, 1, "jack", -1, TestAssignment::CREATED_BY_TESTER); DB_DAO::executeQuery("UPDATE test_assignement SET id=999 WHERE ID IS NULL"); $this->object->deleteUsersAssignments("import"); $this->assertNull($this->object->getAssigmentProgress(1)); $this->assertNull($this->object->getAssignment(1)); $this->assertNotNull($this->object->getAssignment(999)); } public function getRunsByDate($startDate, $stopDate) { } public function testGetBasicAssignment() { $basic = $this->object->getBasicAssignment(1); $this->assertEquals("import", $basic->username); $this->assertEquals("Sample test run", $basic->testRunTitle); $this->assertEquals("2013-11-28 00:00:00", $basic->deadline); $this->assertEquals(5, $basic->specificationId); $this->assertEquals("LESS support Test Specification for test 7.4", $basic->specification); $this->assertEquals("Windows", $basic->platform); $this->assertEquals(1, $basic->testRunId); } public function createMatrixAssignment($data) { } public function startAssignment($assignmentId, $startTime) { } public function startAssignmentConditional($assignmentId, $startTime) { } public function testGetAssignees() { $users = $this->object->getAssignees(1); $this->assertEquals(1, count($users)); $this->assertEquals("import", $users[0]->username); $this->object->createAssignment(9, 1, 0, 1, "jack", -1, TestAssignment::CREATED_BY_TESTER); $users2 = $this->object->getAssignees(1); $this->assertEquals(2, count($users2)); $this->assertEquals("import", $users2[0]->username); $this->assertEquals("jack", $users2[1]->username); } }