Project

General

Profile

1
package eu.dnetlib.pace.model;
2

    
3
import com.google.common.collect.Iterables;
4
import com.google.common.collect.Sets;
5
import com.google.common.collect.Sets.SetView;
6
import com.googlecode.protobuf.format.JsonFormat;
7
import eu.dnetlib.data.proto.FieldTypeProtos.Qualifier;
8
import eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty;
9
import eu.dnetlib.pace.AbstractProtoPaceTest;
10
import eu.dnetlib.pace.config.Config;
11
import eu.dnetlib.pace.model.adaptor.Pid;
12
import org.junit.Test;
13

    
14
import static org.junit.Assert.assertFalse;
15
import static org.junit.Assert.assertTrue;
16

    
17
public class ProtoDocumentBuilderTest extends AbstractProtoPaceTest {
18

    
19
	@Test
20
	public void test_serialise1() {
21

    
22
		final String id = "12345";
23

    
24
		final Config config = getResultFullConf();
25

    
26
		final MapDocument document = ProtoDocumentBuilder.newInstance(id, getResult(id), config.model());
27

    
28
		assertFalse(document.fieldNames().isEmpty());
29
		assertFalse(Iterables.isEmpty(document.fields()));
30

    
31
		System.out.println("original:\n" + document);
32

    
33
		final String stringDoc = MapDocumentSerializer.toString(document);
34

    
35
		System.out.println("srialization:\n" + stringDoc);
36

    
37
		final MapDocument decoded = MapDocumentSerializer.decode(stringDoc.getBytes());
38

    
39
		final SetView<String> diff = Sets.difference(document.fieldNames(), decoded.fieldNames());
40

    
41
		assertTrue(diff.isEmpty());
42

    
43
		System.out.println("decoded:\n" + decoded);
44
	}
45

    
46
	@Test
47
	public void test_serialise2() {
48

    
49
		final String id = "12345";
50
		final String path = "/eu/dnetlib/pace/model/gt.author.manghi1.json";
51

    
52
		final Config config = getPersonConf();
53

    
54
		final MapDocument document = ProtoDocumentBuilder.newInstance(id, getPersonGT(path).getEntity(), config.model());
55

    
56
		assertFalse(document.fieldNames().isEmpty());
57
		assertFalse(Iterables.isEmpty(document.fields()));
58

    
59
		System.out.println("original:\n" + document);
60

    
61
		final String stringDoc = MapDocumentSerializer.toString(document);
62

    
63
		System.out.println("srialization:\n" + stringDoc);
64

    
65
		final MapDocument decoded = MapDocumentSerializer.decode(stringDoc.getBytes());
66

    
67
		final SetView<String> diff = Sets.difference(document.fieldNames(), decoded.fieldNames());
68

    
69
		assertTrue(diff.isEmpty());
70

    
71
		System.out.println("decoded:\n" + decoded);
72
	}
73

    
74

    
75
	@Test
76
	public void testPidSerialization() {
77

    
78
		final StructuredProperty sp = StructuredProperty.newBuilder().setValue("1234").setQualifier(
79
				Qualifier.newBuilder().setClassid("doi").setClassname("doi").setSchemeid("dnet:pid_types").setSchemename("dnet:pid_types")).build();
80

    
81
		final String json = JsonFormat.printToString(sp);
82

    
83
		final Pid pid = Pid.fromOafJson(json);
84

    
85

    
86

    
87

    
88
	}
89

    
90
}
    (1-1/1)