Browse Source

Tweaks to tests, BasePerson class, common inheritance to test classes, tweaks to complex/simple type detection.

pull/1/head
Jon Brisbin 15 years ago committed by J. Brisbin
parent
commit
21048f211d
  1. 7
      spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/convert/MappingMongoConverter.java
  2. 11
      spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/mapping/MongoMappingConfigurationBuilder.java
  3. 2
      spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/mapping/MongoPersistentProperty.java
  4. 11
      spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/BasePerson.java
  5. 10
      spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/MappingTests.java
  6. 11
      spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/Person.java
  7. 32
      spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/PersonCustomIdName.java
  8. 33
      spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/PersonPojo.java

7
spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/convert/MappingMongoConverter.java

@ -58,7 +58,7 @@ public class MappingMongoConverter implements MongoConverter, ApplicationContext @@ -58,7 +58,7 @@ public class MappingMongoConverter implements MongoConverter, ApplicationContext
protected MappingContext mappingContext;
protected ApplicationContext applicationContext;
protected boolean autowirePersistentBeans = false;
protected boolean useFieldAccessOnly = false;
protected boolean useFieldAccessOnly = true;
public MappingMongoConverter() {
initializeConverters();
@ -367,13 +367,12 @@ public class MappingMongoConverter implements MongoConverter, ApplicationContext @@ -367,13 +367,12 @@ public class MappingMongoConverter implements MongoConverter, ApplicationContext
}
protected void writeMapInternal(Map<Object, Object> obj, DBObject dbo) {
Set<String> simpleTypes = MappingBeanHelper.getSimpleTypes();
for (Map.Entry<Object, Object> entry : obj.entrySet()) {
Object key = entry.getKey();
Object val = entry.getValue();
if (simpleTypes.contains(key.getClass().getName())) {
if (MappingBeanHelper.isSimpleType(key.getClass())) {
String simpleKey = conversionService.convert(key, String.class);
if (simpleTypes.contains(val.getClass().toString())) {
if (MappingBeanHelper.isSimpleType(val.getClass())) {
dbo.put(simpleKey, val);
} else {
DBObject newDbo = new BasicDBObject();

11
spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/mapping/MongoMappingConfigurationBuilder.java

@ -36,7 +36,6 @@ import org.springframework.data.mapping.model.*; @@ -36,7 +36,6 @@ import org.springframework.data.mapping.model.*;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Field;
import java.math.BigInteger;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
@ -53,15 +52,15 @@ public class MongoMappingConfigurationBuilder extends BasicMappingConfigurationB @@ -53,15 +52,15 @@ public class MongoMappingConfigurationBuilder extends BasicMappingConfigurationB
public MongoMappingConfigurationBuilder(MongoTemplate mongoTemplate) {
this.mongoTemplate = mongoTemplate;
// Augment simpleTypes with MongoDB-specific classes
Set<String> simpleTypes = MappingBeanHelper.getSimpleTypes();
simpleTypes.add(DBRef.class.getName());
simpleTypes.add(ObjectId.class.getName());
simpleTypes.add(CodeWScope.class.getName());
Set<Class<?>> simpleTypes = MappingBeanHelper.getSimpleTypes();
simpleTypes.add(com.mongodb.DBRef.class);
simpleTypes.add(ObjectId.class);
simpleTypes.add(CodeWScope.class);
}
@Override
public PersistentProperty<?> createPersistentProperty(Field field, PropertyDescriptor descriptor) throws MappingConfigurationException {
@SuppressWarnings({ "unchecked", "rawtypes" })
@SuppressWarnings({"unchecked", "rawtypes"})
PersistentProperty<?> property = new MongoPersistentProperty(field.getName(), field.getType(), field, descriptor);
if (field.isAnnotationPresent(Indexed.class)) {
Indexed index = field.getAnnotation(Indexed.class);

2
spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/mapping/MongoPersistentProperty.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2011 by the original author(s).
* Copyright (c) 2011 by the original author(s).
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

11
spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/BasePerson.java

@ -19,11 +19,14 @@ package org.springframework.data.document.mongodb.mapping; @@ -19,11 +19,14 @@ package org.springframework.data.document.mongodb.mapping;
/**
* @author Jon Brisbin <jbrisbin@vmware.com>
*/
public class BasePerson {
public abstract class BasePerson {
private Integer ssn;
private String firstName;
private String lastName;
protected Integer ssn;
protected String firstName;
protected String lastName;
public BasePerson() {
}
public BasePerson(Integer ssn, String firstName, String lastName) {
this.ssn = ssn;

10
spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/MappingTests.java

@ -16,9 +16,7 @@ @@ -16,9 +16,7 @@
package org.springframework.data.document.mongodb.mapping;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.document.mongodb.MongoTemplate;
@ -50,9 +48,6 @@ public class MappingTests { @@ -50,9 +48,6 @@ public class MappingTests {
@Autowired
BasicMappingContext mappingContext;
@Rule
public ExpectedException thrown = ExpectedException.none();
@Test
public void setUp() {
template.dropCollection("person");
@ -100,14 +95,12 @@ public class MappingTests { @@ -100,14 +95,12 @@ public class MappingTests {
@Test
@SuppressWarnings({"unchecked"})
public void testWriteEntity() {
Person p = new Person(123456789, "John", "Doe", 37);
Address addr = new Address();
addr.setLines(new String[]{"1234 W. 1st Street", "Apt. 12"});
addr.setCity("Anytown");
addr.setPostalCode(12345);
addr.setCountry("USA");
p.setAddress(addr);
Account acct = new Account();
acct.setBalance(1000.00f);
@ -115,8 +108,9 @@ public class MappingTests { @@ -115,8 +108,9 @@ public class MappingTests {
List<Account> accounts = new ArrayList<Account>();
accounts.add(acct);
p.setAccounts(accounts);
Person p = new Person(123456789, "John", "Doe", 37, addr);
p.setAccounts(accounts);
template.insert("person", p);
assertNotNull(p.getId());

11
spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/Person.java

@ -52,13 +52,6 @@ public class Person<T extends Address> { @@ -52,13 +52,6 @@ public class Person<T extends Address> {
@Autowired
private MongoTemplate mongoTemplate;
public Person(Integer ssn, String firstName, String lastName, Integer age) {
this.ssn = ssn;
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
}
@PersistenceConstructor
public Person(Integer ssn, String firstName, String lastName, Integer age, T address) {
this.ssn = ssn;
@ -80,6 +73,10 @@ public class Person<T extends Address> { @@ -80,6 +73,10 @@ public class Person<T extends Address> {
return ssn;
}
public void setSsn(Integer ssn) {
this.ssn = ssn;
}
public String getFirstName() {
return firstName;
}

32
spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/PersonCustomIdName.java

@ -22,18 +22,13 @@ import org.springframework.data.annotation.Id; @@ -22,18 +22,13 @@ import org.springframework.data.annotation.Id;
/**
* @author Jon Brisbin <jbrisbin@vmware.com>
*/
public class PersonCustomIdName {
public class PersonCustomIdName extends BasePerson {
@Id
private ObjectId customId;
private Integer ssn;
private String firstName;
private String lastName;
public PersonCustomIdName(Integer ssn, String firstName, String lastName) {
this.ssn = ssn;
this.firstName = firstName;
this.lastName = lastName;
super(ssn, firstName, lastName);
}
public ObjectId getCustomId() {
@ -44,27 +39,4 @@ public class PersonCustomIdName { @@ -44,27 +39,4 @@ public class PersonCustomIdName {
this.customId = customId;
}
public Integer getSsn() {
return ssn;
}
public void setSsn(Integer ssn) {
this.ssn = ssn;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}

33
spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/PersonPojo.java

@ -21,17 +21,12 @@ import org.bson.types.ObjectId; @@ -21,17 +21,12 @@ import org.bson.types.ObjectId;
/**
* @author Jon Brisbin <jbrisbin@vmware.com>
*/
public class PersonPojo {
public class PersonPojo extends BasePerson {
private ObjectId id;
private Integer ssn;
private String firstName;
private String lastName;
public PersonPojo(Integer ssn, String firstName, String lastName) {
this.ssn = ssn;
this.firstName = firstName;
this.lastName = lastName;
super(ssn, firstName, lastName);
}
public ObjectId getId() {
@ -41,28 +36,4 @@ public class PersonPojo { @@ -41,28 +36,4 @@ public class PersonPojo {
public void setId(ObjectId id) {
this.id = id;
}
public Integer getSsn() {
return ssn;
}
public void setSsn(Integer ssn) {
this.ssn = ssn;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}

Loading…
Cancel
Save