@Test(dataProvider = "invalidRegisterTestData") public void register_withInvalidArguments_shouldThrowClientException( String login, String password, ExceptionBody exceptionBody) throws GeneralSecurityException { UserResource sut = createSystemUnderTest(null, null, null, null); try { sut.register(login, password); } catch (ClientException ex) { assertEquals(ex.getResponse().getEntity(), exceptionBody); return; } fail(); }
@Test public void register_ifLoginIsAlreadyTaken_shouldThrowClientException() throws GeneralSecurityException { UserRepository userRepository = mock(UserRepository.class); UserResource sut = createSystemUnderTest(userRepository, null, null, null); String login = "******"; String password = "******"; User user = new UserFactory(mock(StringGenerator.class), mock(PasswordEncrypter.class)) .create(login, password); when(userRepository.getByLogin(login)).thenReturn(user); try { sut.register(login, password); } catch (ClientException ex) { assertEquals(ex.getResponse().getEntity(), new ExceptionBody("Login is already taken")); return; } fail(); }
@Test public void register_thisTestWorksWell() throws GeneralSecurityException { UserResource sut = createSystemUnderTest(null, null, null, null); Response resp = sut.register("foo", "bar"); assertEquals(resp.getStatus(), Response.Status.OK.getStatusCode()); }