Project

General

Profile

1
package eu.dnetlib.iis.export.actionmanager;
2

    
3
import static org.junit.Assert.assertEquals;
4

    
5
import org.junit.Test;
6

    
7
import eu.dnetlib.data.proto.KindProtos.Kind;
8
import eu.dnetlib.data.proto.OafProtos.Oaf;
9
import eu.dnetlib.data.proto.OafProtos.OafEntity;
10
import eu.dnetlib.data.proto.ResultProtos.Result;
11
import eu.dnetlib.data.proto.ResultProtos.Result.Context;
12
import eu.dnetlib.data.proto.ResultProtos.Result.Metadata;
13
import eu.dnetlib.data.proto.TypeProtos.Type;
14

    
15
public class ProtoBuffMergingTest {
16

    
17

    
18
	@Test
19
	public void testMergeArrays() throws Exception {
20
		String contextId1 = "ctxId1";
21
		String contextId2 = "ctxId2";
22
		
23
		Oaf oaf1 = buildOaf(contextId1);
24
		Oaf oaf2 = buildOaf(contextId2);
25
		Oaf mergedBuilder = Oaf.newBuilder().mergeFrom(oaf1).mergeFrom(oaf2).build();
26
		assertEquals(1, oaf1.getEntity().getResult().getMetadata().getContextCount());
27
		assertEquals(1, oaf2.getEntity().getResult().getMetadata().getContextCount());
28
		assertEquals(2, mergedBuilder.getEntity().getResult().getMetadata().getContextCount());
29
		assertEquals(contextId1, mergedBuilder.getEntity().getResult().getMetadata().getContext(0).getId());
30
		assertEquals(contextId2, mergedBuilder.getEntity().getResult().getMetadata().getContext(1).getId());
31
	}
32
	
33
	Oaf buildOaf(String contextId) {
34
		Oaf.Builder oafBuilder = Oaf.newBuilder();
35
		oafBuilder.setKind(Kind.entity);
36
		oafBuilder.setTimestamp(System.currentTimeMillis());
37
		OafEntity.Builder entityBuilder = OafEntity.newBuilder();
38
		entityBuilder.setId("id");
39
		entityBuilder.setType(Type.result);
40
		Result.Builder resultBuilder = Result.newBuilder();
41
		Metadata.Builder metaBuilder = Metadata.newBuilder();
42
		metaBuilder.addContext(Context.newBuilder().setId(contextId).build());
43
		resultBuilder.setMetadata(metaBuilder.build());
44
		entityBuilder.setResult(resultBuilder.build());
45
		oafBuilder.setEntity(entityBuilder.build());
46
		return oafBuilder.build();
47
	}
48
}
(2-2/2)