package org.mongodb.morphia.mapping;
import com.mongodb.BasicDBObject;
import org.bson.types.ObjectId;
import org.junit.Assert;
import org.junit.Test;
import org.mongodb.morphia.TestBase;
import org.mongodb.morphia.annotations.Embedded;
import org.mongodb.morphia.annotations.Id;
import java.io.Serializable;
/**
* @author scott hernandez
*/
public class MapWithDotInKeyTest extends TestBase {
@Test
public void testMapping() throws Exception {
E e = new E();
e.mymap.put("a.b", "a");
e.mymap.put("c.e.g", "b");
try {
getDs().save(e);
} catch (Exception ex) {
return;
}
Assert.assertFalse("Should have got rejection for dot in field names", true);
e = getDs().get(e);
Assert.assertEquals("a", e.mymap.get("a.b"));
Assert.assertEquals("b", e.mymap.get("c.e.g"));
}
private static class Goo implements Serializable {
@Id
private ObjectId id = new ObjectId();
private String name;
Goo() {
}
Goo(final String n) {
name = n;
}
}
private static class E {
@Embedded
private final MyMap mymap = new MyMap();
@Id
private ObjectId id;
}
private static class MyMap extends BasicDBObject {
}
}