]> git.somenet.org - pub/jan/dst18.git/blob - ass1-doc/src/test/java/dst/ass1/doc/tests/Ass1_4_3_02Test.java
Add template for assignment 1
[pub/jan/dst18.git] / ass1-doc / src / test / java / dst / ass1 / doc / tests / Ass1_4_3_02Test.java
1 package dst.ass1.doc.tests;
2
3 import static org.hamcrest.CoreMatchers.hasItems;
4 import static org.junit.Assert.assertEquals;
5 import static org.junit.Assert.assertNotNull;
6 import static org.junit.Assert.assertThat;
7
8 import java.util.List;
9 import java.util.Map;
10 import java.util.stream.Collectors;
11
12 import org.bson.Document;
13 import org.junit.ClassRule;
14 import org.junit.Rule;
15 import org.junit.Test;
16
17 import dst.ass1.doc.DocumentTestData;
18 import dst.ass1.doc.EmbeddedMongo;
19 import dst.ass1.doc.MongoService;
20
21 public class Ass1_4_3_02Test {
22
23     @ClassRule
24     public static EmbeddedMongo embeddedMongo = new EmbeddedMongo();
25
26     @Rule
27     public MongoService mongo = new MongoService(new DocumentTestData());
28
29     @Test
30     public void getDocumentStatistics_returnsCorrectStatistics() throws Exception {
31         List<Document> documentStatistics = mongo.getDocumentQuery().getDocumentStatistics();
32         assertNotNull(documentStatistics);
33         assertEquals(3, documentStatistics.size());
34
35         List<String> types = documentStatistics.stream().map(d -> d.getString("_id")).collect(Collectors.toList());
36         assertThat("expected three aggregation keys", types, hasItems("single-choice", "multiple-choice", "text"));
37
38         Map<String, Double> dsMap = documentStatistics.stream().collect(Collectors.toMap(
39                 d -> d.getString("_id"),
40                 d -> d.getDouble("value"))
41         );
42
43         assertEquals(4.0d, dsMap.get("single-choice"), 0);
44         assertEquals(1.0d, dsMap.get("multiple-choice"), 0);
45         assertEquals(7.0d, dsMap.get("text"), 0);
46     }
47
48 }