Project

General

Profile

1 61341 alessia.ba
package eu.dnetlib.openaire.directindex.api;
2 47423 michele.ar
3 59797 miriam.bag
import java.util.ArrayList;
4 61341 alessia.ba
import java.util.Collection;
5 59797 miriam.bag
import java.util.List;
6 47423 michele.ar
import java.util.Map;
7
import java.util.Map.Entry;
8
9 61341 alessia.ba
import com.google.common.collect.Lists;
10
import com.google.common.collect.Maps;
11 59797 miriam.bag
import org.junit.Assert;
12 61341 alessia.ba
import org.junit.Before;
13 47423 michele.ar
import org.junit.Test;
14
15 61341 alessia.ba
import org.junit.runner.RunWith;
16
import org.mockito.runners.MockitoJUnitRunner;
17 51899 michele.ar
18 61341 alessia.ba
import static org.mockito.Mockito.*;
19
20 47423 michele.ar
/**
21
 * Created by Alessia Bardi on 26/05/2017.
22
 *
23
 * @author Alessia Bardi
24
 */
25 61341 alessia.ba
@RunWith(MockitoJUnitRunner.class)
26 47423 michele.ar
public class OpenAIRESubmitterUtilsTest {
27
28 61341 alessia.ba
	private OpenAIRESubmitterUtils utils;
29 47423 michele.ar
30
	final String fullProject = "info:eu-repo/grantAgreement/EC/FP7/244909/EU/Making Capabilities Work/WorkAble";
31
	final String minimalProject = "info:eu-repo/grantAgreement/EC/FP7/244909///WorkAble";
32 48139 alessia.ba
	final String onlyId = "info:eu-repo/grantAgreement/EC/FP7/244909/";
33 47423 michele.ar
	final String onlyTitle = "info:eu-repo/grantAgreement/EC/FP7/244909/EU/Making Capabilities Work";
34 59954 alessia.ba
	final String escapedId = "info:eu-repo/grantAgreement/RCUK//NE%2FL003066%2F1/";
35 47423 michele.ar
36 61341 alessia.ba
37
	@Before
38
	public void setup(){
39
		utils = mock(OpenAIRESubmitterUtils.class, withSettings().defaultAnswer(CALLS_REAL_METHODS));
40
		doReturn(Lists.newArrayList("dh-ch", "dariah", "bar", "x")).when(utils).translateZenodoCommunity("https://zenodo.org/communities/dimpo");
41
		doReturn(Lists.newArrayList()).when(utils).translateZenodoCommunity("https://zenodo.org/communities/dumbo");
42
43
	}
44
45 47423 michele.ar
	@Test
46 59954 alessia.ba
	public void testCalculateProjectInfoEscaped() {
47
		final Map<String, String> project = utils.calculateProjectInfo(escapedId);
48
		print(project);
49 61341 alessia.ba
		Assert.assertEquals("NE/L003066/1", project.get("code"));
50 59954 alessia.ba
	}
51
52
	@Test
53 47423 michele.ar
	public void testCalculateProjectInfoFull() {
54
		final Map<String, String> project = utils.calculateProjectInfo(fullProject);
55
		print(project);
56 61341 alessia.ba
		Assert.assertEquals(10, project.size());
57
		for(String k : project.keySet()){
58
			Assert.assertNotNull(project.get(k));
59
			Assert.assertNotSame("", project.get(k));
60
		}
61 47423 michele.ar
	}
62
63
	@Test
64 48139 alessia.ba
	public void testCalculateProjectInfoOnlyId() {
65
		final Map<String, String> project = utils.calculateProjectInfo(onlyId);
66
		print(project);
67 61341 alessia.ba
		Assert.assertEquals("44909", project.get("code"));
68 48139 alessia.ba
	}
69
70
	@Test
71 47423 michele.ar
	public void testCalculateProjectInfoMinimalAcro() {
72
		final Map<String, String> project = utils.calculateProjectInfo(minimalProject);
73
		print(project);
74 61341 alessia.ba
		Assert.assertEquals("44909", project.get("code"));
75
		Assert.assertEquals("WorkAble", project.get("acronym"));
76 47423 michele.ar
	}
77
78
	@Test
79
	public void testCalculateProjectInfoOnlyTitle() {
80
		final Map<String, String> project = utils.calculateProjectInfo(onlyTitle);
81
		print(project);
82 61341 alessia.ba
		Assert.assertEquals("44909", project.get("code"));
83
		Assert.assertEquals("Making Capabilities Work", project.get("title"));
84 47423 michele.ar
	}
85
86 54793 alessia.ba
	@Test
87
	public void testJerusalem(){
88
		String s = "info:eu-repo/grantAgreement/EC/FP7/337895/EU/Opening Jerusalem Archives: For a connected History of ‘Citadinité’ in the Holy City (1840-1940)/OPEN-JERUSALEM";
89
		final Map<String, String> project = utils.calculateProjectInfo(s);
90
		print(project);
91 61341 alessia.ba
		Assert.assertEquals("337895", project.get("code"));
92
		Assert.assertEquals("Opening Jerusalem Archives: For a connected History of ‘Citadinité’ in the Holy City (1840-1940)", project.get("title"));
93
		Assert.assertEquals("OPEN-JERUSALEM", project.get("acronym"));
94 54793 alessia.ba
	}
95
96 47423 michele.ar
	private void print(final Map<String, String> map) {
97
		for (final Entry e : map.entrySet()) {
98
			System.out.println(e.getKey() + " = " + e.getValue());
99
		}
100
	}
101 59797 miriam.bag
102
	@Test
103
	public void testContext(){
104 61341 alessia.ba
		List<String> zenodoCommunities = new ArrayList<>();
105
		zenodoCommunities.add("https://zenodo.org/communities/dimpo");
106
		zenodoCommunities.add("https://zenodo.org/communities/dumbo");
107
		Map<String, String> labelMap = Maps.newHashMap();
108
		labelMap.put("dariah", "DARIAH" );
109
		labelMap.put("dh-ch", "DH-CH" );
110
		labelMap.put("foo", "FOO" );
111
		labelMap.put("bar", "" );
112 59797 miriam.bag
113 61341 alessia.ba
		List<OpenAIRESubmitterUtils.ContextInfo> tmp = utils.processContexts(zenodoCommunities, labelMap);
114 59797 miriam.bag
		Assert.assertEquals(2, tmp.size());
115
116
		Assert.assertTrue(tmp.get(0).getId().equals("dh-ch") || tmp.get(1).getId().equalsIgnoreCase("dh-ch"));
117
		Assert.assertTrue(tmp.get(0).getId().equals("dariah") || tmp.get(1).getId().equalsIgnoreCase("dariah"));
118
	}
119 61341 alessia.ba
120 47423 michele.ar
}