Added the example with MongoRepository

This commit is contained in:
coach88
2015-07-30 15:00:47 +03:00
parent 973227f23a
commit 2e54ddc841
5 changed files with 151 additions and 130 deletions

View File

@@ -3,14 +3,19 @@ package org.baeldung.repository;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import java.util.List;
import org.baeldung.config.MongoConfig;
import org.baeldung.model.User;
import org.baeldung.repository.UserRepository;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
@@ -18,8 +23,9 @@ import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes={MongoConfig.class, UserRepository.class})
@ContextConfiguration(classes = MongoConfig.class)
public class UserRepositoryIntegrationTest {
@Autowired
private UserRepository userRepository;
@@ -40,7 +46,7 @@ public class UserRepositoryIntegrationTest {
public void testInsert() {
User user = new User();
user.setName("Jon");
userRepository.insertUser(user);
userRepository.insert(user);
assertThat(mongoOps.findOne(Query.query(Criteria.where("name").is("Jon")), User.class).getName(), is("Jon"));
}
@@ -49,84 +55,84 @@ public class UserRepositoryIntegrationTest {
public void testSave() {
User user = new User();
user.setName("Jack");
userRepository.insertUser(user);
mongoOps.insert(user);
user = mongoOps.findOne(Query.query(Criteria.where("name").is("Jack")), User.class);
String id = user.getId();
user.setName("Jim");
userRepository.saveUser(user);
userRepository.save(user);
assertThat(mongoOps.findOne(Query.query(Criteria.where("id").is(id)), User.class).getName(), is("Jim"));
}
@Test
public void testUpdateFirst() {
User user = new User();
user.setName("Alex");
mongoOps.insert(user);
user = new User();
user.setName("Alex");
mongoOps.insert(user);
userRepository.updateFirstUser("Alex", "James");
assertThat(mongoOps.find(Query.query(Criteria.where("name").is("James")), User.class).size(), is(1));
assertThat(mongoOps.find(Query.query(Criteria.where("name").is("Alex")), User.class).size(), is(1));
}
@Test
public void testUpdateMulti() {
User user = new User();
user.setName("Eugen");
mongoOps.insert(user);
user = new User();
user.setName("Eugen");
mongoOps.insert(user);
userRepository.updateMultiUser("Eugen", "Victor");
assertThat(mongoOps.find(Query.query(Criteria.where("name").is("Victor")), User.class).size(), is(2));
assertThat(mongoOps.find(Query.query(Criteria.where("name").is("Eugen")), User.class).size(), is(0));
}
@Test
public void testFindAndModify() {
User user = new User();
user.setName("Markus");
mongoOps.insert(user);
user = userRepository.findAndModifyUser("Markus", "Nick");
assertThat(user.getName(), is("Markus"));
assertThat(mongoOps.find(Query.query(Criteria.where("name").is("Nick")), User.class).size(), is(1));
assertThat(mongoOps.find(Query.query(Criteria.where("name").is("Markus")), User.class).size(), is(0));
}
@Test
public void testUpsert() {
User user = new User();
user.setName("Markus");
mongoOps.insert(user);
userRepository.upsertUser("Markus", "Nick");
assertThat(mongoOps.find(Query.query(Criteria.where("name").is("Nick")), User.class).size(), is(1));
assertThat(mongoOps.find(Query.query(Criteria.where("name").is("Markus")), User.class).size(), is(0));
}
@Test
public void testRemove() {
public void testDelete() {
User user = new User();
user.setName("Benn");
mongoOps.insert(user);
assertThat(mongoOps.find(Query.query(Criteria.where("name").is("Benn")), User.class).size(), is(1));
userRepository.removeUser(user);
userRepository.delete(user);
assertThat(mongoOps.find(Query.query(Criteria.where("name").is("Benn")), User.class).size(), is(0));
}
@Test
public void testFindOne() {
User user = new User();
user.setName("Chris");
mongoOps.insert(user);
user = mongoOps.findOne(Query.query(Criteria.where("name").is("Chris")), User.class);
User foundUser = userRepository.findOne(user.getId());
assertThat(user.getName(), is(foundUser.getName()));
}
@Test
public void testExists() {
User user = new User();
user.setName("Harris");
mongoOps.insert(user);
user = mongoOps.findOne(Query.query(Criteria.where("name").is("Harris")), User.class);
boolean isExists = userRepository.exists(user.getId());
assertThat(isExists, is(true));
}
@Test
public void testFindAllWithSort() {
User user = new User();
user.setName("Brendan");
mongoOps.insert(user);
user = new User();
user.setName("Adam");
mongoOps.insert(user);
List<User> users = userRepository.findAll(new Sort(Sort.Direction.ASC,"name"));
assertThat(users.size(), is(2));
assertThat(users.get(0).getName(), is("Adam"));
assertThat(users.get(1).getName(), is("Brendan"));
}
@Test
public void testFindAllWithPageable() {
User user = new User();
user.setName("Brendan");
mongoOps.insert(user);
user = new User();
user.setName("Adam");
mongoOps.insert(user);
Pageable pageableRequest = new PageRequest(0, 2);
Page<User> users = userRepository.findAll(pageableRequest);
assertThat(users.getTotalPages(), is(1));
assertThat(users.iterator().next().getName(), is("Brendan"));
}
}