@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());
 }