]> git.somenet.org - pub/jan/dst18.git/blob - ass1-doc/src/test/java/dst/ass1/doc/DocumentTestData.java
Fix dst18-vagrantfile to download the box by itself
[pub/jan/dst18.git] / ass1-doc / src / test / java / dst / ass1 / doc / DocumentTestData.java
1 package dst.ass1.doc;
2
3 import java.io.IOException;
4 import java.net.URL;
5 import java.util.List;
6 import java.util.Objects;
7 import java.util.Scanner;
8
9 import org.bson.Document;
10
11 import com.mongodb.client.MongoDatabase;
12
13 import dst.ass1.jpa.util.Constants;
14
15 public class DocumentTestData implements IDocumentTestData {
16
17     private String documentResource;
18
19     public DocumentTestData() {
20         this("documents.json");
21     }
22
23     public DocumentTestData(String documentResource) {
24         this.documentResource = documentResource;
25     }
26
27     @SuppressWarnings("unchecked")
28     @Override
29     public void insertTestData(MongoDatabase db) throws IOException {
30         URL resource = Objects.requireNonNull(getDocumentsResource());
31
32         String testDataJson = readFully(resource);
33         List<Document> documents = Document.parse(testDataJson).get("documents", List.class);
34         db.getCollection(Constants.COLL_MATERIAL_DATA).insertMany(documents);
35     }
36
37     private URL getDocumentsResource() {
38         return getClass().getClassLoader().getResource(documentResource);
39     }
40
41     private String readFully(URL resource) throws IOException {
42         try (Scanner scanner = new Scanner(resource.openStream())) {
43             return scanner.useDelimiter("\\Z").next();
44         }
45     }
46
47 }