From 8a172170ea8ba86c839b684d3841786a9162aece Mon Sep 17 00:00:00 2001 From: Sankaranarayanan Viswanathan Date: Wed, 8 Oct 2014 22:39:32 -0400 Subject: [PATCH] Test that PostLoginActivities are executed for user after auth success --- .../backend/service/UserServiceTest.java | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/test/java/com/commafeed/backend/service/UserServiceTest.java b/src/test/java/com/commafeed/backend/service/UserServiceTest.java index 20508143..37954808 100644 --- a/src/test/java/com/commafeed/backend/service/UserServiceTest.java +++ b/src/test/java/com/commafeed/backend/service/UserServiceTest.java @@ -137,6 +137,41 @@ public class UserServiceTest { Assert.assertFalse(authenticatedUser.isPresent()); } + @Test public void + calling_login_should_execute_post_login_activities_for_user_on_successful_authentication() { + // Make a user who is not disabled + User user = new User(); + user.setDisabled(false); + + // Set the encryptedPassword on the user + byte[] encryptedPassword = new byte[]{1,2,3}; + user.setPassword(encryptedPassword); + + // Set a salt for this user + byte[] salt = new byte[]{4,5,6}; + user.setSalt(salt); + + // Mock DAO to return the user + UserDAO dao = mock(UserDAO.class); + when(dao.findByName("test")).thenReturn(user); + + // Mock PasswordEncryptionService + PasswordEncryptionService encryptionService = mock(PasswordEncryptionService.class); + when(encryptionService.authenticate(anyString(), any(byte[].class), any(byte[].class))).thenReturn(true); + + // Mock PostLoginActivities to do nothing + PostLoginActivities postLoginActivities = mock(PostLoginActivities.class); + doNothing().when(postLoginActivities).executeFor(any(User.class)); + + // Create service with mocks + UserService service = new UserService(null, dao, null, encryptionService, null, postLoginActivities); + + // Try to login as the user + service.login("test", "password"); + + verify(postLoginActivities).executeFor(user); + } + @Test public void calling_login_should_return_user_object_on_successful_authentication() { // Make a user who is not disabled