From c1733061f727bbec259808371ccba24003740654 Mon Sep 17 00:00:00 2001 From: coach88 Date: Fri, 31 Jul 2015 21:00:02 +0300 Subject: [PATCH 1/3] Naming tests according TDD --- .../repository/UserRepositoryIntegrationTest.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/spring-data-mongodb/src/test/java/org/baeldung/repository/UserRepositoryIntegrationTest.java b/spring-data-mongodb/src/test/java/org/baeldung/repository/UserRepositoryIntegrationTest.java index b5c7befa16..6edea0b3c5 100644 --- a/spring-data-mongodb/src/test/java/org/baeldung/repository/UserRepositoryIntegrationTest.java +++ b/spring-data-mongodb/src/test/java/org/baeldung/repository/UserRepositoryIntegrationTest.java @@ -43,7 +43,7 @@ public class UserRepositoryIntegrationTest { } @Test - public void testInsert() { + public void whenInsertingUser_thenUserIsInserted() { User user = new User(); user.setName("Jon"); userRepository.insert(user); @@ -52,7 +52,7 @@ public class UserRepositoryIntegrationTest { } @Test - public void testSave() { + public void givenUserExists_whenSavingExistUser_thenUserIsUpdated() { User user = new User(); user.setName("Jack"); mongoOps.insert(user); @@ -67,7 +67,7 @@ public class UserRepositoryIntegrationTest { } @Test - public void testDelete() { + public void givenUserExists_whenDeletingUser_thenUserIsDeleted() { User user = new User(); user.setName("Benn"); mongoOps.insert(user); @@ -78,7 +78,7 @@ public class UserRepositoryIntegrationTest { } @Test - public void testFindOne() { + public void givenUserExists_whenFindingUser_thenUserIsFound() { User user = new User(); user.setName("Chris"); mongoOps.insert(user); @@ -90,7 +90,7 @@ public class UserRepositoryIntegrationTest { } @Test - public void testExists() { + public void givenUserExists_whenCheckingDoesUserExist_thenUserIsExist() { User user = new User(); user.setName("Harris"); mongoOps.insert(user); @@ -102,7 +102,7 @@ public class UserRepositoryIntegrationTest { } @Test - public void testFindAllWithSort() { + public void givenUsersExist_whenFindingAllUsersWithSorting_thenUsersAreFoundAndSorted() { User user = new User(); user.setName("Brendan"); mongoOps.insert(user); @@ -119,7 +119,7 @@ public class UserRepositoryIntegrationTest { } @Test - public void testFindAllWithPageable() { + public void givenUsersExist_whenFindingAllUsersWithPagination_thenUsersAreFoundAndOrderedOnPage() { User user = new User(); user.setName("Brendan"); mongoOps.insert(user); From d1263934d3b1b5561aebe329769e16e9d35f9940 Mon Sep 17 00:00:00 2001 From: coach88 Date: Fri, 31 Jul 2015 22:18:25 +0300 Subject: [PATCH 2/3] Added tests with MongoTemplate --- .../org/baeldung/service/UserService.java | 66 --------- .../MongoTemplateIntegrationTest.java | 125 ++++++++++++++++++ 2 files changed, 125 insertions(+), 66 deletions(-) delete mode 100644 spring-data-mongodb/src/main/java/org/baeldung/service/UserService.java create mode 100644 spring-data-mongodb/src/test/java/org/baeldung/mongotemplate/MongoTemplateIntegrationTest.java diff --git a/spring-data-mongodb/src/main/java/org/baeldung/service/UserService.java b/spring-data-mongodb/src/main/java/org/baeldung/service/UserService.java deleted file mode 100644 index 06a6735340..0000000000 --- a/spring-data-mongodb/src/main/java/org/baeldung/service/UserService.java +++ /dev/null @@ -1,66 +0,0 @@ -package org.baeldung.service; - -import java.util.List; - -import org.baeldung.model.User; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.mongodb.core.MongoTemplate; -import org.springframework.data.mongodb.core.query.Criteria; -import org.springframework.data.mongodb.core.query.Query; -import org.springframework.data.mongodb.core.query.Update; - -import com.mongodb.WriteResult; - -public class UserService { - - @Autowired - private MongoTemplate mongoTemplate; - - public void insertUser(final User user) { - mongoTemplate.insert(user, "user"); - } - - public List listUser() { - return mongoTemplate.findAll(User.class, "user"); - } - - public void removeUser(final User user) { - mongoTemplate.remove(user, "user"); - } - - public void saveUser(final User user) { - mongoTemplate.save(user, "user"); - } - - public User findAndModifyUser(final String name, final String newName) { - final Query query = new Query(); - query.addCriteria(Criteria.where("name").is(name)); - final Update update = new Update(); - update.set("name", newName); - return mongoTemplate.findAndModify(query, update, User.class); - } - - public void updateFirstUser(final String name, final String newName) { - final Query query = new Query(); - query.addCriteria(Criteria.where("name").is(name)); - final Update update = new Update(); - update.set("name", newName); - mongoTemplate.updateFirst(query, update, User.class); - } - - public WriteResult upsertUser(final String name, final String newName) { - final Query query = new Query(); - query.addCriteria(Criteria.where("name").is(name)); - final Update update = new Update(); - update.set("name", newName); - return mongoTemplate.upsert(query, update, User.class); - } - - public void updateMultiUser(final String name, final String newName) { - final Query query = new Query(); - query.addCriteria(Criteria.where("name").is(name)); - final Update update = new Update(); - update.set("name", newName); - mongoTemplate.updateMulti(query, update, User.class); - } -} diff --git a/spring-data-mongodb/src/test/java/org/baeldung/mongotemplate/MongoTemplateIntegrationTest.java b/spring-data-mongodb/src/test/java/org/baeldung/mongotemplate/MongoTemplateIntegrationTest.java new file mode 100644 index 0000000000..3868715714 --- /dev/null +++ b/spring-data-mongodb/src/test/java/org/baeldung/mongotemplate/MongoTemplateIntegrationTest.java @@ -0,0 +1,125 @@ +package org.baeldung.mongotemplate; + +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; + +import org.baeldung.config.MongoConfig; +import org.baeldung.model.User; +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.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.mongodb.core.query.Update; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = MongoConfig.class) +public class MongoTemplateIntegrationTest { + + @Autowired + private MongoTemplate mongoTemplate; + + @Before + public void testSetup() { + mongoTemplate.createCollection(User.class); + } + + @After + public void tearDown() { + mongoTemplate.dropCollection(User.class); + } + + @Test + public void whenInsertingUser_thenUserIsInserted() { + User user = new User(); + user.setName("Jon"); + mongoTemplate.insert(user); + } + + @Test + public void givenUserExists_whenSavingExistUser_thenUserIsUpdated() { + User user = new User(); + user.setName("Jack"); + mongoTemplate.insert(user); + + user = new User(); + user.setName("Jim"); + mongoTemplate.save(user); + } + + @Test + public void givenUsersExist_whenUpdatingFirstUser_thenFirstUserIsUpdated() { + User user = new User(); + user.setName("Alex"); + mongoTemplate.insert(user); + + user = new User(); + user.setName("Alex"); + mongoTemplate.insert(user); + + Query query = new Query(); + query.addCriteria(Criteria.where("name").is("Alex")); + Update update = new Update(); + update.set("name", "James"); + mongoTemplate.updateFirst(query, update, User.class); + } + + @Test + public void givenUsersExist_whenUpdatingMultiUser_thenAllUserAreUpdated() { + User user = new User(); + user.setName("Eugen"); + mongoTemplate.insert(user); + + user = new User(); + user.setName("Eugen"); + mongoTemplate.insert(user); + + Query query = new Query(); + query.addCriteria(Criteria.where("name").is("Eugen")); + Update update = new Update(); + update.set("name", "Victor"); + mongoTemplate.updateMulti(query, update, User.class); + } + + @Test + public void givenUserExists_whenFindingAndModifyingUser_thenUserIsReturnedAndUpdated() { + User user = new User(); + user.setName("Markus"); + mongoTemplate.insert(user); + + Query query = new Query(); + query.addCriteria(Criteria.where("name").is("Markus")); + Update update = new Update(); + update.set("name", "Nick"); + user = mongoTemplate.findAndModify(query, update, User.class); + assertThat(user.getName(),is("Markus")); + } + + @Test + public void givenUserExists_whenUpsertingUser_thenUserIsUpdated() { + User user = new User(); + user.setName("Markus"); + mongoTemplate.insert(user); + + Query query = new Query(); + query.addCriteria(Criteria.where("name").is("Markus")); + Update update = new Update(); + update.set("name", "Nick"); + mongoTemplate.upsert(query, update, User.class); + } + + @Test + public void givenUserExists_whenRemovingUser_thenUserIsRemoved() { + User user = new User(); + user.setName("Benn"); + mongoTemplate.insert(user); + + mongoTemplate.remove(user, "user"); + } + +} From ece3508dd6147816e15e2c14740832ef4beee290 Mon Sep 17 00:00:00 2001 From: coach88 Date: Sat, 1 Aug 2015 13:24:58 +0300 Subject: [PATCH 3/3] Fix formatting and monor cleanup --- .../MongoTemplateIntegrationTest.java | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/spring-data-mongodb/src/test/java/org/baeldung/mongotemplate/MongoTemplateIntegrationTest.java b/spring-data-mongodb/src/test/java/org/baeldung/mongotemplate/MongoTemplateIntegrationTest.java index 3868715714..9a9e5b87f8 100644 --- a/spring-data-mongodb/src/test/java/org/baeldung/mongotemplate/MongoTemplateIntegrationTest.java +++ b/spring-data-mongodb/src/test/java/org/baeldung/mongotemplate/MongoTemplateIntegrationTest.java @@ -20,7 +20,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = MongoConfig.class) public class MongoTemplateIntegrationTest { - + @Autowired private MongoTemplate mongoTemplate; @@ -33,10 +33,10 @@ public class MongoTemplateIntegrationTest { public void tearDown() { mongoTemplate.dropCollection(User.class); } - + @Test public void whenInsertingUser_thenUserIsInserted() { - User user = new User(); + final User user = new User(); user.setName("Jon"); mongoTemplate.insert(user); } @@ -46,7 +46,7 @@ public class MongoTemplateIntegrationTest { User user = new User(); user.setName("Jack"); mongoTemplate.insert(user); - + user = new User(); user.setName("Jim"); mongoTemplate.save(user); @@ -61,7 +61,7 @@ public class MongoTemplateIntegrationTest { user = new User(); user.setName("Alex"); mongoTemplate.insert(user); - + Query query = new Query(); query.addCriteria(Criteria.where("name").is("Alex")); Update update = new Update(); @@ -78,7 +78,7 @@ public class MongoTemplateIntegrationTest { user = new User(); user.setName("Eugen"); mongoTemplate.insert(user); - + Query query = new Query(); query.addCriteria(Criteria.where("name").is("Eugen")); Update update = new Update(); @@ -91,13 +91,13 @@ public class MongoTemplateIntegrationTest { User user = new User(); user.setName("Markus"); mongoTemplate.insert(user); - + Query query = new Query(); query.addCriteria(Criteria.where("name").is("Markus")); Update update = new Update(); update.set("name", "Nick"); user = mongoTemplate.findAndModify(query, update, User.class); - assertThat(user.getName(),is("Markus")); + assertThat(user.getName(), is("Markus")); } @Test @@ -105,7 +105,7 @@ public class MongoTemplateIntegrationTest { User user = new User(); user.setName("Markus"); mongoTemplate.insert(user); - + Query query = new Query(); query.addCriteria(Criteria.where("name").is("Markus")); Update update = new Update(); @@ -115,10 +115,10 @@ public class MongoTemplateIntegrationTest { @Test public void givenUserExists_whenRemovingUser_thenUserIsRemoved() { - User user = new User(); + final User user = new User(); user.setName("Benn"); mongoTemplate.insert(user); - + mongoTemplate.remove(user, "user"); }