diff options
Diffstat (limited to 'demos/time-tracker/tests')
| -rw-r--r-- | demos/time-tracker/tests/functional.php | 18 | ||||
| -rw-r--r-- | demos/time-tracker/tests/functional/HelloPradoTestCase.php | 26 | ||||
| -rw-r--r-- | demos/time-tracker/tests/unit.php | 20 | ||||
| -rw-r--r-- | demos/time-tracker/tests/unit/BaseTestCase.php | 126 | ||||
| -rw-r--r-- | demos/time-tracker/tests/unit/CategoryDaoTestCase.php | 400 | ||||
| -rw-r--r-- | demos/time-tracker/tests/unit/ProjectDaoTestCase.php | 398 | ||||
| -rw-r--r-- | demos/time-tracker/tests/unit/TimeEntryDaoTestCase.php | 426 | ||||
| -rw-r--r-- | demos/time-tracker/tests/unit/UserDaoTestCase.php | 540 | 
8 files changed, 977 insertions, 977 deletions
diff --git a/demos/time-tracker/tests/functional.php b/demos/time-tracker/tests/functional.php index 888b29db..00790199 100644 --- a/demos/time-tracker/tests/functional.php +++ b/demos/time-tracker/tests/functional.php @@ -1,10 +1,10 @@ -<?php
 -
 -include_once '../../../tests/test_tools/functional_tests.php';
 -
 -$test_cases = dirname(__FILE__)."/functional";
 -
 -$tester=new PradoFunctionalTester($test_cases);
 -$tester->run(new SimpleReporter());
 -
 +<?php + +include_once '../../../tests/test_tools/functional_tests.php'; + +$test_cases = dirname(__FILE__)."/functional"; + +$tester=new PradoFunctionalTester($test_cases); +$tester->run(new SimpleReporter()); +  ?>
\ No newline at end of file diff --git a/demos/time-tracker/tests/functional/HelloPradoTestCase.php b/demos/time-tracker/tests/functional/HelloPradoTestCase.php index b9e4f1e3..13ee9343 100644 --- a/demos/time-tracker/tests/functional/HelloPradoTestCase.php +++ b/demos/time-tracker/tests/functional/HelloPradoTestCase.php @@ -1,14 +1,14 @@ -<?php
 -
 -//web testing
 -class HelloPradoTestCase extends SeleniumTestCase
 -{
 -	function testIndexPage()
 -	{
 -		$this->open('../index.php');
 -		$this->assertTextPresent('Welcome to Prado!');
 -		//add more test assertions...
 -	}
 -}
 -
 +<?php + +//web testing +class HelloPradoTestCase extends SeleniumTestCase +{ +	function testIndexPage() +	{ +		$this->open('../index.php'); +		$this->assertTextPresent('Welcome to Prado!'); +		//add more test assertions... +	} +} +  ?>
\ No newline at end of file diff --git a/demos/time-tracker/tests/unit.php b/demos/time-tracker/tests/unit.php index 20d56432..7961d4f2 100644 --- a/demos/time-tracker/tests/unit.php +++ b/demos/time-tracker/tests/unit.php @@ -1,11 +1,11 @@ -<?php
 -
 -include_once '../../../tests/test_tools/unit_tests.php';
 -
 -$app_directory = "../protected";
 -$test_cases = dirname(__FILE__)."/unit";
 -
 -$tester = new PradoUnitTester($test_cases, $app_directory);
 -$tester->run(new HtmlReporter());
 -
 +<?php + +include_once '../../../tests/test_tools/unit_tests.php'; + +$app_directory = "../protected"; +$test_cases = dirname(__FILE__)."/unit"; + +$tester = new PradoUnitTester($test_cases, $app_directory); +$tester->run(new HtmlReporter()); +  ?>
\ No newline at end of file diff --git a/demos/time-tracker/tests/unit/BaseTestCase.php b/demos/time-tracker/tests/unit/BaseTestCase.php index d72cbc5c..10df400f 100644 --- a/demos/time-tracker/tests/unit/BaseTestCase.php +++ b/demos/time-tracker/tests/unit/BaseTestCase.php @@ -1,64 +1,64 @@ -<?php
 -
 -
 -Prado::using('Application.App_Code.Dao.*');
 -
 -class BaseTestCase extends UnitTestCase
 -{
 -	protected $sqlmap;
 -
 -	function setup()
 -	{
 -		$app = Prado::getApplication();
 -		$this->sqlmap = $app->getModule('daos')->getClient();
 -	}
 -
 -
 -	function flushDatabase()
 -	{
 -		$conn = $this->sqlmap->getDbConnection();
 -		$find = 'sqlite:protected';
 -		if(is_int(strpos($conn->getConnectionString(),$find)))
 -			$conn->ConnectionString = str_replace($find, 'sqlite:../protected', $conn->ConnectionString);
 -		$conn->setActive(false);
 -		$conn->setActive(true);
 -		switch(strtolower($conn->getDriverName()))
 -		{
 -			case 'mysql':
 -			return $this->flushMySQLDatabase();
 -			case 'sqlite':
 -			return $this->flushSQLiteDatabase();
 -		}
 -	}
 -
 -	function flushSQLiteDatabase()
 -	{
 -		$conn = $this->sqlmap->getDbConnection();
 -		$file = str_replace('sqlite:','',$conn->getConnectionString());
 -		$backup = $file.'.bak';
 -		copy($backup, $file);
 -	}
 -
 -	function flushMySQLDatabase()
 -	{
 -		$conn = $this->sqlmap->getDbConnection();
 -		$file = Prado::getPathOfNamespace('Application.App_Data.MySQL4.mysql-reset','.sql');
 -		if(is_file($file))
 -			$this->runScript($conn, $file);
 -		else
 -			throw new Exception('unable to find script file '.$file);
 -	}
 -
 -	protected function runScript($connection, $script)
 -	{
 -		$sql = file_get_contents($script);
 -		$lines = explode(';', $sql);
 -		foreach($lines as $line)
 -		{
 -			$line = trim($line);
 -			if(strlen($line) > 0)
 -				$connection->createCommand($line)->execute();
 -		}
 -	}
 -}
 +<?php + + +Prado::using('Application.App_Code.Dao.*'); + +class BaseTestCase extends UnitTestCase +{ +	protected $sqlmap; + +	function setup() +	{ +		$app = Prado::getApplication(); +		$this->sqlmap = $app->getModule('daos')->getClient(); +	} + + +	function flushDatabase() +	{ +		$conn = $this->sqlmap->getDbConnection(); +		$find = 'sqlite:protected'; +		if(is_int(strpos($conn->getConnectionString(),$find))) +			$conn->ConnectionString = str_replace($find, 'sqlite:../protected', $conn->ConnectionString); +		$conn->setActive(false); +		$conn->setActive(true); +		switch(strtolower($conn->getDriverName())) +		{ +			case 'mysql': +			return $this->flushMySQLDatabase(); +			case 'sqlite': +			return $this->flushSQLiteDatabase(); +		} +	} + +	function flushSQLiteDatabase() +	{ +		$conn = $this->sqlmap->getDbConnection(); +		$file = str_replace('sqlite:','',$conn->getConnectionString()); +		$backup = $file.'.bak'; +		copy($backup, $file); +	} + +	function flushMySQLDatabase() +	{ +		$conn = $this->sqlmap->getDbConnection(); +		$file = Prado::getPathOfNamespace('Application.App_Data.MySQL4.mysql-reset','.sql'); +		if(is_file($file)) +			$this->runScript($conn, $file); +		else +			throw new Exception('unable to find script file '.$file); +	} + +	protected function runScript($connection, $script) +	{ +		$sql = file_get_contents($script); +		$lines = explode(';', $sql); +		foreach($lines as $line) +		{ +			$line = trim($line); +			if(strlen($line) > 0) +				$connection->createCommand($line)->execute(); +		} +	} +}  ?>
\ No newline at end of file diff --git a/demos/time-tracker/tests/unit/CategoryDaoTestCase.php b/demos/time-tracker/tests/unit/CategoryDaoTestCase.php index d47fa7ce..e018b0b0 100644 --- a/demos/time-tracker/tests/unit/CategoryDaoTestCase.php +++ b/demos/time-tracker/tests/unit/CategoryDaoTestCase.php @@ -1,201 +1,201 @@ -<?php
 -
 -require_once(dirname(__FILE__).'/BaseTestCase.php');
 -
 -class CategoryDaoTestCase extends BaseTestCase
 -{
 -	protected $categoryDao;
 -	protected $projectDao;
 -	
 -	function setup()
 -	{
 -		parent::setup();
 -		$app = Prado::getApplication();
 -		$this->categoryDao = $app->getModule('daos')->getDao('CategoryDao');
 -		$this->projectDao = $app->getModule('daos')->getDao('ProjectDao');
 -		$this->flushDatabase();
 -	}
 -	
 -	function createNewProject()
 -	{
 -		$project = new ProjectRecord;
 -		$project->CreatorUserName = "admin";
 -		$project->DateCreated = time();
 -		$project->CompletionDate = strtotime('+1 month');
 -		$project->Description = 'Test project 1';
 -		$project->EstimateDuration = 100.5;
 -		$project->ManagerUserName = 'manager';
 -		$project->Name = 'Project 1';
 -		
 -		return $project;
 -	}
 -
 -	function createNewProject2()
 -	{
 -		$project = new ProjectRecord;
 -		$project->CreatorUserName = "manager";
 -		$project->DateCreated = time();
 -		$project->CompletionDate = strtotime('+1 week');
 -		$project->Description = 'Test project 2';
 -		$project->EstimateDuration = 30.5;
 -		$project->ManagerUserName = 'manager';
 -		$project->Name = 'Project 2';
 -		
 -		return $project;
 -	}
 -
 -	function createNewCategory()
 -	{
 -		$category = new CategoryRecord;
 -		$category->Name = 'Category 1';
 -		$category->EstimateDuration = 5.5;
 -		$category->Abbreviation = 'CAT 1';
 -		
 -		return $category;		
 -	}
 -	
 -	function createNewCategory2()
 -	{
 -		$category = new CategoryRecord;
 -		$category->Name = 'Category 2';
 -		$category->EstimateDuration = 1.5;
 -		$category->Abbreviation = 'CAT2';
 -		
 -		return $category;		
 -	}
 -
 -	function createNewCategory3()
 -	{
 -		$category = new CategoryRecord;
 -		$category->Name = 'Category 3';
 -		$category->EstimateDuration = 2.5;
 -		$category->Abbreviation = 'CAT3';
 -		
 -		return $category;		
 -	}
 -
 -	function create3Categories()
 -	{
 -		$project1 = $this->createNewProject();
 -		$this->projectDao->addNewProject($project1);
 -
 -		$project2 = $this->createNewProject2();
 -		$this->projectDao->addNewProject($project2);
 -		
 -		$category1 = $this->createNewCategory();
 -		$category1->ProjectID = $project1->ID;
 -		
 -		$category2 = $this->createNewCategory2();
 -		$category2->ProjectID = $project2->ID;
 -
 -		$category3 = $this->createNewCategory3();
 -		$category3->ProjectID = $project1->ID;
 -
 -		$this->categoryDao->addNewCategory($category1);
 -		$this->categoryDao->addNewCategory($category2);
 -		$this->categoryDao->addNewCategory($category3);
 -		
 -		return array($category1, $category2, $category3);
 -	}
 -
 -	function testCreateNewCategory()
 -	{		
 -		$project = $this->createNewProject();
 -		$this->projectDao->addNewProject($project);
 -		
 -		$category = $this->createNewCategory();
 -		$category->ProjectID = $project->ID;
 -		
 -		$this->categoryDao->addNewCategory($category);
 -		
 -		$check = $this->categoryDao->getCategoryByID(1);
 -
 -		$this->assertEqual($category, $check);
 -	}
 -	
 -	function testCreateDuplicateCategory()
 -	{		
 -		$project = $this->createNewProject();
 -		$this->projectDao->addNewProject($project);
 -		
 -		$category = $this->createNewCategory();
 -		$category->ProjectID = $project->ID;
 -
 -		$this->categoryDao->addNewCategory($category);
 -		
 -		try
 -		{
 -			$this->categoryDao->addNewCategory($category);
 -			$this->pass();
 -		}
 -		catch(TSqlMapQueryExecutionException $e)
 -		{
 -			$this->fail();
 -		}
 -		$check = $this->categoryDao->getCategoryByID(1);
 -		$this->assertEqual($category, $check);
 -	}
 -	
 -	function testGetAllCategories()
 -	{
 -		$added = $this->create3Categories();
 -				
 -		$list = $this->categoryDao->getAllCategories();
 -		$this->assertEqual(count($list), 3);
 -		$this->assertEqual($added[0], $list[0]);
 -		$this->assertEqual($added[1], $list[1]);
 -		$this->assertEqual($added[2], $list[2]);
 -	}
 -
 -	function testDeleteCategory()
 -	{
 -		$added = $this->create3Categories();
 -		
 -		$this->categoryDao->deleteCategory(1);
 -		
 -		$list = $this->categoryDao->getAllCategories();
 -		
 -		$this->assertEqual(count($list), 2);
 -		$this->assertEqual($added[1], $list[0]);
 -		$this->assertEqual($added[2], $list[1]);		
 -	}
 -
 -	function testCategoriesInProject()
 -	{
 -		$added = $this->create3Categories();
 -		
 -		$list = $this->categoryDao->getCategoriesByProjectID(1);
 -	
 -		$this->assertEqual(count($list), 2);
 -		$this->assertEqual($added[0], $list[0]);
 -		$this->assertEqual($added[2], $list[1]);			
 -	}
 -	
 -	function testGetCategoryByCategoryNameandProjectId()
 -	{
 -		$added = $this->create3Categories();
 -		$cat = $this->categoryDao->getCategoryByNameInProject('Category 1', 1);
 -		
 -		$this->assertEqual($cat, $added[0]);
 -	}
 -	
 -	function testUpdateCategory()
 -	{
 -		$project = $this->createNewProject();
 -		$this->projectDao->addNewProject($project);
 -		
 -		$category = $this->createNewCategory();
 -		$category->ProjectID = $project->ID;
 -
 -		$this->categoryDao->addNewCategory($category);
 -		
 -		$category->Name = "Test 2";
 -		$this->categoryDao->updateCategory($category);
 -		
 -		$check = $this->categoryDao->getCategoryByID($category->ID);
 -		
 -		$this->assertEqual($category, $check);
 -	}
 -}
 -
 +<?php + +require_once(dirname(__FILE__).'/BaseTestCase.php'); + +class CategoryDaoTestCase extends BaseTestCase +{ +	protected $categoryDao; +	protected $projectDao; +	 +	function setup() +	{ +		parent::setup(); +		$app = Prado::getApplication(); +		$this->categoryDao = $app->getModule('daos')->getDao('CategoryDao'); +		$this->projectDao = $app->getModule('daos')->getDao('ProjectDao'); +		$this->flushDatabase(); +	} +	 +	function createNewProject() +	{ +		$project = new ProjectRecord; +		$project->CreatorUserName = "admin"; +		$project->DateCreated = time(); +		$project->CompletionDate = strtotime('+1 month'); +		$project->Description = 'Test project 1'; +		$project->EstimateDuration = 100.5; +		$project->ManagerUserName = 'manager'; +		$project->Name = 'Project 1'; +		 +		return $project; +	} + +	function createNewProject2() +	{ +		$project = new ProjectRecord; +		$project->CreatorUserName = "manager"; +		$project->DateCreated = time(); +		$project->CompletionDate = strtotime('+1 week'); +		$project->Description = 'Test project 2'; +		$project->EstimateDuration = 30.5; +		$project->ManagerUserName = 'manager'; +		$project->Name = 'Project 2'; +		 +		return $project; +	} + +	function createNewCategory() +	{ +		$category = new CategoryRecord; +		$category->Name = 'Category 1'; +		$category->EstimateDuration = 5.5; +		$category->Abbreviation = 'CAT 1'; +		 +		return $category;		 +	} +	 +	function createNewCategory2() +	{ +		$category = new CategoryRecord; +		$category->Name = 'Category 2'; +		$category->EstimateDuration = 1.5; +		$category->Abbreviation = 'CAT2'; +		 +		return $category;		 +	} + +	function createNewCategory3() +	{ +		$category = new CategoryRecord; +		$category->Name = 'Category 3'; +		$category->EstimateDuration = 2.5; +		$category->Abbreviation = 'CAT3'; +		 +		return $category;		 +	} + +	function create3Categories() +	{ +		$project1 = $this->createNewProject(); +		$this->projectDao->addNewProject($project1); + +		$project2 = $this->createNewProject2(); +		$this->projectDao->addNewProject($project2); +		 +		$category1 = $this->createNewCategory(); +		$category1->ProjectID = $project1->ID; +		 +		$category2 = $this->createNewCategory2(); +		$category2->ProjectID = $project2->ID; + +		$category3 = $this->createNewCategory3(); +		$category3->ProjectID = $project1->ID; + +		$this->categoryDao->addNewCategory($category1); +		$this->categoryDao->addNewCategory($category2); +		$this->categoryDao->addNewCategory($category3); +		 +		return array($category1, $category2, $category3); +	} + +	function testCreateNewCategory() +	{		 +		$project = $this->createNewProject(); +		$this->projectDao->addNewProject($project); +		 +		$category = $this->createNewCategory(); +		$category->ProjectID = $project->ID; +		 +		$this->categoryDao->addNewCategory($category); +		 +		$check = $this->categoryDao->getCategoryByID(1); + +		$this->assertEqual($category, $check); +	} +	 +	function testCreateDuplicateCategory() +	{		 +		$project = $this->createNewProject(); +		$this->projectDao->addNewProject($project); +		 +		$category = $this->createNewCategory(); +		$category->ProjectID = $project->ID; + +		$this->categoryDao->addNewCategory($category); +		 +		try +		{ +			$this->categoryDao->addNewCategory($category); +			$this->pass(); +		} +		catch(TSqlMapQueryExecutionException $e) +		{ +			$this->fail(); +		} +		$check = $this->categoryDao->getCategoryByID(1); +		$this->assertEqual($category, $check); +	} +	 +	function testGetAllCategories() +	{ +		$added = $this->create3Categories(); +				 +		$list = $this->categoryDao->getAllCategories(); +		$this->assertEqual(count($list), 3); +		$this->assertEqual($added[0], $list[0]); +		$this->assertEqual($added[1], $list[1]); +		$this->assertEqual($added[2], $list[2]); +	} + +	function testDeleteCategory() +	{ +		$added = $this->create3Categories(); +		 +		$this->categoryDao->deleteCategory(1); +		 +		$list = $this->categoryDao->getAllCategories(); +		 +		$this->assertEqual(count($list), 2); +		$this->assertEqual($added[1], $list[0]); +		$this->assertEqual($added[2], $list[1]);		 +	} + +	function testCategoriesInProject() +	{ +		$added = $this->create3Categories(); +		 +		$list = $this->categoryDao->getCategoriesByProjectID(1); +	 +		$this->assertEqual(count($list), 2); +		$this->assertEqual($added[0], $list[0]); +		$this->assertEqual($added[2], $list[1]);			 +	} +	 +	function testGetCategoryByCategoryNameandProjectId() +	{ +		$added = $this->create3Categories(); +		$cat = $this->categoryDao->getCategoryByNameInProject('Category 1', 1); +		 +		$this->assertEqual($cat, $added[0]); +	} +	 +	function testUpdateCategory() +	{ +		$project = $this->createNewProject(); +		$this->projectDao->addNewProject($project); +		 +		$category = $this->createNewCategory(); +		$category->ProjectID = $project->ID; + +		$this->categoryDao->addNewCategory($category); +		 +		$category->Name = "Test 2"; +		$this->categoryDao->updateCategory($category); +		 +		$check = $this->categoryDao->getCategoryByID($category->ID); +		 +		$this->assertEqual($category, $check); +	} +} +  ?>
\ No newline at end of file diff --git a/demos/time-tracker/tests/unit/ProjectDaoTestCase.php b/demos/time-tracker/tests/unit/ProjectDaoTestCase.php index 22a01fca..1790f4d0 100644 --- a/demos/time-tracker/tests/unit/ProjectDaoTestCase.php +++ b/demos/time-tracker/tests/unit/ProjectDaoTestCase.php @@ -1,200 +1,200 @@ -<?php
 -
 -require_once(dirname(__FILE__).'/BaseTestCase.php');
 -
 -class ProjectDaoTestCase extends BaseTestCase
 -{
 -	protected $projectDao;
 -
 -	function setup()
 -	{
 -		parent::setup();
 -		$app = Prado::getApplication();
 -		$this->projectDao = $app->getModule('daos')->getDao('ProjectDao');
 -		$this->flushDatabase();
 -	}
 -
 -
 -	function createNewProject()
 -	{
 -		$project = new ProjectRecord;
 -		$project->CreatorUserName = "admin";
 -		$project->DateCreated = time();
 -		$project->CompletionDate = strtotime('+1 month');
 -		$project->Description = 'Test project 1';
 -		$project->EstimateDuration = 100.5;
 -		$project->ManagerUserName = 'manager';
 -		$project->Name = 'Project 1';
 -
 -		return $project;
 -	}
 -
 -	function createNewProject2()
 -	{
 -		$project = new ProjectRecord;
 -		$project->CreatorUserName = "manager";
 -		$project->DateCreated = time();
 -		$project->CompletionDate = strtotime('+1 week');
 -		$project->Description = 'Test project 2';
 -		$project->EstimateDuration = 30.5;
 -		$project->ManagerUserName = 'manager';
 -		$project->Name = 'Project 2';
 -
 -		return $project;
 -	}
 -
 -	function createNewProject3()
 -	{
 -		$project = new ProjectRecord;
 -		$project->CreatorUserName = "manager";
 -		$project->DateCreated = time();
 -		$project->CompletionDate = strtotime('+1 day');
 -		$project->Description = 'Test project 3';
 -		$project->EstimateDuration = 5.0;
 -		$project->ManagerUserName = 'admin';
 -		$project->Name = 'Project 3';
 -
 -		return $project;
 -	}
 -
 -	function add3Projects()
 -	{
 -		$project1 = $this->createNewProject();
 -		$project2 = $this->createNewProject2();
 -		$project3 = $this->createNewProject3();
 -
 -		$this->projectDao->addNewProject($project1);
 -		$this->projectDao->addNewProject($project2);
 -		$this->projectDao->addNewProject($project3);
 -		return array($project1,$project2,$project3);
 -	}
 -
 -	function testCreateNewProject()
 -	{
 -		$newProject = $this->createNewProject();
 -		$this->projectDao->addNewProject($newProject);
 -
 -		$check = $this->projectDao->getProjectByID(1);
 -		$this->assertEqual($newProject, $check);
 -	}
 -
 -	function testDeleteProject()
 -	{
 -		$newProject = $this->createNewProject();
 -		$this->projectDao->addNewProject($newProject);
 -
 -		$check = $this->projectDao->getProjectByID(1);
 -		$this->assertEqual($newProject, $check);
 -
 -		$this->projectDao->deleteProject(1);
 -		$verify = $this->projectDao->getProjectByID(1);
 -		$this->assertNull($verify);
 -	}
 -
 -	function testAddUserToProject()
 -	{
 -		$project = $this->createNewProject();
 -		$this->projectDao->addNewProject($project);
 -
 -		$this->projectDao->addUserToProject($project->ID, 'admin');
 -		$this->projectDao->addUserToProject($project->ID, 'manager');
 -
 -		$members = $this->projectDao->getProjectMembers($project->ID);
 -
 -		$this->assertEqual(count($members), 2);
 -		$this->assertEqual($members[0], 'admin');
 -		$this->assertEqual($members[1], 'manager');
 -	}
 -
 -	function testAddNullUserToProject()
 -	{
 -		$project = $this->createNewProject();
 -		$this->projectDao->addNewProject($project);
 -		try
 -		{
 -			$this->projectDao->addUserToProject($project->ID, 'asd');
 -			$this->fail();
 -		}
 -		catch(TDbException $e)
 -		{
 -			$this->pass();
 -		}
 -	}
 -
 -	function testGetAllProjects()
 -	{
 -		$added = $this->add3Projects();
 -
 -		$projects = $this->projectDao->getAllProjects();
 -
 -		$this->assertEqual(count($projects),3);
 -		$this->assertEqual($added[0],$projects[0]);
 -		$this->assertEqual($added[1],$projects[1]);
 -		$this->assertEqual($added[2],$projects[2]);
 -	}
 -
 -	function testGetProjectsByManagerName()
 -	{
 -		$added = $this->add3Projects();
 -
 -		$projects = $this->projectDao->getProjectsByManagerName('manager');
 -
 -		$this->assertEqual(count($projects),2);
 -		$this->assertEqual($added[0],$projects[0]);
 -		$this->assertEqual($added[1],$projects[1]);
 -	}
 -
 -	function testGetProjectsByUserName()
 -	{
 -		$added = $this->add3Projects();
 -
 -		$username = 'consultant';
 -
 -		$this->projectDao->addUserToProject(1, $username);
 -		$this->projectDao->addUserToProject(3, $username);
 -
 -		$projects = $this->projectDao->getProjectsByUserName($username);
 -
 -		$this->assertEqual(count($projects),2);
 -		$this->assertEqual($added[0],$projects[0]);
 -		$this->assertEqual($added[2],$projects[1]);
 -	}
 -
 -	function testRemoveUserFromProject()
 -	{
 -		$added = $this->add3Projects();
 -		$this->projectDao->addUserToProject(1, 'admin');
 -		$this->projectDao->addUserToProject(1, 'manager');
 -		$this->projectDao->addUserToProject(1, 'consultant');
 -
 -		$members = $this->projectDao->getProjectMembers(1);
 -
 -		$this->assertEqual(count($members), 3);
 -		$this->assertEqual($members[0], 'admin');
 -		$this->assertEqual($members[2], 'manager');
 -		$this->assertEqual($members[1], 'consultant');
 -
 -		$this->projectDao->removeUserFromProject(1,'admin');
 -
 -		$list = $this->projectDao->getProjectMembers(1);
 -
 -		$this->assertEqual(count($list), 2);
 -		$this->assertEqual($list[1], 'manager');
 -		$this->assertEqual($list[0], 'consultant');
 -	}
 -
 -	function testUpdateProject()
 -	{
 -		$project = $this->createNewProject();
 -		$this->projectDao->addNewProject($project);
 -
 -		$project->Description = "Project Testing 123";
 -
 -		$this->projectDao->updateProject($project);
 -
 -		$check = $this->projectDao->getProjectByID(1);
 -		$this->assertEqual($check, $project);
 -	}
 -}
 -
 +<?php + +require_once(dirname(__FILE__).'/BaseTestCase.php'); + +class ProjectDaoTestCase extends BaseTestCase +{ +	protected $projectDao; + +	function setup() +	{ +		parent::setup(); +		$app = Prado::getApplication(); +		$this->projectDao = $app->getModule('daos')->getDao('ProjectDao'); +		$this->flushDatabase(); +	} + + +	function createNewProject() +	{ +		$project = new ProjectRecord; +		$project->CreatorUserName = "admin"; +		$project->DateCreated = time(); +		$project->CompletionDate = strtotime('+1 month'); +		$project->Description = 'Test project 1'; +		$project->EstimateDuration = 100.5; +		$project->ManagerUserName = 'manager'; +		$project->Name = 'Project 1'; + +		return $project; +	} + +	function createNewProject2() +	{ +		$project = new ProjectRecord; +		$project->CreatorUserName = "manager"; +		$project->DateCreated = time(); +		$project->CompletionDate = strtotime('+1 week'); +		$project->Description = 'Test project 2'; +		$project->EstimateDuration = 30.5; +		$project->ManagerUserName = 'manager'; +		$project->Name = 'Project 2'; + +		return $project; +	} + +	function createNewProject3() +	{ +		$project = new ProjectRecord; +		$project->CreatorUserName = "manager"; +		$project->DateCreated = time(); +		$project->CompletionDate = strtotime('+1 day'); +		$project->Description = 'Test project 3'; +		$project->EstimateDuration = 5.0; +		$project->ManagerUserName = 'admin'; +		$project->Name = 'Project 3'; + +		return $project; +	} + +	function add3Projects() +	{ +		$project1 = $this->createNewProject(); +		$project2 = $this->createNewProject2(); +		$project3 = $this->createNewProject3(); + +		$this->projectDao->addNewProject($project1); +		$this->projectDao->addNewProject($project2); +		$this->projectDao->addNewProject($project3); +		return array($project1,$project2,$project3); +	} + +	function testCreateNewProject() +	{ +		$newProject = $this->createNewProject(); +		$this->projectDao->addNewProject($newProject); + +		$check = $this->projectDao->getProjectByID(1); +		$this->assertEqual($newProject, $check); +	} + +	function testDeleteProject() +	{ +		$newProject = $this->createNewProject(); +		$this->projectDao->addNewProject($newProject); + +		$check = $this->projectDao->getProjectByID(1); +		$this->assertEqual($newProject, $check); + +		$this->projectDao->deleteProject(1); +		$verify = $this->projectDao->getProjectByID(1); +		$this->assertNull($verify); +	} + +	function testAddUserToProject() +	{ +		$project = $this->createNewProject(); +		$this->projectDao->addNewProject($project); + +		$this->projectDao->addUserToProject($project->ID, 'admin'); +		$this->projectDao->addUserToProject($project->ID, 'manager'); + +		$members = $this->projectDao->getProjectMembers($project->ID); + +		$this->assertEqual(count($members), 2); +		$this->assertEqual($members[0], 'admin'); +		$this->assertEqual($members[1], 'manager'); +	} + +	function testAddNullUserToProject() +	{ +		$project = $this->createNewProject(); +		$this->projectDao->addNewProject($project); +		try +		{ +			$this->projectDao->addUserToProject($project->ID, 'asd'); +			$this->fail(); +		} +		catch(TDbException $e) +		{ +			$this->pass(); +		} +	} + +	function testGetAllProjects() +	{ +		$added = $this->add3Projects(); + +		$projects = $this->projectDao->getAllProjects(); + +		$this->assertEqual(count($projects),3); +		$this->assertEqual($added[0],$projects[0]); +		$this->assertEqual($added[1],$projects[1]); +		$this->assertEqual($added[2],$projects[2]); +	} + +	function testGetProjectsByManagerName() +	{ +		$added = $this->add3Projects(); + +		$projects = $this->projectDao->getProjectsByManagerName('manager'); + +		$this->assertEqual(count($projects),2); +		$this->assertEqual($added[0],$projects[0]); +		$this->assertEqual($added[1],$projects[1]); +	} + +	function testGetProjectsByUserName() +	{ +		$added = $this->add3Projects(); + +		$username = 'consultant'; + +		$this->projectDao->addUserToProject(1, $username); +		$this->projectDao->addUserToProject(3, $username); + +		$projects = $this->projectDao->getProjectsByUserName($username); + +		$this->assertEqual(count($projects),2); +		$this->assertEqual($added[0],$projects[0]); +		$this->assertEqual($added[2],$projects[1]); +	} + +	function testRemoveUserFromProject() +	{ +		$added = $this->add3Projects(); +		$this->projectDao->addUserToProject(1, 'admin'); +		$this->projectDao->addUserToProject(1, 'manager'); +		$this->projectDao->addUserToProject(1, 'consultant'); + +		$members = $this->projectDao->getProjectMembers(1); + +		$this->assertEqual(count($members), 3); +		$this->assertEqual($members[0], 'admin'); +		$this->assertEqual($members[2], 'manager'); +		$this->assertEqual($members[1], 'consultant'); + +		$this->projectDao->removeUserFromProject(1,'admin'); + +		$list = $this->projectDao->getProjectMembers(1); + +		$this->assertEqual(count($list), 2); +		$this->assertEqual($list[1], 'manager'); +		$this->assertEqual($list[0], 'consultant'); +	} + +	function testUpdateProject() +	{ +		$project = $this->createNewProject(); +		$this->projectDao->addNewProject($project); + +		$project->Description = "Project Testing 123"; + +		$this->projectDao->updateProject($project); + +		$check = $this->projectDao->getProjectByID(1); +		$this->assertEqual($check, $project); +	} +} +  ?>
\ No newline at end of file diff --git a/demos/time-tracker/tests/unit/TimeEntryDaoTestCase.php b/demos/time-tracker/tests/unit/TimeEntryDaoTestCase.php index 1ce97b3a..cead9fba 100644 --- a/demos/time-tracker/tests/unit/TimeEntryDaoTestCase.php +++ b/demos/time-tracker/tests/unit/TimeEntryDaoTestCase.php @@ -1,214 +1,214 @@ -<?php
 -
 -require_once(dirname(__FILE__).'/BaseTestCase.php');
 -
 -class TimeEntryDaoTestCase extends BaseTestCase
 -{
 -	protected $entryDao;
 -	protected $projectDao;
 -	protected $userDao;
 -	protected $categoryDao;
 -	protected $reportDao;
 -	
 -	function setup()
 -	{
 -		parent::setup();
 -		$app = Prado::getApplication();
 -		$this->entryDao = $app->getModule('daos')->getDao('TimeEntryDao');
 -		$this->projectDao = $app->getModule('daos')->getDao('ProjectDao');
 -		$this->userDao = $app->getModule('daos')->getDao('UserDao');
 -		$this->categoryDao = $app->getModule('daos')->getDao('CategoryDao');
 -		$this->reportDao = $app->getModule('daos')->getDao('ReportDao');
 -		$this->flushDatabase();
 -	}
 -	
 -	function createNewProject()
 -	{
 -		$project = new ProjectRecord;
 -		$project->CreatorUserName = "admin";
 -		$project->DateCreated = time();
 -		$project->CompletionDate = strtotime('+1 month');
 -		$project->Description = 'Test project 1';
 -		$project->EstimateDuration = 100.5;
 -		$project->ManagerUserName = 'manager';
 -		$project->Name = 'Project 1';
 -		
 -		return $project;
 -	}
 -
 -	function createNewProject2()
 -	{
 -		$project = new ProjectRecord;
 -		$project->CreatorUserName = "manager";
 -		$project->DateCreated = time();
 -		$project->CompletionDate = strtotime('+1 week');
 -		$project->Description = 'Test project 2';
 -		$project->EstimateDuration = 30.5;
 -		$project->ManagerUserName = 'manager';
 -		$project->Name = 'Project 2';
 -		
 -		return $project;
 -	}
 -	
 -	function createNewCategory()
 -	{
 -		$category = new CategoryRecord;
 -		$category->Name = 'Category 1';
 -		$category->EstimateDuration = 5.5;
 -		$category->Abbreviation = 'CAT 1';
 -		
 -		return $category;		
 -	}
 -	
 -	function createNewCategory2()
 -	{
 -		$category = new CategoryRecord;
 -		$category->Name = 'Category 2';
 -		$category->EstimateDuration = 1.5;
 -		$category->Abbreviation = 'CAT2';
 -		
 -		return $category;		
 -	}
 -
 -	function createNewCategory3()
 -	{
 -		$category = new CategoryRecord;
 -		$category->Name = 'Category 3';
 -		$category->EstimateDuration = 2.5;
 -		$category->Abbreviation = 'CAT3';
 -		
 -		return $category;		
 -	}
 -
 -	function createProjectsAndCategories()
 -	{
 -		$project1 = $this->createNewProject();
 -		$this->projectDao->addNewProject($project1);
 -
 -		$project2 = $this->createNewProject2();
 -		$this->projectDao->addNewProject($project2);
 -		
 -		$category1 = $this->createNewCategory();
 -		$category1->ProjectID = $project1->ID;
 -		
 -		$category2 = $this->createNewCategory2();
 -		$category2->ProjectID = $project2->ID;
 -
 -		$category3 = $this->createNewCategory3();
 -		$category3->ProjectID = $project1->ID;
 -
 -		$this->categoryDao->addNewCategory($category1);
 -		$this->categoryDao->addNewCategory($category2);
 -		$this->categoryDao->addNewCategory($category3);
 -		
 -		return array($project1, $project2, $category1, $category2, $category3);
 -	}
 -	
 -	function assertSameEntry($entry1, $entry2)
 -	{
 -		$this->assertEqual($entry1->CreatorUserName, $entry2->CreatorUserName);
 -		$this->assertEqual($entry1->Description, $entry2->Description);
 -		$this->assertEqual($entry1->Duration, $entry2->Duration);
 -		$this->assertEqual($entry1->ID, $entry2->ID);
 -		$this->assertEqual($entry1->ReportDate, $entry2->ReportDate);
 -		$this->assertEqual($entry1->Username, $entry2->Username);
 -	}
 -	
 -	
 -	function createTimeEntry1()
 -	{
 -		$added = $this->createProjectsAndCategories();		
 -		
 -		$entry = new TimeEntryRecord;
 -		$entry->CreatorUserName = "admin";
 -		$entry->Category = $added[2];
 -		$entry->Description = "New work";
 -		$entry->Duration = 1.5;
 -		$entry->Project = $added[0];
 -		$entry->ReportDate = strtotime('-1 day');
 -		$entry->Username = 'consultant';
 -		
 -		return array($entry, $added);
 -	}
 -
 -	function createTimeEntries2()
 -	{
 -		$added = $this->createProjectsAndCategories();		
 -		
 -		$entry = new TimeEntryRecord;
 -		$entry->CreatorUserName = "admin";
 -		$entry->Category = $added[2];
 -		$entry->Description = "New work";
 -		$entry->Duration = 1.2;
 -		$entry->Project = $added[0];
 -		$entry->ReportDate = strtotime('-10 day');
 -		$entry->Username = 'consultant';
 -		
 -		$entry2 = new TimeEntryRecord;
 -		$entry2->CreatorUserName = "admin";
 -		$entry2->Category = $added[4];
 -		$entry2->Description = "New work 2";
 -		$entry2->Duration = 5.5;
 -		$entry2->Project = $added[0];
 -		$entry2->ReportDate = strtotime('-4 day');
 -		$entry2->Username = 'consultant';
 -
 -		return array($entry, $entry2, $added);
 -	}
 -	
 -	function testCreateNewTimeEntry()
 -	{
 -		$added = $this->createTimeEntry1();
 -		$entry = $added[0];
 -		$this->entryDao->addNewTimeEntry($entry);
 -		
 -		$check = $this->entryDao->getTimeEntryByID(1);
 -		
 -		$this->assertSameEntry($entry, $check);
 -	}
 -	
 -	function testDeleteTimeEntry()
 -	{
 -		$this->testCreateNewTimeEntry();
 -		$this->entryDao->deleteTimeEntry(1);
 -		
 -		$check = $this->entryDao->getTimeEntryByID(1);
 -		$this->assertNull($check);
 -	}	
 -
 -	function testGetEntriesInProject()
 -	{
 -		$added = $this->createTimeEntries2();
 -		$this->entryDao->addNewTimeEntry($added[0]);
 -		$this->entryDao->addNewTimeEntry($added[1]);
 -		
 -		$list = $this->entryDao->getTimeEntriesInProject('consultant', 1);
 -		
 -		$this->assertEqual(count($list), 2);
 -		
 -		$this->assertSameEntry($list[0], $added[0]);
 -		$this->assertSameEntry($list[1], $added[1]);
 -	}
 -
 -	function testUpdateEntry()
 -	{
 -		$added = $this->createTimeEntry1();
 -		$entry = $added[0];
 -		$this->entryDao->addNewTimeEntry($entry);
 -		
 -		$check = $this->entryDao->getTimeEntryByID(1);
 -		
 -		$this->assertSameEntry($entry, $check);
 -		
 -		$entry->Description = "asdasd";
 -		$entry->Duration = 200;
 -		
 -		$this->entryDao->updateTimeEntry($entry);
 -		
 -		$verify = $this->entryDao->getTimeEntryByID(1);
 -		
 -		$this->assertSameEntry($entry, $verify);
 -	}
 -}
 -
 +<?php + +require_once(dirname(__FILE__).'/BaseTestCase.php'); + +class TimeEntryDaoTestCase extends BaseTestCase +{ +	protected $entryDao; +	protected $projectDao; +	protected $userDao; +	protected $categoryDao; +	protected $reportDao; +	 +	function setup() +	{ +		parent::setup(); +		$app = Prado::getApplication(); +		$this->entryDao = $app->getModule('daos')->getDao('TimeEntryDao'); +		$this->projectDao = $app->getModule('daos')->getDao('ProjectDao'); +		$this->userDao = $app->getModule('daos')->getDao('UserDao'); +		$this->categoryDao = $app->getModule('daos')->getDao('CategoryDao'); +		$this->reportDao = $app->getModule('daos')->getDao('ReportDao'); +		$this->flushDatabase(); +	} +	 +	function createNewProject() +	{ +		$project = new ProjectRecord; +		$project->CreatorUserName = "admin"; +		$project->DateCreated = time(); +		$project->CompletionDate = strtotime('+1 month'); +		$project->Description = 'Test project 1'; +		$project->EstimateDuration = 100.5; +		$project->ManagerUserName = 'manager'; +		$project->Name = 'Project 1'; +		 +		return $project; +	} + +	function createNewProject2() +	{ +		$project = new ProjectRecord; +		$project->CreatorUserName = "manager"; +		$project->DateCreated = time(); +		$project->CompletionDate = strtotime('+1 week'); +		$project->Description = 'Test project 2'; +		$project->EstimateDuration = 30.5; +		$project->ManagerUserName = 'manager'; +		$project->Name = 'Project 2'; +		 +		return $project; +	} +	 +	function createNewCategory() +	{ +		$category = new CategoryRecord; +		$category->Name = 'Category 1'; +		$category->EstimateDuration = 5.5; +		$category->Abbreviation = 'CAT 1'; +		 +		return $category;		 +	} +	 +	function createNewCategory2() +	{ +		$category = new CategoryRecord; +		$category->Name = 'Category 2'; +		$category->EstimateDuration = 1.5; +		$category->Abbreviation = 'CAT2'; +		 +		return $category;		 +	} + +	function createNewCategory3() +	{ +		$category = new CategoryRecord; +		$category->Name = 'Category 3'; +		$category->EstimateDuration = 2.5; +		$category->Abbreviation = 'CAT3'; +		 +		return $category;		 +	} + +	function createProjectsAndCategories() +	{ +		$project1 = $this->createNewProject(); +		$this->projectDao->addNewProject($project1); + +		$project2 = $this->createNewProject2(); +		$this->projectDao->addNewProject($project2); +		 +		$category1 = $this->createNewCategory(); +		$category1->ProjectID = $project1->ID; +		 +		$category2 = $this->createNewCategory2(); +		$category2->ProjectID = $project2->ID; + +		$category3 = $this->createNewCategory3(); +		$category3->ProjectID = $project1->ID; + +		$this->categoryDao->addNewCategory($category1); +		$this->categoryDao->addNewCategory($category2); +		$this->categoryDao->addNewCategory($category3); +		 +		return array($project1, $project2, $category1, $category2, $category3); +	} +	 +	function assertSameEntry($entry1, $entry2) +	{ +		$this->assertEqual($entry1->CreatorUserName, $entry2->CreatorUserName); +		$this->assertEqual($entry1->Description, $entry2->Description); +		$this->assertEqual($entry1->Duration, $entry2->Duration); +		$this->assertEqual($entry1->ID, $entry2->ID); +		$this->assertEqual($entry1->ReportDate, $entry2->ReportDate); +		$this->assertEqual($entry1->Username, $entry2->Username); +	} +	 +	 +	function createTimeEntry1() +	{ +		$added = $this->createProjectsAndCategories();		 +		 +		$entry = new TimeEntryRecord; +		$entry->CreatorUserName = "admin"; +		$entry->Category = $added[2]; +		$entry->Description = "New work"; +		$entry->Duration = 1.5; +		$entry->Project = $added[0]; +		$entry->ReportDate = strtotime('-1 day'); +		$entry->Username = 'consultant'; +		 +		return array($entry, $added); +	} + +	function createTimeEntries2() +	{ +		$added = $this->createProjectsAndCategories();		 +		 +		$entry = new TimeEntryRecord; +		$entry->CreatorUserName = "admin"; +		$entry->Category = $added[2]; +		$entry->Description = "New work"; +		$entry->Duration = 1.2; +		$entry->Project = $added[0]; +		$entry->ReportDate = strtotime('-10 day'); +		$entry->Username = 'consultant'; +		 +		$entry2 = new TimeEntryRecord; +		$entry2->CreatorUserName = "admin"; +		$entry2->Category = $added[4]; +		$entry2->Description = "New work 2"; +		$entry2->Duration = 5.5; +		$entry2->Project = $added[0]; +		$entry2->ReportDate = strtotime('-4 day'); +		$entry2->Username = 'consultant'; + +		return array($entry, $entry2, $added); +	} +	 +	function testCreateNewTimeEntry() +	{ +		$added = $this->createTimeEntry1(); +		$entry = $added[0]; +		$this->entryDao->addNewTimeEntry($entry); +		 +		$check = $this->entryDao->getTimeEntryByID(1); +		 +		$this->assertSameEntry($entry, $check); +	} +	 +	function testDeleteTimeEntry() +	{ +		$this->testCreateNewTimeEntry(); +		$this->entryDao->deleteTimeEntry(1); +		 +		$check = $this->entryDao->getTimeEntryByID(1); +		$this->assertNull($check); +	}	 + +	function testGetEntriesInProject() +	{ +		$added = $this->createTimeEntries2(); +		$this->entryDao->addNewTimeEntry($added[0]); +		$this->entryDao->addNewTimeEntry($added[1]); +		 +		$list = $this->entryDao->getTimeEntriesInProject('consultant', 1); +		 +		$this->assertEqual(count($list), 2); +		 +		$this->assertSameEntry($list[0], $added[0]); +		$this->assertSameEntry($list[1], $added[1]); +	} + +	function testUpdateEntry() +	{ +		$added = $this->createTimeEntry1(); +		$entry = $added[0]; +		$this->entryDao->addNewTimeEntry($entry); +		 +		$check = $this->entryDao->getTimeEntryByID(1); +		 +		$this->assertSameEntry($entry, $check); +		 +		$entry->Description = "asdasd"; +		$entry->Duration = 200; +		 +		$this->entryDao->updateTimeEntry($entry); +		 +		$verify = $this->entryDao->getTimeEntryByID(1); +		 +		$this->assertSameEntry($entry, $verify); +	} +} +  ?>
\ No newline at end of file diff --git a/demos/time-tracker/tests/unit/UserDaoTestCase.php b/demos/time-tracker/tests/unit/UserDaoTestCase.php index d216dbe6..ce40092e 100644 --- a/demos/time-tracker/tests/unit/UserDaoTestCase.php +++ b/demos/time-tracker/tests/unit/UserDaoTestCase.php @@ -1,271 +1,271 @@ -<?php
 -
 -require_once(dirname(__FILE__).'/BaseTestCase.php');
 -
 -class UserDaoTestCase extends BaseTestCase
 -{
 -	protected $userDao;
 -	
 -	function setup()
 -	{
 -		parent::setup();
 -		$app = Prado::getApplication();
 -		$this->userDao = $app->getModule('daos')->getDao('UserDao');
 -		$this->flushDatabase();
 -	}
 -	
 -	function assertIsAdmin($user)
 -	{
 -		if(!$user)
 -			return $this->fail();	
 -		$this->assertEqual($user->getName(), 'admin');
 -		$this->assertEqual($user->getEmailAddress(), 'admin@pradosoft.com');
 -	}
 -	
 -	function assertSameUser($user1, $user2)
 -	{
 -		if(is_null($user1) || is_null($user2))
 -			return $this->fail();
 -			
 -		$this->assertEqual($user1->getName(), $user2->getName());
 -		$this->assertEqual($user1->getEmailAddress(), $user2->getEmailAddress());
 -	}
 -	
 -	function assertIsAdminRole($user)
 -	{
 -		if(is_null($user))
 -			return $this->fail();	
 -				
 -		$this->assertTrue($user->isInRole('admin'));
 -	}
 -
 -	function assertIsManagerRole($user)
 -	{
 -		if(is_null($user))
 -			return $this->fail();	
 -				
 -		$this->assertTrue($user->isInRole('manager'));
 -	}
 -
 -	function assertIsConsultantRole($user)
 -	{
 -		if(is_null($user))
 -			return $this->fail();	
 -				
 -		$this->assertTrue($user->isInRole('consultant'));
 -	}
 -
 -	function assertNotConsultantRole($user)
 -	{
 -		if(is_null($user))
 -			return $this->fail();	
 -				
 -		$this->assertFalse($user->isInRole('consultant'));
 -	}
 -	
 -	function testGetUserByName()
 -	{	
 -		$user = $this->userDao->getUserByName('admin');
 -		$this->assertNotNull($user);	
 -		$this->assertIsAdmin($user);
 -	}
 -
 -	function testGetNonExistentUser()
 -	{
 -		$user = $this->userDao->getUserByName('none');
 -		$this->assertNull($user);
 -	}
 -	
 -	function testGetUsers()
 -	{
 -		$users = $this->userDao->getAllUsers();
 -		$this->assertEqual(count($users), 3);
 -	}
 -	
 -	function testUserLogon()
 -	{
 -		$success = $this->userDao->validateUser('admin', 'admin');
 -		$this->assertTrue($success);
 -	}
 -
 -	function testBadLogin()
 -	{
 -		$success = $this->userDao->validateUser('admin', 'hahah');
 -		$this->assertFalse($success);
 -	}
 -	
 -	
 -	function testAddNewUser()
 -	{
 -		$user = new TimeTrackerUser(new UserManager());
 -		$user->Name = "user1";
 -		$user->EmailAddress = 'user1@pradosoft.com';
 -		
 -		$this->userDao->addNewUser($user, 'password');
 -		
 -		$check = $this->userDao->getUserByName($user->Name);
 -		
 -		$this->assertSameUser($check, $user);
 -	}
 -	
 -	function testDeleteUserByName()
 -	{
 -		$this->userDao->deleteUserByName('admin');
 -		
 -		$admin = $this->userDao->getUserByName('admin');
 -		$this->assertNull($admin);
 -		
 -		$users = $this->userDao->getAllUsers();
 -		$this->assertEqual(count($users), 2);
 -	}
 -	
 -	function testAutoSignon()
 -	{
 -		$user = new TimeTrackerUser(new UserManager());
 -		$user->Name = "admin";
 -				
 -		$token = $this->userDao->createSignonToken($user);
 -		
 -		$check = $this->userDao->validateSignon($token);
 -		
 -		$this->assertIsAdmin($check);
 -	}
 -	
 -
 -	function testBadAutoSignon()
 -	{
 -		$user = new TimeTrackerUser(new UserManager());
 -		$user->Name = "admin";
 -				
 -		$token = $this->userDao->createSignonToken($user);
 -		
 -		$check = $this->userDao->validateSignon('adasd');
 -		$this->assertNull($check);
 -	}
 -
 -	function testAdminRoles()
 -	{
 -		$user = $this->userDao->getUserByName('admin');
 -		$this->assertIsAdminRole($user);	
 -		$this->assertIsManagerRole($user);
 -		$this->assertIsConsultantRole($user);
 -	}
 -	
 -	function testSetUserRoles()
 -	{
 -		$user = new TimeTrackerUser(new UserManager());
 -		$user->Name = "user1";
 -		$user->EmailAddress = 'user1@pradosoft.com';
 -		$user->Roles = array("manager", "consultant");
 -
 -		$this->userDao->addNewUser($user, 'password');
 -		$check = $this->userDao->getUserByName('user1');
 -		
 -		$this->assertIsManagerRole($check);
 -		$this->assertIsConsultantRole($check);
 -	}
 -	
 -	function testSetUserRoleNoNullUser()
 -	{
 -		$user = new TimeTrackerUser(new UserManager());
 -		$user->Name = "user1";
 -		$user->EmailAddress = 'user1@pradosoft.com';
 -		$user->Roles = array("manager", "consultant");	
 -		
 -		try
 -		{
 -			$this->userDao->updateUserRoles($user);
 -			$this->fail();
 -		}
 -		catch(TDbException $e)
 -		{
 -			$this->pass();
 -		}
 -		
 -		$check = $this->sqlmap->queryForObject('GetUserByName', 'user1');
 -		$this->assertNull($check);
 -	}
 -	
 -	function testUpdateUser()
 -	{
 -		$user = $this->userDao->getUserByName('admin');
 -		$user->EmailAddress = 'something@pradosoft.com';
 -		$user->Roles = array('manager', 'admin');
 -		
 -		$this->userDao->updateUser($user);
 -		
 -		$check = $this->userDao->getUserByName('admin');
 -		$this->assertIsAdminRole($check);
 -		$this->assertIsManagerRole($check);
 -		$this->assertNotConsultantRole($check);
 -	}
 -	
 -	function testUpdateUserPassword()
 -	{
 -		$user = $this->userDao->getUserByName('admin');
 -		$user->EmailAddress = 'something@pradosoft.com';
 -		$user->Roles = array('manager', 'admin');
 -		
 -		$pass = 'newpasword';
 -		
 -		$this->userDao->updateUser($user, $pass);
 -		
 -		$success = $this->userDao->validateUser('admin', $pass);
 -		
 -		$this->assertTrue($success);
 -	}
 -	
 -	function testClearSignonTokens()
 -	{
 -		$user = new TimeTrackerUser(new UserManager());
 -		$user->Name = "admin";
 -				
 -		$token1 = $this->userDao->createSignonToken($user);
 -		sleep(1);
 -		$token2 = $this->userDao->createSignonToken($user);
 -		$this->assertNotEqual($token1, $token2);
 -		
 -		$check1 = $this->userDao->validateSignon($token1);
 -		$check2 = $this->userDao->validateSignon($token2);
 -		
 -		$this->assertIsAdmin($check1);
 -		$this->assertIsAdmin($check2);
 -		
 -		$this->userDao->clearSignonTokens($user);
 -		
 -		$check3 = $this->userDao->validateSignon($token1);
 -		$check4 = $this->userDao->validateSignon($token2);
 -		
 -		$this->assertNull($check3);
 -		$this->assertNull($check4);
 -	}
 -	
 -	function testClearAllSigonTokens()
 -	{
 -		$user1 = new TimeTrackerUser(new UserManager());
 -		$user1->Name = "admin";
 -		
 -		$user2 = new TimeTrackerUser(new UserManager());
 -		$user2->Name = "manager";
 -		
 -		$token1 = $this->userDao->createSignonToken($user1);
 -		$token2 = $this->userDao->createSignonToken($user2);
 -		
 -		$check1 = $this->userDao->validateSignon($token1);
 -		$check2 = $this->userDao->validateSignon($token2);
 -		
 -		$this->assertIsAdmin($check1);
 -		$this->assertNotNull($check2);
 -		$this->assertEqual($check2->Name, $user2->Name);
 -		
 -		$this->userDao->clearSignonTokens();
 -		
 -		$check3 = $this->userDao->validateSignon($token1);
 -		$check4 = $this->userDao->validateSignon($token2);
 -		
 -		$this->assertNull($check3);
 -		$this->assertNull($check4);
 -	}
 -}
 -
 +<?php + +require_once(dirname(__FILE__).'/BaseTestCase.php'); + +class UserDaoTestCase extends BaseTestCase +{ +	protected $userDao; +	 +	function setup() +	{ +		parent::setup(); +		$app = Prado::getApplication(); +		$this->userDao = $app->getModule('daos')->getDao('UserDao'); +		$this->flushDatabase(); +	} +	 +	function assertIsAdmin($user) +	{ +		if(!$user) +			return $this->fail();	 +		$this->assertEqual($user->getName(), 'admin'); +		$this->assertEqual($user->getEmailAddress(), 'admin@pradosoft.com'); +	} +	 +	function assertSameUser($user1, $user2) +	{ +		if(is_null($user1) || is_null($user2)) +			return $this->fail(); +			 +		$this->assertEqual($user1->getName(), $user2->getName()); +		$this->assertEqual($user1->getEmailAddress(), $user2->getEmailAddress()); +	} +	 +	function assertIsAdminRole($user) +	{ +		if(is_null($user)) +			return $this->fail();	 +				 +		$this->assertTrue($user->isInRole('admin')); +	} + +	function assertIsManagerRole($user) +	{ +		if(is_null($user)) +			return $this->fail();	 +				 +		$this->assertTrue($user->isInRole('manager')); +	} + +	function assertIsConsultantRole($user) +	{ +		if(is_null($user)) +			return $this->fail();	 +				 +		$this->assertTrue($user->isInRole('consultant')); +	} + +	function assertNotConsultantRole($user) +	{ +		if(is_null($user)) +			return $this->fail();	 +				 +		$this->assertFalse($user->isInRole('consultant')); +	} +	 +	function testGetUserByName() +	{	 +		$user = $this->userDao->getUserByName('admin'); +		$this->assertNotNull($user);	 +		$this->assertIsAdmin($user); +	} + +	function testGetNonExistentUser() +	{ +		$user = $this->userDao->getUserByName('none'); +		$this->assertNull($user); +	} +	 +	function testGetUsers() +	{ +		$users = $this->userDao->getAllUsers(); +		$this->assertEqual(count($users), 3); +	} +	 +	function testUserLogon() +	{ +		$success = $this->userDao->validateUser('admin', 'admin'); +		$this->assertTrue($success); +	} + +	function testBadLogin() +	{ +		$success = $this->userDao->validateUser('admin', 'hahah'); +		$this->assertFalse($success); +	} +	 +	 +	function testAddNewUser() +	{ +		$user = new TimeTrackerUser(new UserManager()); +		$user->Name = "user1"; +		$user->EmailAddress = 'user1@pradosoft.com'; +		 +		$this->userDao->addNewUser($user, 'password'); +		 +		$check = $this->userDao->getUserByName($user->Name); +		 +		$this->assertSameUser($check, $user); +	} +	 +	function testDeleteUserByName() +	{ +		$this->userDao->deleteUserByName('admin'); +		 +		$admin = $this->userDao->getUserByName('admin'); +		$this->assertNull($admin); +		 +		$users = $this->userDao->getAllUsers(); +		$this->assertEqual(count($users), 2); +	} +	 +	function testAutoSignon() +	{ +		$user = new TimeTrackerUser(new UserManager()); +		$user->Name = "admin"; +				 +		$token = $this->userDao->createSignonToken($user); +		 +		$check = $this->userDao->validateSignon($token); +		 +		$this->assertIsAdmin($check); +	} +	 + +	function testBadAutoSignon() +	{ +		$user = new TimeTrackerUser(new UserManager()); +		$user->Name = "admin"; +				 +		$token = $this->userDao->createSignonToken($user); +		 +		$check = $this->userDao->validateSignon('adasd'); +		$this->assertNull($check); +	} + +	function testAdminRoles() +	{ +		$user = $this->userDao->getUserByName('admin'); +		$this->assertIsAdminRole($user);	 +		$this->assertIsManagerRole($user); +		$this->assertIsConsultantRole($user); +	} +	 +	function testSetUserRoles() +	{ +		$user = new TimeTrackerUser(new UserManager()); +		$user->Name = "user1"; +		$user->EmailAddress = 'user1@pradosoft.com'; +		$user->Roles = array("manager", "consultant"); + +		$this->userDao->addNewUser($user, 'password'); +		$check = $this->userDao->getUserByName('user1'); +		 +		$this->assertIsManagerRole($check); +		$this->assertIsConsultantRole($check); +	} +	 +	function testSetUserRoleNoNullUser() +	{ +		$user = new TimeTrackerUser(new UserManager()); +		$user->Name = "user1"; +		$user->EmailAddress = 'user1@pradosoft.com'; +		$user->Roles = array("manager", "consultant");	 +		 +		try +		{ +			$this->userDao->updateUserRoles($user); +			$this->fail(); +		} +		catch(TDbException $e) +		{ +			$this->pass(); +		} +		 +		$check = $this->sqlmap->queryForObject('GetUserByName', 'user1'); +		$this->assertNull($check); +	} +	 +	function testUpdateUser() +	{ +		$user = $this->userDao->getUserByName('admin'); +		$user->EmailAddress = 'something@pradosoft.com'; +		$user->Roles = array('manager', 'admin'); +		 +		$this->userDao->updateUser($user); +		 +		$check = $this->userDao->getUserByName('admin'); +		$this->assertIsAdminRole($check); +		$this->assertIsManagerRole($check); +		$this->assertNotConsultantRole($check); +	} +	 +	function testUpdateUserPassword() +	{ +		$user = $this->userDao->getUserByName('admin'); +		$user->EmailAddress = 'something@pradosoft.com'; +		$user->Roles = array('manager', 'admin'); +		 +		$pass = 'newpasword'; +		 +		$this->userDao->updateUser($user, $pass); +		 +		$success = $this->userDao->validateUser('admin', $pass); +		 +		$this->assertTrue($success); +	} +	 +	function testClearSignonTokens() +	{ +		$user = new TimeTrackerUser(new UserManager()); +		$user->Name = "admin"; +				 +		$token1 = $this->userDao->createSignonToken($user); +		sleep(1); +		$token2 = $this->userDao->createSignonToken($user); +		$this->assertNotEqual($token1, $token2); +		 +		$check1 = $this->userDao->validateSignon($token1); +		$check2 = $this->userDao->validateSignon($token2); +		 +		$this->assertIsAdmin($check1); +		$this->assertIsAdmin($check2); +		 +		$this->userDao->clearSignonTokens($user); +		 +		$check3 = $this->userDao->validateSignon($token1); +		$check4 = $this->userDao->validateSignon($token2); +		 +		$this->assertNull($check3); +		$this->assertNull($check4); +	} +	 +	function testClearAllSigonTokens() +	{ +		$user1 = new TimeTrackerUser(new UserManager()); +		$user1->Name = "admin"; +		 +		$user2 = new TimeTrackerUser(new UserManager()); +		$user2->Name = "manager"; +		 +		$token1 = $this->userDao->createSignonToken($user1); +		$token2 = $this->userDao->createSignonToken($user2); +		 +		$check1 = $this->userDao->validateSignon($token1); +		$check2 = $this->userDao->validateSignon($token2); +		 +		$this->assertIsAdmin($check1); +		$this->assertNotNull($check2); +		$this->assertEqual($check2->Name, $user2->Name); +		 +		$this->userDao->clearSignonTokens(); +		 +		$check3 = $this->userDao->validateSignon($token1); +		$check4 = $this->userDao->validateSignon($token2); +		 +		$this->assertNull($check3); +		$this->assertNull($check4); +	} +} +  ?>
\ No newline at end of file  | 
