109 lines
3.6 KiB
Java
109 lines
3.6 KiB
Java
package com.baeldung.persistence.query;
|
|
|
|
import static org.hamcrest.MatcherAssert.assertThat;
|
|
import static org.hamcrest.collection.IsIn.isIn;
|
|
import static org.hamcrest.core.IsNot.not;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
import org.junit.Before;
|
|
import org.junit.Test;
|
|
import org.junit.runner.RunWith;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.test.annotation.Rollback;
|
|
import org.springframework.test.context.ContextConfiguration;
|
|
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import com.baeldung.persistence.dao.IUserDAO;
|
|
import com.baeldung.persistence.model.User;
|
|
import com.baeldung.spring.PersistenceConfig;
|
|
import com.baeldung.web.util.SearchCriteria;
|
|
|
|
@RunWith(SpringJUnit4ClassRunner.class)
|
|
@ContextConfiguration(classes = { PersistenceConfig.class })
|
|
@Transactional
|
|
@Rollback
|
|
public class JPACriteriaQueryIntegrationTest {
|
|
|
|
@Autowired
|
|
private IUserDAO userApi;
|
|
|
|
private User userJohn;
|
|
|
|
private User userTom;
|
|
|
|
@Before
|
|
public void init() {
|
|
userJohn = new User();
|
|
userJohn.setFirstName("john");
|
|
userJohn.setLastName("doe");
|
|
userJohn.setEmail("john@doe.com");
|
|
userJohn.setAge(22);
|
|
userApi.save(userJohn);
|
|
|
|
userTom = new User();
|
|
userTom.setFirstName("tom");
|
|
userTom.setLastName("doe");
|
|
userTom.setEmail("tom@doe.com");
|
|
userTom.setAge(26);
|
|
userApi.save(userTom);
|
|
}
|
|
|
|
@Test
|
|
public void givenFirstAndLastName_whenGettingListOfUsers_thenCorrect() {
|
|
final List<SearchCriteria> params = new ArrayList<SearchCriteria>();
|
|
params.add(new SearchCriteria("firstName", ":", "john"));
|
|
params.add(new SearchCriteria("lastName", ":", "doe"));
|
|
|
|
final List<User> results = userApi.searchUser(params);
|
|
|
|
assertThat(userJohn, isIn(results));
|
|
assertThat(userTom, not(isIn(results)));
|
|
}
|
|
|
|
@Test
|
|
public void givenLast_whenGettingListOfUsers_thenCorrect() {
|
|
final List<SearchCriteria> params = new ArrayList<SearchCriteria>();
|
|
params.add(new SearchCriteria("lastName", ":", "doe"));
|
|
|
|
final List<User> results = userApi.searchUser(params);
|
|
assertThat(userJohn, isIn(results));
|
|
assertThat(userTom, isIn(results));
|
|
}
|
|
|
|
@Test
|
|
public void givenLastAndAge_whenGettingListOfUsers_thenCorrect() {
|
|
final List<SearchCriteria> params = new ArrayList<SearchCriteria>();
|
|
params.add(new SearchCriteria("lastName", ":", "doe"));
|
|
params.add(new SearchCriteria("age", ">", "25"));
|
|
|
|
final List<User> results = userApi.searchUser(params);
|
|
|
|
assertThat(userTom, isIn(results));
|
|
assertThat(userJohn, not(isIn(results)));
|
|
}
|
|
|
|
@Test
|
|
public void givenWrongFirstAndLast_whenGettingListOfUsers_thenCorrect() {
|
|
final List<SearchCriteria> params = new ArrayList<SearchCriteria>();
|
|
params.add(new SearchCriteria("firstName", ":", "adam"));
|
|
params.add(new SearchCriteria("lastName", ":", "fox"));
|
|
|
|
final List<User> results = userApi.searchUser(params);
|
|
assertThat(userJohn, not(isIn(results)));
|
|
assertThat(userTom, not(isIn(results)));
|
|
}
|
|
|
|
@Test
|
|
public void givenPartialFirst_whenGettingListOfUsers_thenCorrect() {
|
|
final List<SearchCriteria> params = new ArrayList<SearchCriteria>();
|
|
params.add(new SearchCriteria("firstName", ":", "jo"));
|
|
|
|
final List<User> results = userApi.searchUser(params);
|
|
|
|
assertThat(userJohn, isIn(results));
|
|
assertThat(userTom, not(isIn(results)));
|
|
}
|
|
} |