@Before public void setup() { service1 = mock(IUserRoleListService.class); service2 = mock(IUserRoleListService.class); mockTenant = mock(ITenant.class); String joe = "joe"; String ceo = "ceo"; when(service1.getAllRoles()).thenReturn(Arrays.asList("ceo", "admin")); when(service1.getAllRoles(mockTenant)).thenReturn(Arrays.asList("ceo", "admin")); when(service1.getAllUsers()).thenReturn(Arrays.asList("joe", "suzy")); when(service1.getAllUsers(mockTenant)).thenReturn(Arrays.asList("joe", "suzy")); when(service1.getRolesForUser(mockTenant, joe)).thenReturn(Arrays.asList("admin")); when(service1.getSystemRoles()).thenReturn(Arrays.asList("authenticated", "anonymous")); when(service1.getUsersInRole(mockTenant, ceo)).thenReturn(Arrays.asList("suzy")); when(service2.getAllRoles()).thenReturn(Arrays.asList("extraRole1", "admin")); when(service2.getAllRoles(mockTenant)).thenReturn(Arrays.asList("extraRole1", "admin")); when(service2.getAllUsers()).thenReturn(Arrays.asList("user1", "suzy")); when(service2.getAllUsers(mockTenant)).thenReturn(Arrays.asList("user1", "suzy")); when(service2.getRolesForUser(mockTenant, joe)).thenReturn(Arrays.asList("admin", "rockstar")); when(service2.getSystemRoles()).thenReturn(Arrays.asList("serveradmin", "anonymous")); when(service2.getUsersInRole(mockTenant, ceo)).thenReturn(Arrays.asList("ted", "suzy")); compositeService = new CompositeUserRoleListService(Arrays.asList(service1, service2)); }
@Test public void testGetAllUsers() throws Exception { IUserRoleListService mockService = mock(IUserRoleListService.class); when(mockService.getAllUsers()).thenReturn(Arrays.asList("foo", "bar")); CachingUserRoleListServiceDecorator decorator = new CachingUserRoleListServiceDecorator(mockService); List<String> allRoles = decorator.getAllUsers(); assertArrayEquals("does not match", new String[] {"foo", "bar"}, allRoles.toArray()); // second call should be from cache allRoles = decorator.getAllUsers(); assertArrayEquals("does not match", new String[] {"foo", "bar"}, allRoles.toArray()); verify(mockService, times(1)).getAllUsers(); }
@Override public List<String> getAllUsers() { return userRoleListService.getAllUsers(); }