package org.mongodb.morphia.mapping;
import org.bson.types.ObjectId;
import org.junit.Assert;
import org.junit.Test;
import org.mongodb.morphia.TestBase;
import org.mongodb.morphia.annotations.Id;
import java.net.URI;
import java.util.HashMap;
import java.util.Map;
/**
* @author ScottHernandez
*/
public class URIMappingTest extends TestBase {
@Test
public void testURIField() throws Exception {
final ContainsURI entity = new ContainsURI();
final URI testURI = new URI("http://lamest.local/test.html");
entity.uri = testURI;
getDs().save(entity);
final ContainsURI loaded = getDs().find(ContainsURI.class).get();
Assert.assertNotNull(loaded.uri);
Assert.assertEquals(testURI, loaded.uri);
}
@Test
public void testURIMap() throws Exception {
final ContainsURIKeyedMap entity = new ContainsURIKeyedMap();
final URI testURI = new URI("http://lamest.local/test.html");
entity.uris.put(testURI, "first");
getDs().save(entity);
final ContainsURIKeyedMap loaded = getDs().find(ContainsURIKeyedMap.class).get();
Assert.assertNotNull(loaded.uris);
Assert.assertEquals(1, loaded.uris.size());
Assert.assertEquals(testURI, loaded.uris.keySet().iterator().next());
}
private static class ContainsURI {
@Id
private ObjectId id;
private URI uri;
}
private static class ContainsURIKeyedMap {
private final Map<URI, String> uris = new HashMap<URI, String>();
@Id
private ObjectId id;
}
}