package org.mongodb.morphia.mapping.validation.fieldrules;
import org.junit.Test;
import org.mongodb.morphia.TestBase;
import org.mongodb.morphia.annotations.Embedded;
import org.mongodb.morphia.annotations.Reference;
import org.mongodb.morphia.annotations.Serialized;
import org.mongodb.morphia.mapping.validation.ConstraintViolationException;
import org.mongodb.morphia.testutil.TestEntity;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
/**
* @author Uwe Schaefer, (us@thomas-daily.de)
*/
public class MapKeyDifferentFromStringTest extends TestBase {
@Test
public void testCheck() {
getMorphia().map(MapWithWrongKeyType1.class);
}
@Test(expected = ConstraintViolationException.class)
public void testInvalidKeyType() {
getMorphia().map(MapWithWrongKeyType3.class);
}
@Test(expected = ConstraintViolationException.class)
public void testInvalidReferenceType() {
getMorphia().map(MapWithWrongKeyType2.class);
}
public static class MapWithWrongKeyType1 extends TestEntity {
@Serialized
private Map<Integer, Integer> shouldBeOk = new HashMap<Integer, Integer>();
}
public static class MapWithWrongKeyType2 extends TestEntity {
@Reference
private Map<Integer, Integer> shouldBeOk = new HashMap<Integer, Integer>();
}
public static class MapWithWrongKeyType3 extends TestEntity {
@Embedded
private Map<BigDecimal, Integer> shouldBeOk = new HashMap<BigDecimal, Integer>();
}
}