synergy/server_tests/server/controller/UserCtrlTest.php (153 lines of code) (raw):
<?php
namespace Synergy\Controller\Test;
use Synergy\Controller\RunCtrl;
use Synergy\Controller\SpecificationCtrl;
use Synergy\Controller\TribeCtrl;
use Synergy\Controller\UserCtrl;
use Synergy\DB\DB_DAO;
use Synergy\DB\Test\FixtureTestCase;
use Synergy\Model\User;
use Synergy\Model\UserException;
use Synergy\Providers\SessionCtrl_Production;
/**
* Description of UserCtrlTest
*
* @author vriha
*/
class UserCtrlTest extends FixtureTestCase {
/**
* @var UserCtrl
*/
protected $object;
public function setUp() {
$this->object = new UserCtrl();
parent::setUp();
}
public function testDeleteFavoriteSpecification() {
$this->object->addFavorite(7, 4);
$this->object->deleteFavoriteSpecification(4);
$specCtrl = new SpecificationCtrl();
$newFavs = $specCtrl->getFavoriteSpecifications("import");
$this->assertEquals(0, count($newFavs[0]));
$newFavs = $specCtrl->getFavoriteSpecifications("jack");
$this->assertEquals(1, count($newFavs));
}
public function testGetUserIDbyUsername() {
$this->assertEquals(7, $this->object->getUserIDbyUsername("jack"));
$this->assertEquals(-1, $this->object->getUserIDbyUsername("foo"));
}
public function testFindMatchingUsers() {
$matchA = $this->object->findMatchingUsers("ja");
$this->assertEquals(1, count($matchA));
$this->assertEquals('jack', $matchA[0]->username);
$matchB = $this->object->findMatchingUsers("de");
$this->assertEquals(0, count($matchB));
}
public function testIsMemberOfTribe() {
$this->assertFalse($this->object->isMemberOfTribe(7, 1));
$this->assertTrue($this->object->isMemberOfTribe(6, 1));
$this->assertFalse($this->object->isMemberOfTribe(6, 2));
}
public function testAddFavorite() {
$this->object->addFavorite(7, 4);
$specCtrl = new SpecificationCtrl();
$newFavs = $specCtrl->getFavoriteSpecifications("jack");
$this->assertEquals(4, $newFavs[0]->id);
$this->assertEquals(5, $newFavs[1]->id);
}
public function testRemoveFavorite() {
$this->object->removeFavorite(7, 5);
$specCtrl = new SpecificationCtrl();
$favs = $specCtrl->getFavoriteSpecifications("jack");
$this->assertEquals(0, count($favs));
}
public function testGetUsernameById() {
$this->assertEquals('jack', $this->object->getUsernameById(7));
$this->assertEquals('', $this->object->getUsernameById(20));
}
public function testDeleteFavorites() {
$this->object->addFavorite(7, 4);
$this->object->deleteFavorites(7);
$specCtrl = new SpecificationCtrl();
$favs = $specCtrl->getFavoriteSpecifications("jack");
$this->assertEquals(0, count($favs));
}
public function testDeleteUser() {
SessionCtrl_Production::$userId = 7;
$this->object->deleteUser("import");
$specCtrl = new SpecificationCtrl();
$tribeCtrl = new TribeCtrl();
$runCtrl = new RunCtrl();
$newFavs = $specCtrl->getFavoriteSpecifications("import");
$this->assertEquals(0, count($newFavs));
$this->assertEquals(0, count($tribeCtrl->getUserMembership("import")));
$this->assertEquals(0, count($runCtrl->getUsersAssignments("import")));
$this->assertNull($runCtrl->getAssigmentProgress(1));
$this->assertEquals(0, count($specCtrl->getSpecificationsByAuthor("import")));
$this->assertEquals(0, count($specCtrl->getSpecificationsByOwner("import")));
$this->assertNull($this->object->getUser("import"));
}
public function testEditUser() {
$user = new User("test");
$user->firstName = "John";
$user->lastName = "Doe";
$user->role = "admin";
$this->object->editUser($user->firstName, $user->lastName, $user->role, $user->username, "jack");
$u = $this->object->getUser($user->username);
$this->assertEquals($user->firstName, $u->firstName);
$this->assertEquals($user->lastName, $u->lastName);
$this->assertEquals($user->role, $u->role);
$this->assertEquals($user->username, $u->username);
$exc = false;
try {
$this->object->editUser($user->firstName, $user->lastName, $user->role, "import", $user->username);
} catch (UserException $ex) {
$exc = true;
}
$this->assertTrue($exc);
}
public function testCreateUser() {
$user = new User("test");
$user->firstName = "John";
$user->lastName = "Doe";
$user->role = "admin";
$exc = false;
try {
$this->object->createUser($user->firstName, $user->lastName, $user->role, "import");
} catch (UserException $ex) {
$exc = true;
}
$this->assertTrue($exc);
$this->object->createUser($user->firstName, $user->lastName, $user->role, $user->username);
DB_DAO::executeQuery("UPDATE `user` SET id=999 WHERE id IS NULL");
$u = $this->object->getUserById(999);
$this->assertEquals($user->firstName, $u->firstName);
$this->assertEquals($user->lastName, $u->lastName);
$this->assertEquals($user->role, $u->role);
$this->assertEquals($user->username, $u->username);
}
public function testGetUser() {
$user = $this->object->getUser("jack");
$this->assertEquals('jack', $user->username);
$this->assertEquals('jack', $user->firstName);
$this->assertEquals('jack', $user->lastName);
$this->assertEquals('tester', $user->role);
$this->assertEquals(7, $user->id);
$this->assertNull($this->object->getUser("test"));
}
public function testGetUserById() {
$user = $this->object->getUserById(7);
$this->assertEquals('jack', $user->username);
$this->assertEquals('jack', $user->firstName);
$this->assertEquals('jack', $user->lastName);
$this->assertEquals('tester', $user->role);
$this->assertNull($this->object->getUserById(25));
}
public function testGetAllUsers() {
$result = $this->object->getAllUsers();
$this->assertEquals("import", $result->users[0]->username);
$this->assertEquals("import", $result->users[0]->firstName);
$this->assertEquals("import", $result->users[0]->lastName);
$this->assertEquals("tester", $result->users[0]->role);
$this->assertEquals("jack", $result->users[1]->username);
$this->assertEquals(2, count($result->users));
}
public function testEditUserSimple() {
$this->object->editUserSimple("jimmy", "doe", "import", true);
$user = $this->object->getUser("import");
$this->assertEquals("jimmy", $user->firstName);
$this->assertEquals("doe", $user->lastName);
}
}