Project

General

Profile

1
package eu.dnetlib.resolver.store;
2

    
3
import java.util.Arrays;
4
import java.util.HashSet;
5
import java.util.Set;
6

    
7

    
8
import eu.dnetlib.dli.resolver.model.CompletionStatus;
9
import eu.dnetlib.dli.resolver.model.DLIObjectProvenance;
10
import eu.dnetlib.dli.resolver.model.DLIResolvedObject;
11

    
12
import eu.dnetlib.dli.resolver.model.ObjectProvisionMode;
13
import eu.dnetlib.pid.resolver.store.ResolverStore;
14
import org.junit.After;
15
import org.junit.Assert;
16
import org.junit.Ignore;
17
import org.junit.Test;
18
import org.springframework.beans.factory.annotation.Autowired;
19

    
20
/**
21
 * Created by sandro on 9/8/16.
22
 */
23

    
24
//@RunWith(SpringJUnit4ClassRunner.class)
25
//@ContextConfiguration(classes = ConfigurationResolverStoreTestConfig.class)
26
@Ignore
27
public class ResolverStoreTest {
28

    
29
	private static Set<String> expectedIndex = new HashSet<>(Arrays.asList("_id", "pid", "pid_type", "resolver", "dnet_identifier"));
30

    
31
	@Autowired
32
	private ResolverStore store;
33

    
34
	@After
35
	public void dropDown() {
36
		store.getMongoDatabase().drop();
37
	}
38

    
39
	@Test
40
	public void testIndexes() {
41
		store.checkIntegrityCollection();
42
		Set<String> inputSet = new HashSet<>(store.getIndexName());
43
		Assert.assertTrue(inputSet.containsAll(expectedIndex));
44
	}
45

    
46
	@Test
47
	public void testInsertSingleItem() {
48
        final DLIResolvedObject expected = createdMockObject("1234", "DOI");
49
        store.insertRecord("Resolver Test", expected);
50
        final DLIResolvedObject doi = (DLIResolvedObject) store.getRecord(expected.getPid(), expected.getPidType());
51
        Assert.assertNotNull(doi);
52
		doi.getTitles().forEach(it -> Assert.assertTrue(expected.getTitles().contains(it)));
53
		Assert.assertEquals(doi.getPid(), expected.getPid());
54
		Assert.assertEquals(doi.getPidType(), expected.getPidType());
55
	}
56

    
57
    private DLIResolvedObject createdMockObject(final String pid, final String pidType) {
58
        DLIResolvedObject tmp = new DLIResolvedObject();
59
        tmp.setPid(pid);
60
		tmp.setPidType(pidType);
61
		tmp.setTitles(Arrays.asList("Titolo 1", "Titolo 2"));
62
        DLIObjectProvenance p1 = new DLIObjectProvenance("datasource1", ObjectProvisionMode.collected.toString(),
63
                CompletionStatus.complete.toString(), "{pid, pidtype", "01/01/01", true);
64
        DLIObjectProvenance p2 = new DLIObjectProvenance("datasource2", ObjectProvisionMode.collected.toString(),
65
                CompletionStatus.incomplete.toString(), "{pid, pidtype", "02/02/02", true);
66
		tmp.setDatasourceProvenance(Arrays.asList(p1, p2));
67
		tmp.setAuthors(Arrays.asList("Author 1", "Author 2"));
68
		tmp.setDate("20/09/2016");
69
		return tmp;
70
	}
71

    
72
}
(2-2/2)