@Test void testUpdate() { String userId = "MyUserId"; User user = mock(User.class); when(user.getId()).thenReturn(userId); User existingUser = mock(User.class); when(delegateRepository.findOneById(userId)).thenReturn(existingUser); userRepositoryValidationDecorator.update(user); verify(userValidator).validate(existingUser, user); }
@Override public void update(User user) { validateUpdateUser(user); super.update(user); }
UserRepositoryValidationDecorator extends AbstractRepositoryDecorator<User> { @Override public void update(User user) { validateUpdateUser(user); super.update(user); } }
UserRepositoryValidationDecorator extends AbstractRepositoryDecorator<User> { @Override public void update(User user) { validateUpdateUser(user); super.update(user); } UserRepositoryValidationDecorator(
      Repository<User> delegateRepository, UserValidator userValidator); }
UserRepositoryValidationDecorator extends AbstractRepositoryDecorator<User> { @Override public void update(User user) { validateUpdateUser(user); super.update(user); } UserRepositoryValidationDecorator(
      Repository<User> delegateRepository, UserValidator userValidator); @Override void add(User user); @Override Integer add(Stream<User> userStream); @Override void update(User user); @Override void update(Stream<User> userStream); }
UserRepositoryValidationDecorator extends AbstractRepositoryDecorator<User> { @Override public void update(User user) { validateUpdateUser(user); super.update(user); } UserRepositoryValidationDecorator(
      Repository<User> delegateRepository, UserValidator userValidator); @Override void add(User user); @Override Integer add(Stream<User> userStream); @Override void update(User user); @Override void update(Stream<User> userStream);  }