package org.oregami.service; import io.dropwizard.testing.junit.DropwizardAppRule; import org.junit.*; import org.mockito.Mockito; import org.oregami.data.DatabaseFiller; import org.oregami.data.UserDao; import org.oregami.dropwizard.OregamiApplication; import org.oregami.dropwizard.OregamiConfiguration; import org.oregami.entities.user.User; import org.oregami.util.MailHelper; import org.oregami.util.StartHelper; public class TestUserService { @ClassRule public static final DropwizardAppRule<OregamiConfiguration> RULE = new DropwizardAppRule<OregamiConfiguration>(OregamiApplication.class, StartHelper.CONFIG_FILENAME_TEST); private UserServiceImpl userService; @AfterClass public static void beforeClass() { StartHelper.getInstance(DatabaseFiller.class).dropAllData(); } @Before public void setup() { userService = new UserServiceImpl(); UserDao userRepository = Mockito.mock(UserDao.class); userService.setUserDao(userRepository); } @After public void tearDown() { userService = null; } @Test public void testRegisterInvalidUser() { User user = new User(); ServiceResult<User> result = userService.register(user); Assert.assertEquals(false, result.wasSuccessful()); Assert.assertEquals(true, result.hasErrors()); Assert.assertTrue(result.containsError(new ServiceError(new ServiceErrorContext("user.email"), ServiceErrorMessage.USER_EMAIL_EMPTY))); Assert.assertTrue(result.containsError(new ServiceError(new ServiceErrorContext("user.password"), ServiceErrorMessage.USER_PASSWORD_EMPTY))); Assert.assertTrue(result.containsError(new ServiceError(new ServiceErrorContext("user.username"), ServiceErrorMessage.USER_USERNAME_EMPTY))); Assert.assertTrue(result.containsError(new ServiceError(new ServiceErrorContext("user.username"), ServiceErrorMessage.USER_USERNAME_TOO_SHORT))); Assert.assertEquals(4, result.getErrors().size()); } @Test public void testRegisterUser() { User user = new User(); user.setEmail("testuser@oregami.org"); user.setUsername("testuser"); user.setPassword("testpassword"); userService.setMailhelper(Mockito.mock(MailHelper.class)); ServiceResult<User> result = userService.register(user); Assert.assertEquals(true, result.wasSuccessful()); Assert.assertEquals(false, result.hasErrors()); // Assert.assertNotNull(user.getRegistrationTime()); } }