From 143980b6dab8ad87c44518e5b7befb614fb83b85 Mon Sep 17 00:00:00 2001 From: wei <> Date: Fri, 14 Jul 2006 06:56:16 +0000 Subject: Add time-tracker sample and docs. (Incomplete) --- .../time-tracker/tests/unit/ProjectDaoTestCase.php | 92 ++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 demos/time-tracker/tests/unit/ProjectDaoTestCase.php (limited to 'demos/time-tracker/tests/unit/ProjectDaoTestCase.php') diff --git a/demos/time-tracker/tests/unit/ProjectDaoTestCase.php b/demos/time-tracker/tests/unit/ProjectDaoTestCase.php new file mode 100644 index 00000000..bc576630 --- /dev/null +++ b/demos/time-tracker/tests/unit/ProjectDaoTestCase.php @@ -0,0 +1,92 @@ +dao= new ProjectDao(); + $this->connection = new MockTSqlMapper($this); + $this->dao->setConnection($this->connection); + } + +/* + //Simple test case, will not detect project existanc + //This case will clash with the more complete test case below. + function testProjectDaoCanCreateNewProject() + { + $project = new Project(); + $project->Name = "Project 1"; + + if(($conn = $this->connection) instanceof MockTSqlMapper) + { + $conn->expectOnce('insert', array('CreateNewProject', $project)); + $conn->setReturnValue('insert', true); + + $conn->expectOnce('queryForObject', array('GetProjectByID', 1)); + $conn->setReturnReference('queryForObject', $project); + } + + $this->assertTrue($this->dao->createNewProject($project)); + $this->assertEqual($this->dao->getProjectByID(1), $project); + } +*/ + function setupMockConnectionFor($project) + { + $customer = new TimeTrackerUser(); + $customer->ID = 1; + $customer->Name = "Customer A"; + + $manager = new TimeTrackerUser(); + $manager->ID = 2; + $manager->Name = "Manager A"; + + $conn = $this->connection; + + //return the customer and manager + $conn->setReturnValue('queryForObject', + $customer, array('GetUserByName', 'Customer A')); + $conn->setReturnValue('queryForObject', + $manager, array('GetUserByName', 'Manager A')); + + //project does not exist + $conn->setReturnValue('queryForObject', + null, array('GetProjectByName', 'Project 1')); + + $param['project'] = $project; + $param['creator'] = $customer->ID; + $param['manager'] = $manager->ID; + + $conn->setReturnValue('insert', + true, array('CreateNewProject', $param)); + $conn->setReturnReference('queryForObject', + $project, array('GetProjectByID', 1)); + } + + function createNewTestProject() + { + $project = new Project(); + $project->Name = "Project 1"; + $project->CreatorUserName = "Customer A"; + $project->ManagerUserName = "Manager A"; + + return $project; + } + + function assertProjectCreated($project) + { + $this->assertTrue($this->dao->createNewProject($project)); + $this->assertEqual($this->dao->getProjectByID(1), $project); + } + +} +?> \ No newline at end of file -- cgit v1.2.3