package de.juwimm.cms.remote.test; import java.util.ArrayList; import java.util.Collection; import org.easymock.EasyMock; import org.junit.Assert; import de.juwimm.cms.authorization.model.GroupHbm; import de.juwimm.cms.authorization.model.GroupHbmDao; import de.juwimm.cms.authorization.model.GroupHbmImpl; import de.juwimm.cms.authorization.model.UserHbm; import de.juwimm.cms.authorization.model.UserHbmDao; import de.juwimm.cms.authorization.model.UserHbmImpl; import de.juwimm.cms.authorization.vo.GroupValue; import de.juwimm.cms.authorization.vo.UserValue; import de.juwimm.cms.common.UserRights; import de.juwimm.cms.exceptions.UserException; import de.juwimm.cms.model.SiteHbm; import de.juwimm.cms.model.SiteHbmDao; import de.juwimm.cms.model.SiteHbmImpl; import de.juwimm.cms.model.TaskHbm; import de.juwimm.cms.model.TaskHbmDao; import de.juwimm.cms.model.TaskHbmImpl; import de.juwimm.cms.model.UnitHbm; import de.juwimm.cms.model.UnitHbmDao; import de.juwimm.cms.model.UnitHbmImpl; import de.juwimm.cms.model.ViewComponentHbm; import de.juwimm.cms.model.ViewComponentHbmDao; import de.juwimm.cms.model.ViewComponentHbmImpl; import de.juwimm.cms.remote.UserServiceSpringImpl; import de.juwimm.cms.vo.SiteValue; import de.juwimm.cms.vo.TaskValue; import de.juwimm.cms.vo.UnitValue; public class UserServiceTest extends AbstractServiceTest { UnitHbmDao unitDaoMock; UserHbmDao userDaoMock; UserServiceSpringImpl userService; TaskHbmDao taskDaoMock; ViewComponentHbmDao viewComponentDaoMock; GroupHbmDao groupDaoMock; SiteHbmDao siteDaoMock; @Override protected void setUp() throws Exception { super.setUp(); userService = new UserServiceSpringImpl(); unitDaoMock = EasyMock.createMock(UnitHbmDao.class); userService.setUnitHbmDao(unitDaoMock); userDaoMock = EasyMock.createMock(UserHbmDao.class); userService.setUserHbmDao(userDaoMock); taskDaoMock = EasyMock.createMock(TaskHbmDao.class); userService.setTaskHbmDao(taskDaoMock); viewComponentDaoMock = EasyMock.createMock(ViewComponentHbmDao.class); userService.setViewComponentHbmDao(viewComponentDaoMock); groupDaoMock = EasyMock.createMock(GroupHbmDao.class); userService.setGroupHbmDao(groupDaoMock); siteDaoMock = EasyMock.createMock(SiteHbmDao.class); userService.setSiteHbmDao(siteDaoMock); } /** * Test creation of tasks * expect: the receiverUserId is not null, and to the task the receiver is assigned */ public void testCreateTask() { String receiverUserId = "testUserReceiver"; String receiverRole = "receiverRoleTest"; Integer unitId = 1; String comment = "testComment"; byte taskType = 1; UserHbm user = new UserHbmImpl(); user.setUserId("testUser"); UserHbm userReceiver = new UserHbmImpl(); userReceiver.setUserId("testUserReceiver"); UnitHbm unit = new UnitHbmImpl(); unit.setUnitId(1); unit.setName("testUnit"); TaskHbm task = new TaskHbmImpl(); task.setTaskId(1); task.setComment(comment); task.setTaskType(taskType); task.setUnit(unit); task.setReceiver(userReceiver); try { EasyMock.expect(unitDaoMock.load(EasyMock.anyInt())).andReturn(unit); EasyMock.expect(userDaoMock.load("testUser")).andReturn(user); EasyMock.expect(userDaoMock.load("testUserReceiver")).andReturn(userReceiver); EasyMock.expect(taskDaoMock.create((TaskHbm) EasyMock.anyObject())).andReturn(task); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.replay(unitDaoMock); EasyMock.replay(userDaoMock); EasyMock.replay(taskDaoMock); try { int id = userService.createTask(receiverUserId, receiverRole, unitId, comment, taskType); Assert.assertEquals(1, id); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.verify(unitDaoMock); EasyMock.verify(userDaoMock); EasyMock.verify(taskDaoMock); } /** * Test creation of tasks * expect: no receiver user, just the role required is assigned */ public void testCreateTask1() { String receiverUserId = null; String receiverRole = "receiverRoleTest"; Integer unitId = 1; String comment = "testComment"; byte taskType = 1; UserHbm user = new UserHbmImpl(); user.setUserId("testUser"); UserHbm userReceiver = new UserHbmImpl(); userReceiver.setUserId("testUserReceiver"); UnitHbm unit = new UnitHbmImpl(); unit.setUnitId(1); unit.setName("testUnit"); TaskHbm task = new TaskHbmImpl(); task.setTaskId(1); task.setComment(comment); task.setTaskType(taskType); task.setUnit(unit); task.setReceiver(userReceiver); try { EasyMock.expect(unitDaoMock.load(EasyMock.anyInt())).andReturn(unit); EasyMock.expect(userDaoMock.load("testUser")).andReturn(user); EasyMock.expect(taskDaoMock.create((TaskHbm) EasyMock.anyObject())).andReturn(task); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.replay(unitDaoMock); EasyMock.replay(userDaoMock); EasyMock.replay(taskDaoMock); try { int id = userService.createTask(receiverUserId, receiverRole, unitId, comment, taskType); Assert.assertEquals(1, id); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.verify(unitDaoMock); EasyMock.verify(userDaoMock); EasyMock.verify(taskDaoMock); } /** * test AddViewComponentsToTask * expect: add correctly view component to task. */ public void testAddViewComponentsToTask() { SiteHbm site = new SiteHbmImpl(); site.setSiteId(1); UserHbm user = new UserHbmImpl(); user.setUserId("testUser"); user.setMasterRoot(true); user.setActiveSite(site); UserHbm sender = new UserHbmImpl(); sender.setUserId("senderUser"); UserHbm receiver = new UserHbmImpl(); receiver.setUserId("receiverUser"); TaskHbm task = new TaskHbmImpl(); task.setTaskId(1); task.setReceiver(receiver); task.setSender(sender); task.setReceiverRole("testReceiverRole"); ViewComponentHbm firstViewComponent = new ViewComponentHbmImpl(); firstViewComponent.setViewComponentId(1); ViewComponentHbm secondViewComponent = new ViewComponentHbmImpl(); secondViewComponent.setViewComponentId(2); try { EasyMock.expect(userDaoMock.load("testUser")).andReturn(user); EasyMock.expect(taskDaoMock.load(EasyMock.eq(1))).andReturn(task); EasyMock.expect(viewComponentDaoMock.load(EasyMock.eq(1))).andReturn(firstViewComponent); EasyMock.expect(viewComponentDaoMock.load(EasyMock.eq(2))).andReturn(secondViewComponent); EasyMock.expect(userDaoMock.isInRole(user, "siteRoot", site)).andReturn(true); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.replay(userDaoMock); EasyMock.replay(taskDaoMock); EasyMock.replay(viewComponentDaoMock); Integer[] vcIds = new Integer[] {1, 2}; try { userService.addViewComponentsToTask(1, vcIds); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.verify(userDaoMock); EasyMock.verify(taskDaoMock); EasyMock.verify(viewComponentDaoMock); } /** * test AddViewComponentsToTask * expect: user is not site root. Throw SecurityException. */ public void testAddViewComponentsToTask1() { SiteHbm site = new SiteHbmImpl(); site.setSiteId(1); UserHbm user = new UserHbmImpl(); user.setUserId("testUser"); user.setMasterRoot(false); user.setActiveSite(site); UserHbm sender = new UserHbmImpl(); sender.setUserId("senderUser"); UserHbm receiver = new UserHbmImpl(); receiver.setUserId("receiverUser"); receiver.setMasterRoot(false); TaskHbm task = new TaskHbmImpl(); task.setTaskId(1); task.setReceiver(receiver); task.setSender(sender); task.setReceiverRole("testReceiverRole"); ViewComponentHbm firstViewComponent = new ViewComponentHbmImpl(); firstViewComponent.setViewComponentId(1); ViewComponentHbm secondViewComponent = new ViewComponentHbmImpl(); secondViewComponent.setViewComponentId(2); try { EasyMock.expect(userDaoMock.load("testUser")).andReturn(user); EasyMock.expect(taskDaoMock.load(EasyMock.eq(1))).andReturn(task); EasyMock.expect(userDaoMock.isInRole(user, "siteRoot", site)).andReturn(false); EasyMock.expect(userDaoMock.isInRole((UserHbm) EasyMock.anyObject(), (String) EasyMock.anyObject(), EasyMock.eq(site))).andReturn(false); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.replay(userDaoMock); EasyMock.replay(taskDaoMock); Integer[] vcIds = new Integer[] {1, 2}; try { userService.addViewComponentsToTask(1, vcIds); } catch (Exception e) { if (e instanceof UserException) { Assert.assertTrue(true); } else { Assert.assertTrue(false); } } EasyMock.verify(userDaoMock); EasyMock.verify(taskDaoMock); } /** * test RemoveViewComponent from task * expect: add correctly view component to task. */ public void testRemoveViewComponentsFromTask() { SiteHbm site = new SiteHbmImpl(); site.setSiteId(1); UserHbm user = new UserHbmImpl(); user.setUserId("testUser"); user.setMasterRoot(true); user.setActiveSite(site); UserHbm sender = new UserHbmImpl(); sender.setUserId("senderUser"); UserHbm receiver = new UserHbmImpl(); receiver.setUserId("receiverUser"); TaskHbm task = new TaskHbmImpl(); task.setTaskId(1); task.setReceiver(receiver); task.setSender(sender); task.setReceiverRole("testReceiverRole"); ViewComponentHbm firstViewComponent = new ViewComponentHbmImpl(); firstViewComponent.setViewComponentId(1); ViewComponentHbm secondViewComponent = new ViewComponentHbmImpl(); secondViewComponent.setViewComponentId(2); try { EasyMock.expect(userDaoMock.load("testUser")).andReturn(user); EasyMock.expect(taskDaoMock.load(EasyMock.eq(1))).andReturn(task); EasyMock.expect(viewComponentDaoMock.load(EasyMock.eq(1))).andReturn(firstViewComponent); EasyMock.expect(viewComponentDaoMock.load(EasyMock.eq(2))).andReturn(secondViewComponent); EasyMock.expect(userDaoMock.isInRole(EasyMock.eq(user), EasyMock.eq("siteRoot"), EasyMock.eq(site))).andReturn(true); EasyMock.expect(userDaoMock.isInRole((UserHbm) EasyMock.anyObject(), (String) EasyMock.anyObject(), (SiteHbm) EasyMock.anyObject())).andReturn(false); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.replay(userDaoMock); EasyMock.replay(taskDaoMock); EasyMock.replay(viewComponentDaoMock); Integer[] vcIds = new Integer[] {1, 2}; try { userService.removeViewComponentsFromTask(1, vcIds); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.verify(userDaoMock); EasyMock.verify(taskDaoMock); EasyMock.verify(viewComponentDaoMock); } /** * test RemoveViewComponentsFromTask * expect: user is not site root. Throw SecurityException. */ public void testRemoveViewComponentsFromTask1() { SiteHbm site = new SiteHbmImpl(); site.setSiteId(1); UserHbm user = new UserHbmImpl(); user.setUserId("testUser"); user.setMasterRoot(false); user.setActiveSite(site); UserHbm sender = new UserHbmImpl(); sender.setUserId("senderUser"); UserHbm receiver = new UserHbmImpl(); receiver.setUserId("receiverUser"); receiver.setMasterRoot(false); TaskHbm task = new TaskHbmImpl(); task.setTaskId(1); task.setReceiver(receiver); task.setSender(sender); task.setReceiverRole("testReceiverRole"); ViewComponentHbm firstViewComponent = new ViewComponentHbmImpl(); firstViewComponent.setViewComponentId(1); ViewComponentHbm secondViewComponent = new ViewComponentHbmImpl(); secondViewComponent.setViewComponentId(2); try { EasyMock.expect(userDaoMock.load("testUser")).andReturn(user); EasyMock.expect(taskDaoMock.load(EasyMock.eq(1))).andReturn(task); EasyMock.expect(userDaoMock.isInRole(EasyMock.eq(user), EasyMock.eq("siteRoot"), EasyMock.eq(site))).andReturn(false); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.replay(userDaoMock); EasyMock.replay(taskDaoMock); Integer[] vcIds = new Integer[] {1, 2}; try { userService.removeViewComponentsFromTask(1, vcIds); } catch (Exception e) { if (e instanceof UserException) { Assert.assertTrue(true); } else { Assert.assertTrue(false); } } EasyMock.verify(userDaoMock); EasyMock.verify(taskDaoMock); } /** * Test GetAllUser * expect: user is siteRoot, return all users for that site */ public void testGetAllUser() { SiteHbm site = new SiteHbmImpl(); site.setSiteId(1); UserHbm user = new UserHbmImpl(); user.setUserId("testUser"); user.setMasterRoot(true); user.setActiveSite(site); UserHbm user1 = new UserHbmImpl(); user1.setUserId("testUser1"); UserHbm user2 = new UserHbmImpl(); user2.setUserId("testUser2"); Collection<UserHbm> coll = new ArrayList<UserHbm>(); coll.add(user1); coll.add(user2); try { EasyMock.expect(userDaoMock.load("testUser")).andReturn(user); EasyMock.expect(userDaoMock.isInRole(EasyMock.eq(user), EasyMock.eq("siteRoot"), EasyMock.eq(site))).andReturn(true); EasyMock.expect(userDaoMock.findAll(EasyMock.eq(site.getSiteId()))).andReturn(coll); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.replay(userDaoMock); try { UserValue[] users = userService.getAllUser(); Assert.assertEquals(2, users.length); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.verify(userDaoMock); } /** * Test GetAllUser * expect: user is siteRoot, return all users for that site */ public void testGetAllUser1() { SiteHbm site = new SiteHbmImpl(); site.setSiteId(1); UserHbm user = new UserHbmImpl(); user.setUserId("testUser"); user.setMasterRoot(true); user.setActiveSite(site); UserHbm user1 = new UserHbmImpl(); user1.setUserId("testUser1"); UserHbm user2 = new UserHbmImpl(); user2.setUserId("testUser2"); Collection<UserHbm> coll = new ArrayList<UserHbm>(); coll.add(user1); coll.add(user2); UnitHbm unit = new UnitHbmImpl(); unit.setUnitId(1); unit.setUsers(coll); Collection<UnitHbm> units = new ArrayList<UnitHbm>(); units.add(unit); user.setUnits(units); try { EasyMock.expect(userDaoMock.load("testUser")).andReturn(user); EasyMock.expect(userDaoMock.isInRole(EasyMock.eq(user), EasyMock.eq("siteRoot"), EasyMock.eq(site))).andReturn(false); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.replay(userDaoMock); try { UserValue[] users = userService.getAllUser(); Assert.assertEquals(2, users.length); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.verify(userDaoMock); } /** * Test GetAllGroupsUsedInUnit * expect: for the unit, get the assigned users and for them get the groups */ public void testGetAllGroupsUsedInUnit() { UnitHbm unit = new UnitHbmImpl(); unit.setUnitId(1); UserHbm user = new UserHbmImpl(); user.setUserId("testUser"); Collection<UserHbm> users = new ArrayList<UserHbm>(); users.add(user); unit.setUsers(users); GroupHbm group1 = new GroupHbmImpl(); group1.setGroupId(1); group1.setGroupName("testGroup1"); GroupHbm group2 = new GroupHbmImpl(); group2.setGroupId(2); group2.setGroupName("testGroup2"); Collection<GroupHbm> groups = new ArrayList<GroupHbm>(); groups.add(group1); groups.add(group2); try { EasyMock.expect(unitDaoMock.load(EasyMock.eq(1))).andReturn(unit); EasyMock.expect(userDaoMock.load("testUser")).andReturn(user); EasyMock.expect(userDaoMock.getGroups4ActiveSite(EasyMock.eq(user))).andReturn(groups); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.replay(unitDaoMock); EasyMock.replay(userDaoMock); try { GroupValue[] values = userService.getAllGroupsUsedInUnit(unit.getUnitId()); Assert.assertEquals(2, values.length); } catch (Exception e) { Assert.assertTrue(false); } } /** * Test GetAllUser4GroupAndUnit */ public void testGetAllUser4GroupAndUnit() { UserHbm user = new UserHbmImpl(); user.setUserId("testUser"); SiteHbm site = new SiteHbmImpl(); site.setSiteId(1); GroupHbm group = new GroupHbmImpl(); group.setGroupId(1); Collection<GroupHbm> groups = new ArrayList<GroupHbm>(); groups.add(group); UnitHbm unit = new UnitHbmImpl(); unit.setUnitId(1); UserHbm user1 = new UserHbmImpl(); user1.setUserId("user1"); user1.setGroups(groups); user1.setActiveSite(site); UserHbm user2 = new UserHbmImpl(); user2.setUserId("user2"); user2.setGroups(groups); user2.setActiveSite(site); Collection<UserHbm> users = new ArrayList<UserHbm>(); users.add(user2); users.add(user1); unit.setUsers(users); try { EasyMock.expect(userDaoMock.load("testUser")).andReturn(user); EasyMock.expect(userDaoMock.isInUnit(EasyMock.eq(unit.getUnitId()), EasyMock.eq(user))).andReturn(true); EasyMock.expect(unitDaoMock.load(EasyMock.eq(unit.getUnitId()))).andReturn(unit); EasyMock.expect(userDaoMock.isInRole(EasyMock.eq(user2), EasyMock.eq(UserRights.SITE_ROOT), EasyMock.eq(site))).andReturn(true); EasyMock.expect(userDaoMock.isInRole(EasyMock.eq(user1), EasyMock.eq(UserRights.SITE_ROOT), EasyMock.eq(site))).andReturn(true); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.replay(userDaoMock); EasyMock.replay(unitDaoMock); try { UserValue[] result = userService.getAllUser4GroupAndUnit(group.getGroupId(), unit.getUnitId()); Assert.assertEquals(2, result.length); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.verify(userDaoMock); EasyMock.verify(unitDaoMock); } /** * test GetGroups4User * expect: user is MasterRoot so expect to get all the groups for the site */ public void testGetGroups4User() { SiteHbm site = new SiteHbmImpl(); site.setSiteId(1); UserHbm user = new UserHbmImpl(); user.setUserId("testUser"); user.setMasterRoot(true); user.setActiveSite(site); GroupHbm group1 = new GroupHbmImpl(); group1.setGroupId(1); GroupHbm group2 = new GroupHbmImpl(); group2.setGroupId(2); Collection<GroupHbm> groups = new ArrayList<GroupHbm>(); groups.add(group1); groups.add(group2); try { EasyMock.expect(userDaoMock.load("testUser")).andReturn(user); EasyMock.expect(groupDaoMock.findAll(EasyMock.eq(1))).andReturn(groups); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.replay(userDaoMock); EasyMock.replay(groupDaoMock); try { GroupValue[] result = userService.getGroups4User("testUser"); Assert.assertEquals(2, result.length); } catch (Exception e) { Assert.assertTrue(false); } } /** * test GetGroups4User * expect: user is not MasterRoot so expect to get all the groups for the active site */ public void testGetGroups4User1() { SiteHbm site = new SiteHbmImpl(); site.setSiteId(1); UserHbm user = new UserHbmImpl(); user.setUserId("testUser"); user.setMasterRoot(false); user.setActiveSite(site); GroupHbm group1 = new GroupHbmImpl(); group1.setGroupId(1); GroupHbm group2 = new GroupHbmImpl(); group2.setGroupId(2); Collection<GroupHbm> groups = new ArrayList<GroupHbm>(); groups.add(group1); groups.add(group2); try { EasyMock.expect(userDaoMock.load("testUser")).andReturn(user); EasyMock.expect(userDaoMock.getGroups4ActiveSite(EasyMock.eq(user))).andReturn(groups); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.replay(userDaoMock); EasyMock.replay(groupDaoMock); try { GroupValue[] result = userService.getGroups4User("testUser"); Assert.assertEquals(2, result.length); } catch (Exception e) { Assert.assertTrue(false); } } /** * test GetUnits4User * expect: user is MasterRoot so get all units for site */ public void testGetUnits4User() { SiteHbm site = new SiteHbmImpl(); site.setSiteId(1); UserHbm user = new UserHbmImpl(); user.setUserId("testUser"); user.setMasterRoot(true); user.setActiveSite(site); UnitHbm unit1 = new UnitHbmImpl(); unit1.setUnitId(1); UnitValue unit1Value = new UnitValue(); unit1Value.setUnitId(1); UnitHbm unit2 = new UnitHbmImpl(); unit2.setUnitId(2); UnitValue unit2Value = new UnitValue(); unit2Value.setUnitId(2); Collection<UnitHbm> units = new ArrayList<UnitHbm>(); units.add(unit1); units.add(unit2); try { EasyMock.expect(userDaoMock.load(EasyMock.eq("testUser"))).andReturn(user); EasyMock.expect(unitDaoMock.findAll(EasyMock.eq(user.getActiveSite().getSiteId()))).andReturn(units); EasyMock.expect(unitDaoMock.getDao(EasyMock.eq(unit1))).andReturn(unit1Value); EasyMock.expect(unitDaoMock.getDao(EasyMock.eq(unit2))).andReturn(unit2Value); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.replay(userDaoMock); EasyMock.replay(unitDaoMock); try { UnitValue[] result = userService.getUnits4User("testUser"); Assert.assertEquals(2, result.length); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.verify(userDaoMock); EasyMock.verify(unitDaoMock); } /** * Test GetUnits4User * expect: user is not MasterRoot so get all units for the active site */ public void testGetUnits4User1() { SiteHbm site = new SiteHbmImpl(); site.setSiteId(1); UserHbm user = new UserHbmImpl(); user.setUserId("testUser"); user.setMasterRoot(false); user.setActiveSite(site); UnitHbm unit1 = new UnitHbmImpl(); unit1.setUnitId(1); UnitValue unit1Value = new UnitValue(); unit1Value.setUnitId(1); UnitHbm unit2 = new UnitHbmImpl(); unit2.setUnitId(2); UnitValue unit2Value = new UnitValue(); unit2Value.setUnitId(2); Collection<UnitHbm> units = new ArrayList<UnitHbm>(); units.add(unit1); units.add(unit2); try { EasyMock.expect(userDaoMock.load(EasyMock.eq("testUser"))).andReturn(user); EasyMock.expect(userDaoMock.getUnits4ActiveSite(EasyMock.eq(user))).andReturn(units); EasyMock.expect(unitDaoMock.getDao(EasyMock.eq(unit1))).andReturn(unit1Value); EasyMock.expect(unitDaoMock.getDao(EasyMock.eq(unit2))).andReturn(unit2Value); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.replay(userDaoMock); EasyMock.replay(unitDaoMock); try { UnitValue[] result = userService.getUnits4User("testUser"); Assert.assertEquals(2, result.length); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.verify(userDaoMock); EasyMock.verify(unitDaoMock); } /** * Test getAllTasks */ public void testGetAllTasks() { UserHbm user = new UserHbmImpl(); user.setUserId("testUser"); SiteHbm site = new SiteHbmImpl(); site.setSiteId(1); user.setActiveSite(site); TaskHbm task1 = new TaskHbmImpl(); task1.setTaskId(1); TaskHbm task2 = new TaskHbmImpl(); task2.setTaskId(2); Collection<TaskHbm> tasks = new ArrayList<TaskHbm>(); tasks.add(task1); tasks.add(task2); try { EasyMock.expect(userDaoMock.load(EasyMock.eq("testUser"))).andReturn(user); EasyMock.expect(userDaoMock.isInRole(EasyMock.eq(user), EasyMock.eq(UserRights.SITE_ROOT), EasyMock.eq(user.getActiveSite()))).andReturn(false); EasyMock.expect(taskDaoMock.findAll(EasyMock.eq(user.getActiveSite().getSiteId()))).andReturn(tasks); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.replay(userDaoMock); EasyMock.replay(taskDaoMock); try { TaskValue[] result = userService.getAllTasks(); Assert.assertEquals(2, result.length); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.verify(userDaoMock); EasyMock.verify(taskDaoMock); } /** * Test getAllTasks * expect: return tasks that have the receiver the current user */ public void testGetAllTasks1() { UserHbm user = new UserHbmImpl(); user.setUserId("testUser"); SiteHbm site = new SiteHbmImpl(); site.setSiteId(1); user.setActiveSite(site); TaskHbm task1 = new TaskHbmImpl(); task1.setTaskId(1); task1.setReceiverRole("testRole"); task1.setReceiver(user); TaskHbm task2 = new TaskHbmImpl(); task2.setTaskId(2); task2.setReceiverRole("testRole"); task2.setReceiver(user); Collection<TaskHbm> tasks = new ArrayList<TaskHbm>(); tasks.add(task1); tasks.add(task2); try { EasyMock.expect(userDaoMock.load(EasyMock.eq("testUser"))).andReturn(user); EasyMock.expect(userDaoMock.isInRole(EasyMock.eq(user), EasyMock.eq(UserRights.SITE_ROOT), EasyMock.eq(user.getActiveSite()))).andReturn(true); EasyMock.expect(taskDaoMock.findAll(EasyMock.eq(user.getActiveSite().getSiteId()))).andReturn(tasks); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.replay(userDaoMock); EasyMock.replay(taskDaoMock); try { TaskValue[] result = userService.getAllTasks(); Assert.assertEquals(2, result.length); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.verify(userDaoMock); EasyMock.verify(taskDaoMock); } /** * test UpdateUser * expect: user has rights to modify and the modifications are made */ public void testUpdateUser() { UserHbm user = new UserHbmImpl(); user.setUserId("userGiven"); user.setMasterRoot(true); UserValue userGiven = new UserValue(); userGiven.setUserName("userGiven"); userGiven.setFirstName("testFirstName"); userGiven.setLastName("testLastName"); userGiven.setEmail("testEmail@yahoo.com"); SiteHbm site = new SiteHbmImpl(); site.setSiteId(1); UserHbm userGivenHbm = new UserHbmImpl(); userGivenHbm.setUserId("userGiven"); userGivenHbm.setMasterRoot(false); UserHbm currentUser = new UserHbmImpl(); currentUser.setUserId("testUser"); currentUser.setActiveSite(site); try { EasyMock.expect(userDaoMock.load(EasyMock.eq("userGiven"))).andReturn(userGivenHbm); EasyMock.expect(userDaoMock.load(EasyMock.eq("testUser"))).andReturn(currentUser); EasyMock.expect(userDaoMock.isInRole(EasyMock.eq(currentUser), EasyMock.eq(UserRights.SITE_ROOT), EasyMock.eq(site))).andReturn(true); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.replay(userDaoMock); try { userService.updateUser(userGiven); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.verify(userDaoMock); } /** * Test UpdateUser * expect: user has no rights to modify so exception is thrown */ public void testUpdateUser1() { UserHbm user = new UserHbmImpl(); user.setUserId("userGiven"); user.setMasterRoot(true); UserValue userGiven = new UserValue(); userGiven.setUserName("userGiven"); userGiven.setFirstName("testFirstName"); userGiven.setLastName("testLastName"); userGiven.setEmail("testEmail@yahoo.com"); SiteHbm site = new SiteHbmImpl(); site.setSiteId(1); UserHbm userGivenHbm = new UserHbmImpl(); userGivenHbm.setUserId("userGiven"); userGivenHbm.setMasterRoot(false); userGivenHbm.setActiveSite(site); UserHbm currentUser = new UserHbmImpl(); currentUser.setUserId("testUser"); currentUser.setActiveSite(site); try { EasyMock.expect(userDaoMock.load(EasyMock.eq("userGiven"))).andReturn(userGivenHbm); EasyMock.expect(userDaoMock.load(EasyMock.eq("testUser"))).andReturn(currentUser); EasyMock.expect(userDaoMock.isInRole(EasyMock.eq(currentUser), EasyMock.eq(UserRights.SITE_ROOT), EasyMock.eq(site))).andReturn(false); EasyMock.expect(userDaoMock.isInRole(EasyMock.eq(userGivenHbm), EasyMock.eq(UserRights.SITE_ROOT), EasyMock.eq(site))).andReturn(false); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.replay(userDaoMock); try { userService.updateUser(userGiven); } catch (Exception e) { if (e instanceof UserException) { Assert.assertTrue(true); } else { Assert.assertTrue(false); } } EasyMock.verify(userDaoMock); } /** * Test changePassword4User * expect: user is authorized to change the password and expect to return true */ public void testChangePassword4User() { SiteHbm site = new SiteHbmImpl(); site.setSiteId(1); UserHbm user = new UserHbmImpl(); user.setUserId("testUser"); user.setActiveSite(site); user.setMasterRoot(false); UserHbm userToChange = new UserHbmImpl(); userToChange.setUserId("user"); userToChange.setMasterRoot(false); userToChange.setActiveSite(site); try { EasyMock.expect(userDaoMock.load(EasyMock.eq("user"))).andReturn(userToChange); EasyMock.expect(userDaoMock.load(EasyMock.eq("testUser"))).andReturn(user); EasyMock.expect(userDaoMock.isInRole(EasyMock.eq(user), EasyMock.eq(UserRights.SITE_ROOT), EasyMock.eq(site))).andReturn(true); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.replay(userDaoMock); try { boolean result = userService.changePassword4User("user", "testOld", "testNew"); Assert.assertTrue(result); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.verify(userDaoMock); } /** * Test getAllSites4CurrentUser * expect: user is SITE_ROOT, he gets all the sites assigned to him */ public void testGetAllSites4CurrentUser() { SiteHbm site = new SiteHbmImpl(); site.setSiteId(3); UserHbm user = new UserHbmImpl(); user.setUserId("testUser"); user.setMasterRoot(true); user.setActiveSite(site); SiteHbm site1 = new SiteHbmImpl(); site1.setSiteId(1); SiteHbm site2 = new SiteHbmImpl(); site2.setSiteId(2); Collection<SiteHbm> sites = new ArrayList<SiteHbm>(); sites.add(site1); sites.add(site2); user.setSites(sites); try { EasyMock.expect(userDaoMock.load("testUser")).andReturn(user).times(3); EasyMock.expect(userDaoMock.isInRole(EasyMock.eq(user), EasyMock.eq(UserRights.SITE_ROOT), EasyMock.eq(site))).andReturn(true); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.replay(userDaoMock); try { SiteValue[] result = userService.getAllSites4CurrentUser(); Assert.assertEquals(2, result.length); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.verify(userDaoMock); } /** * Test getConnectedUsers4Site * expect: there are 2 users assigned to the site. First one is not master root * and the second one is master root. The result should be formed only by the * user who is not master root */ public void testGetConnectedUsers4Site() { SiteHbm site = new SiteHbmImpl(); site.setSiteId(1); UserHbm user1 = new UserHbmImpl(); user1.setUserId("user1"); user1.setMasterRoot(false); UserHbm user2 = new UserHbmImpl(); user2.setUserId("user2"); user2.setMasterRoot(true); Collection<UserHbm> users = new ArrayList<UserHbm>(); users.add(user1); users.add(user2); site.setUsers(users); try { EasyMock.expect(siteDaoMock.load(1)).andReturn(site); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.replay(siteDaoMock); try { String[] result = userService.getConnectedUsers4Site(site.getSiteId()); Assert.assertEquals(1, result.length); Assert.assertEquals("user1", result[0]); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.verify(siteDaoMock); } /** * Test SetConnectedUsers4Site * */ public void testSetConnectedUsers4Site() { String[] userIds = new String[] {"test1", "test2", "test3"}; SiteHbm site = new SiteHbmImpl(); site.setSiteId(1); UserHbm test1 = new UserHbmImpl(); test1.setUserId("test1"); UserHbm test2 = new UserHbmImpl(); test2.setUserId("test2"); UserHbm test3 = new UserHbmImpl(); test3.setUserId("test3"); UserHbm user1 = new UserHbmImpl(); user1.setUserId("user1"); user1.setMasterRoot(false); UserHbm user2 = new UserHbmImpl(); user2.setUserId("user2"); user2.setMasterRoot(true); Collection<UserHbm> users = new ArrayList<UserHbm>(); users.add(user1); users.add(user2); site.setUsers(users); try { EasyMock.expect(siteDaoMock.load(1)).andReturn(site); EasyMock.expect(userDaoMock.load("test1")).andReturn(test1); EasyMock.expect(userDaoMock.load("test2")).andReturn(test2); EasyMock.expect(userDaoMock.load("test3")).andReturn(test3); EasyMock.expect(userDaoMock.load("user1")).andReturn(user1); EasyMock.expect(userDaoMock.load("user2")).andReturn(user2); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.replay(siteDaoMock); EasyMock.replay(userDaoMock); try { userService.setConnectedUsers4Site(site.getSiteId(), userIds); } catch (Exception e) { Assert.assertTrue(false); } EasyMock.verify(siteDaoMock); EasyMock.verify(userDaoMock); } }