package org.mongodb.morphia.mapping.primitives;
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.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class IntegerMappingTest extends TestBase {
@Test
public void testMapping() throws Exception {
getMorphia().map(Integers.class);
final Integers ent = new Integers();
ent.listWrapperArray.add(new Integer[]{1, 2});
ent.listPrimitiveArray.add(new int[]{2, 3, 12});
ent.listWrapper.addAll(Arrays.asList(1, 2));
ent.singlePrimitive = 100;
ent.singleWrapper = 47;
ent.primitiveArray = new int[]{5, 93};
ent.wrapperArray = new Integer[]{55, 16, 99};
ent.nestedPrimitiveArray = new int[][]{{}, {5, 93}};
ent.nestedWrapperArray = new Integer[][]{{55, 16, 99}, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, {0}};
getDs().save(ent);
final Integers loaded = getDs().get(ent);
Assert.assertNotNull(loaded.id);
Assert.assertArrayEquals(ent.listWrapperArray.get(0), loaded.listWrapperArray.get(0));
Assert.assertArrayEquals(ent.listWrapper.toArray(new Integer[0]), loaded.listWrapper.toArray(new Integer[0]));
Assert.assertArrayEquals(ent.listPrimitiveArray.get(0), loaded.listPrimitiveArray.get(0));
Assert.assertEquals(ent.singlePrimitive, loaded.singlePrimitive, 0);
Assert.assertEquals(ent.singleWrapper, loaded.singleWrapper, 0);
Assert.assertArrayEquals(ent.primitiveArray, loaded.primitiveArray);
Assert.assertArrayEquals(ent.wrapperArray, loaded.wrapperArray);
Assert.assertArrayEquals(ent.nestedPrimitiveArray, loaded.nestedPrimitiveArray);
Assert.assertArrayEquals(ent.nestedWrapperArray, loaded.nestedWrapperArray);
}
private static class Integers {
private final List<Integer[]> listWrapperArray = new ArrayList<Integer[]>();
private final List<int[]> listPrimitiveArray = new ArrayList<int[]>();
private final List<Integer> listWrapper = new ArrayList<Integer>();
@Id
private ObjectId id;
private int singlePrimitive;
private Integer singleWrapper;
private int[] primitiveArray;
private Integer[] wrapperArray;
private int[][] nestedPrimitiveArray;
private Integer[][] nestedWrapperArray;
}
}