### Question:
MongoDbUserRepository implements UserRepository { @Override public User save(User item) { return template.save(item); }  @Override User getByUsername(String username); @Override User getByUserEmail(String userEmail); @Override User getByOpenId(String openId); @Override List<User> getAll(); @Override List<User> getLimitedList(int offset, int pageSize); @Override int getCountAll(); @Override List<User> findByUsernameOrEmail(String searchTerm, int offset, int pageSize); @Override int getCountByUsernameOrEmail(String searchTerm); @Override List<User> getAllByAddedWidget(String  widgetId); @Override User getByForgotPasswordHash(String hash); @Override Class<? extends User> getType(); @Override User get(String  id); @Override User save(User item); @Override void delete(User item); void setTemplate(MongoUserOperations template); void setStatisticsAggregator(StatisticsAggregator statisticsAggregator);  }### Answer:
@Test public void save_Valid(){ User item = new UserImpl(); User saved = new UserImpl(); expect(template.save(item)).andReturn(saved); replay(template); assertThat(saved, is(sameInstance(userRepository.save(item)))); }