1 package dst.ass1.doc.tests;
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertNotNull;
6 import java.util.Arrays;
7 import java.util.HashMap;
10 import org.bson.Document;
11 import org.junit.Before;
12 import org.junit.ClassRule;
13 import org.junit.Rule;
14 import org.junit.Test;
16 import com.mongodb.client.MongoCollection;
17 import com.mongodb.client.MongoDatabase;
19 import dst.ass1.doc.EmbeddedMongo;
20 import dst.ass1.doc.IDocumentRepository;
21 import dst.ass1.doc.MockMaterial;
22 import dst.ass1.doc.MongoService;
23 import dst.ass1.jpa.util.Constants;
25 public class Ass1_4_1Test {
28 public static EmbeddedMongo embeddedMongo = new EmbeddedMongo();
31 public MongoService mongo = new MongoService();
33 private MockMaterial m1;
34 private MockMaterial m2;
36 private Map<String, Object> m1Properties;
37 private Map<String, Object> m2Properties;
40 public void setUp() throws Exception {
41 m1 = new MockMaterial(1L, "testType");
42 m2 = new MockMaterial(2L, "testType2");
44 m1Properties = new HashMap<>();
45 m1Properties.put("1337", "7331");
46 m1Properties.put("Foo", "Bar");
47 m1Properties.put("Complex", Arrays.asList(1, 2, 3, 5, 8));
49 m2Properties = new HashMap<>();
50 m2Properties.put("123456", "654321");
51 m2Properties.put("F00", "B@r");
52 m2Properties.put("Complex2", Arrays.asList(4, 6, 7, 9));
56 public void insert_insertsDocumentsCorrectly() throws Exception {
57 IDocumentRepository documentRepository = mongo.getDocumentRepository();
58 MongoDatabase mongoDatabase = mongo.getMongoDatabase();
60 documentRepository.insert(m1, m1Properties);
61 documentRepository.insert(m2, m2Properties);
63 MongoCollection<Document> collection = mongoDatabase.getCollection(Constants.COLL_MATERIAL_DATA);
64 Map<Long, Document> map = MongoService.idMap(collection, d -> d.getLong(Constants.I_MATERIAL));
67 assertEquals(2, map.size());
69 Document document1 = map.get(1L);
70 assertEquals(1L, document1.get(Constants.I_MATERIAL));
71 assertEquals("testType", document1.get(Constants.M_MATERIAL_TYPE));
72 assertEquals("7331", document1.get("1337"));
73 assertEquals("Bar", document1.get("Foo"));
74 assertEquals(Arrays.asList(1, 2, 3, 5, 8), document1.get("Complex"));
76 Document document2 = map.get(2L);
77 assertEquals(2L, document2.get(Constants.I_MATERIAL));
78 assertEquals("testType2", document2.get(Constants.M_MATERIAL_TYPE));
79 assertEquals("654321", document2.get("123456"));
80 assertEquals("B@r", document2.get("F00"));
81 assertEquals(Arrays.asList(4, 6, 7, 9), document2.get("Complex2"));