]> git.somenet.org - pub/jan/dst18.git/blob - ass1-doc/src/test/java/dst/ass1/doc/tests/Ass1_4_1Test.java
Add template for assignment 1
[pub/jan/dst18.git] / ass1-doc / src / test / java / dst / ass1 / doc / tests / Ass1_4_1Test.java
1 package dst.ass1.doc.tests;
2
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertNotNull;
5
6 import java.util.Arrays;
7 import java.util.HashMap;
8 import java.util.Map;
9
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;
15
16 import com.mongodb.client.MongoCollection;
17 import com.mongodb.client.MongoDatabase;
18
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;
24
25 public class Ass1_4_1Test {
26
27     @ClassRule
28     public static EmbeddedMongo embeddedMongo = new EmbeddedMongo();
29
30     @Rule
31     public MongoService mongo = new MongoService();
32
33     private MockMaterial m1;
34     private MockMaterial m2;
35
36     private Map<String, Object> m1Properties;
37     private Map<String, Object> m2Properties;
38
39     @Before
40     public void setUp() throws Exception {
41         m1 = new MockMaterial(1L, "testType");
42         m2 = new MockMaterial(2L, "testType2");
43
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));
48
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));
53     }
54
55     @Test
56     public void insert_insertsDocumentsCorrectly() throws Exception {
57         IDocumentRepository documentRepository = mongo.getDocumentRepository();
58         MongoDatabase mongoDatabase = mongo.getMongoDatabase();
59
60         documentRepository.insert(m1, m1Properties);
61         documentRepository.insert(m2, m2Properties);
62
63         MongoCollection<Document> collection = mongoDatabase.getCollection(Constants.COLL_MATERIAL_DATA);
64         Map<Long, Document> map = MongoService.idMap(collection, d -> d.getLong(Constants.I_MATERIAL));
65
66         assertNotNull(map);
67         assertEquals(2, map.size());
68
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"));
75
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"));
82     }
83
84 }