From 9416dd6358249eb3e4aec20928e7f8fc4d073c0e Mon Sep 17 00:00:00 2001 From: Thomas Risberg Date: Fri, 8 Apr 2011 19:32:12 -0400 Subject: [PATCH] DATADOC-86 added test case for saving/updating objects containing a List --- .../document/mongodb/MongoTemplateTests.java | 31 ++++++++ .../document/mongodb/PersonWithAList.java | 73 +++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/PersonWithAList.java diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/MongoTemplateTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/MongoTemplateTests.java index dedc8598c..93352867f 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/MongoTemplateTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/MongoTemplateTests.java @@ -331,4 +331,35 @@ public class MongoTemplateTests { PersonWithIdPropertyOfTypeObjectId notFound2 = template.findOne(q2, PersonWithIdPropertyOfTypeObjectId.class); assertThat(notFound2, nullValue()); } + + @Test + public void testAddingToListWithSimpleConverter() throws Exception { + testAddingToList(this.template); + } + + //@Test + public void testAddingToListWithMappingConverter() throws Exception { + testAddingToList(this.mappingTemplate); + } + + private void testAddingToList(MongoTemplate template) { + PersonWithAList p = new PersonWithAList(); + p.setFirstName("Sven"); + p.setAge(22); + template.insert(p); + + Query q1 = new Query(Criteria.where("id").is(p.getId())); + PersonWithAList p2 = template.findOne(q1, PersonWithAList.class); + assertThat(p2, notNullValue()); + assertThat(p2.getWishList().size(), is(0)); + + p2.addToWishList("please work!"); + + template.save(p2); + + PersonWithAList p3 = template.findOne(q1, PersonWithAList.class); + assertThat(p3, notNullValue()); + assertThat(p3.getWishList().size(), is(1)); + } + } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/PersonWithAList.java b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/PersonWithAList.java new file mode 100644 index 000000000..bbba198fc --- /dev/null +++ b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/PersonWithAList.java @@ -0,0 +1,73 @@ +/* + * Copyright 2010-2011 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.data.document.mongodb; + +import java.util.ArrayList; +import java.util.List; + +public class PersonWithAList { + + private String id; + + private String firstName; + + private int age; + + private List wishList = new ArrayList(); + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + public List getWishList() { + return wishList; + } + + public void setWishList(List wishList) { + this.wishList = wishList; + } + + public void addToWishList(String wish) { + this.wishList.add(wish); + } + + @Override + public String toString() { + return "PersonWithAList [id=" + id + ", firstName=" + firstName + + ", age=" + age + ", wishList=" + wishList + "]"; + } + +}