This is the codeAbility Sharing Platform! Learn more about the codeAbility Sharing Platform.

Skip to content
Snippets Groups Projects
Commit 3a91e5d0 authored by Michael Breu's avatar Michael Breu
Browse files

eliminating UserSearchRepository

parent 85b447e4
Branches
2 merge requests!231New Deployment into production and update gitlab,!225Resolve "Collections mehr hervorheben"
package at.ac.uibk.gitsearch.repository.search;
import at.ac.uibk.gitsearch.domain.User;
import java.util.stream.Stream;
import org.apache.commons.lang3.NotImplementedException;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
/**
* Spring Data Elasticsearch repository for the User entity.
*/
public interface UserSearchRepository extends ElasticsearchRepository<User, Long>, UserSearchRepositoryInternal {}
interface UserSearchRepositoryInternal {
Stream<User> search(String query);
}
class UserSearchRepositoryInternalImpl implements UserSearchRepositoryInternal {
@Override
public Stream<User> search(String query) {
throw new NotImplementedException("this function is temporarily disabled :-)");
}
}
package at.ac.uibk.gitsearch.web.rest;
import at.ac.uibk.gitsearch.repository.search.UserSearchRepository;
import at.ac.uibk.gitsearch.service.UserService;
import at.ac.uibk.gitsearch.service.dto.UserDTO;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;
import org.apache.commons.lang3.NotImplementedException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.domain.Page;
......@@ -30,7 +28,6 @@ public class PublicUserResource {
private final Logger log = LoggerFactory.getLogger(PublicUserResource.class);
private final UserService userService;
private final UserSearchRepository userSearchRepository;
private static final List<String> ALLOWED_ORDERED_PROPERTIES = Collections.unmodifiableList(
Arrays.asList("id", "login", "firstName", "lastName", "email", "activated", "langKey")
......@@ -79,9 +76,8 @@ public class PublicUserResource {
}
}
public PublicUserResource(UserSearchRepository userSearchRepository, UserService userService) {
public PublicUserResource(UserService userService) {
this.userService = userService;
this.userSearchRepository = userSearchRepository;
}
private static PublicUserDTO fromUserDTO(UserDTO u) {
......@@ -129,6 +125,6 @@ public class PublicUserResource {
*/
@GetMapping("/_search/users/{query}")
public List<UserDTO> search(@PathVariable String query) {
return StreamSupport.stream(userSearchRepository.search(query).spliterator(), false).map(UserDTO::new).collect(Collectors.toList());
throw new NotImplementedException("this function is temporarily disabled :-)");
}
}
package at.ac.uibk.gitsearch.repository.search;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.annotation.Configuration;
/**
* Configure a Mock version of {@link UserSearchRepository} to test the
* application without starting Elasticsearch.
*/
@Configuration
public class UserSearchRepositoryMockConfiguration {
@MockBean
private UserSearchRepository mockUserSearchRepository;
}
package at.ac.uibk.gitsearch.service;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import at.ac.uibk.gitsearch.IntegrationTest;
import at.ac.uibk.gitsearch.domain.User;
import at.ac.uibk.gitsearch.repository.jpa.UserRepository;
import at.ac.uibk.gitsearch.repository.search.UserSearchRepository;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
......@@ -50,14 +46,6 @@ class UserServiceIT {
@Autowired
private UserService userService;
/**
* This repository is mocked in the at.ac.uibk.gitsearch.repository.search test package.
*
* @see at.ac.uibk.gitsearch.repository.search.UserSearchRepositoryMockConfiguration
*/
@Autowired
private UserSearchRepository mockUserSearchRepository;
@Autowired
private AuditingHandler auditingHandler;
......@@ -172,9 +160,6 @@ class UserServiceIT {
userService.removeNotActivatedUsers();
users = userRepository.findAllByActivatedIsFalseAndActivationKeyIsNotNullAndCreatedDateBefore(threeDaysAgo);
assertThat(users).isEmpty();
// Verify Elasticsearch mock
verify(mockUserSearchRepository, times(1)).delete(user);
}
@Test
......@@ -192,8 +177,5 @@ class UserServiceIT {
userService.removeNotActivatedUsers();
Optional<User> maybeDbUser = userRepository.findById(dbUser.getId());
assertThat(maybeDbUser).contains(dbUser);
// Verify Elasticsearch mock
verify(mockUserSearchRepository, never()).delete(user);
}
}
......@@ -3,7 +3,6 @@ package at.ac.uibk.gitsearch.service;
import at.ac.uibk.gitsearch.IntegrationTest;
import at.ac.uibk.gitsearch.domain.User;
import at.ac.uibk.gitsearch.repository.jpa.UserRepository;
import at.ac.uibk.gitsearch.repository.search.UserSearchRepository;
import at.ac.uibk.gitsearch.service.util.UtilityService;
import java.util.List;
import java.util.concurrent.TimeUnit;
......@@ -11,7 +10,6 @@ import org.junit.Assert;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Timeout;
import org.mockito.Mockito;
import org.mockito.stubbing.Answer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
......@@ -26,14 +24,6 @@ class UtilityServiceIT {
@Autowired
private UtilityService utilityService;
/**
* This repository is mocked in the at.ac.uibk.gitsearch.repository.search test package.
*
* @see at.ac.uibk.gitsearch.repository.search.UserSearchRepositoryMockConfiguration
*/
@Autowired
private UserSearchRepository mockedUserSearchRepository;
@Autowired
private UserRepository userRepository;
......@@ -65,7 +55,6 @@ class UtilityServiceIT {
}
return null;
};
Mockito.when(mockedUserSearchRepository.save(Mockito.any())).then(ans);
// TODO not a very valuable test!
final List<String> treatedRepositories = utilityService.synchronizeElasticSearchFromEntities();
Assert.assertTrue(treatedRepositories.contains("userRepository"));
......
......@@ -3,13 +3,14 @@ package at.ac.uibk.gitsearch.web.rest;
import static org.hamcrest.Matchers.hasItem;
import static org.hamcrest.Matchers.hasItems;
import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.csrf;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import at.ac.uibk.gitsearch.IntegrationTest;
import at.ac.uibk.gitsearch.domain.User;
import at.ac.uibk.gitsearch.repository.jpa.UserRepository;
import at.ac.uibk.gitsearch.repository.search.UserSearchRepository;
import at.ac.uibk.gitsearch.security.AuthoritiesConstants;
import javax.persistence.EntityManager;
import org.junit.jupiter.api.BeforeEach;
......@@ -35,15 +36,6 @@ class PublicUserResourceIT {
@Autowired
private UserRepository userRepository;
/**
* This repository is mocked in the at.ac.uibk.gitsearch.repository.search test package.
*
* @see at.ac.uibk.gitsearch.repository.search.UserSearchRepositoryMockConfiguration
*/
@SuppressWarnings("unused")
@Autowired
private UserSearchRepository mockUserSearchRepository;
@Autowired
private EntityManager em;
......
......@@ -15,7 +15,6 @@ import at.ac.uibk.gitsearch.IntegrationTest;
import at.ac.uibk.gitsearch.domain.Authority;
import at.ac.uibk.gitsearch.domain.User;
import at.ac.uibk.gitsearch.repository.jpa.UserRepository;
import at.ac.uibk.gitsearch.repository.search.UserSearchRepository;
import at.ac.uibk.gitsearch.security.AuthoritiesConstants;
import at.ac.uibk.gitsearch.service.dto.AdminUserDTO;
import at.ac.uibk.gitsearch.service.mapper.UserMapper;
......@@ -72,14 +71,6 @@ class UserResourceIT {
@Autowired
private UserRepository userRepository;
/**
* This repository is mocked in the at.ac.uibk.gitsearch.repository.search test package.
*
* @see at.ac.uibk.gitsearch.repository.search.UserSearchRepositoryMockConfiguration
*/
@Autowired
private UserSearchRepository mockUserSearchRepository;
@Autowired
private UserMapper userMapper;
......@@ -209,7 +200,6 @@ class UserResourceIT {
void createUserWithExistingLogin() throws Exception {
// Initialize the database
userRepository.saveAndFlush(user);
mockUserSearchRepository.save(user);
int databaseSizeBeforeCreate = userRepository.findAll().size();
ManagedUserVM managedUserVM = new ManagedUserVM();
......@@ -242,7 +232,6 @@ class UserResourceIT {
void createUserWithExistingEmail() throws Exception {
// Initialize the database
userRepository.saveAndFlush(user);
mockUserSearchRepository.save(user);
int databaseSizeBeforeCreate = userRepository.findAll().size();
ManagedUserVM managedUserVM = new ManagedUserVM();
......@@ -296,8 +285,6 @@ class UserResourceIT {
// Initialize the database
userRepository.saveAndFlush(user);
mockUserSearchRepository.save(user);
assertThat(cacheManager.getCache(UserRepository.USERS_BY_LOGIN_CACHE).get(user.getLogin())).isNull();
// Get the user
......@@ -421,7 +408,6 @@ class UserResourceIT {
void updateUserExistingEmail() throws Exception {
// Initialize the database with 2 users
userRepository.saveAndFlush(user);
mockUserSearchRepository.save(user);
User anotherUser = new User();
anotherUser.setLogin("jhipster");
......@@ -433,7 +419,6 @@ class UserResourceIT {
anotherUser.setImageUrl("");
anotherUser.setLangKey("en");
userRepository.saveAndFlush(anotherUser);
mockUserSearchRepository.save(anotherUser);
// Update the user
User updatedUser = userRepository.findById(user.getId()).get();
......@@ -469,7 +454,6 @@ class UserResourceIT {
void updateUserExistingLogin() throws Exception {
// Initialize the database
userRepository.saveAndFlush(user);
mockUserSearchRepository.save(user);
User anotherUser = new User();
anotherUser.setLogin("jhipster");
......@@ -481,7 +465,6 @@ class UserResourceIT {
anotherUser.setImageUrl("");
anotherUser.setLangKey("en");
userRepository.saveAndFlush(anotherUser);
mockUserSearchRepository.save(anotherUser);
// Update the user
User updatedUser = userRepository.findById(user.getId()).get();
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment