Project

General

Profile

1
package eu.dnetlib.data.claims.migration.parser;
2

    
3
import eu.dnetlib.data.claims.migration.entity.Context;
4
import eu.dnetlib.data.claims.migration.entity.Result;
5
import eu.dnetlib.data.claims.migration.handler.DMFContextHandler;
6
import org.junit.Assert;
7
import org.junit.Test;
8
import org.xml.sax.SAXException;
9

    
10
import javax.xml.parsers.ParserConfigurationException;
11
import javax.xml.xpath.XPathExpressionException;
12
import java.io.IOException;
13

    
14
/**
15
 * Created by kiatrop on 23/2/2016.
16
 */
17
public class DMFParserTest {
18

    
19
    private String publicationDmf= "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
20
            "<record xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:prov=\"http://www.openarchives.org/OAI/2.0/provenance\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:dri=\"http://www.driver-repository.eu/namespace/dri\" xmlns:dr=\"http://www.driver-repository.eu/namespace/dr\" xmlns:oaf=\"http://namespace.openaire.eu/oaf\">\n" +
21
            "  <header xmlns=\"http://namespace.openaire.eu/\">\n" +
22
            "    <dri:objIdentifier>crossref____::47593e13b24bcdd0f3d5573499f1d3a9</dri:objIdentifier>\n" +
23
            "    <dri:recordIdentifier>10.1088/0004-637X/761/1/34</dri:recordIdentifier>\n" +
24
            "    <dri:dateOfCollection></dri:dateOfCollection>\n" +
25
            "    <dri:mdFormat></dri:mdFormat>\n" +
26
            "    <dri:mdFormatInterpretation></dri:mdFormatInterpretation>\n" +
27
            "    <dri:repositoryId></dri:repositoryId>\n" +
28
            "    <dr:objectIdentifier></dr:objectIdentifier>\n" +
29
            "    <dr:dateOfCollection>2014-10-10T14:59:49+00:00</dr:dateOfCollection>\n" +
30
            "    <oaf:datasourceprefix>crossref____</oaf:datasourceprefix>\n" +
31
            "  </header>\n" +
32
            "  <metadata xmlns=\"http://namespace.openaire.eu/\">\n" +
33
            "      <dc:dateAccepted>2012-01-01T00:00:00Z</dc:dateAccepted>\n" +
34
            "             <dc:identifier>http://stacks.iop.org/0004-637X/761/i=1/a=34?key=crossref.d14dae8ac205453af63561a69c108e13</dc:identifier>\n" +
35
            "          <dc:title>A THREE-DIMENSIONAL VIEW OF THE REMNANT OF NOVA PERSEI 1901 (GK Per)</dc:title>\n" +
36
            "             <oaf:collectedDatasourceid>openaire____::crossref</oaf:collectedDatasourceid>\n" +
37
            "       <oaf:accessrights></oaf:accessrights>\n" +
38
            "       <oaf:hostedBy name=\"Unknown Repository\" id=\"openaire____::1256f046-bf1f-4afc-8b47-d0b147148b18\"/>\n" +
39
            "    <oaf:collectedFrom name=\"Crossref\" id=\"openaire____::crossref\" />\n" +
40
            "          \n" +
41
            "     <dc:creator>Liimets, T.</dc:creator>\n" +
42
            "     <dc:creator>Corradi, R. L. M.</dc:creator>\n" +
43
            "     <dc:creator>Santander-Garc&#237;a, M.</dc:creator>\n" +
44
            "     <dc:creator>Villaver, E.</dc:creator>\n" +
45
            "     <dc:creator>Rodr&#237;guez-Gil, P.</dc:creator>\n" +
46
            "     <dc:creator>Verro, K.</dc:creator>\n" +
47
            "     <dc:creator>Kolka, I.</dc:creator>\n" +
48
            " \n" +
49
            "        <dc:identifier identifierType=\"doi\">10.1088/0004-637X/761/1/34</dc:identifier>\n" +
50
            //"        <dr:CobjIdentifier>10.1088/0004-637X/761/1/34</dr:CobjIdentifier>\n" +
51
            "       <dc:identifier identifierType=\"orcidworkid\">0000-0002-1112-1292-12694010</dc:identifier>\n" +
52
            //"        <dr:CobjIdentifier>0000-0002-1112-1292-12694010</dr:CobjIdentifier>" +
53
            "  </metadata>\n" +
54
            "</record>";
55

    
56
    @Test
57
    public void dmf2PublicationTest() throws IOException, SAXException, ParserConfigurationException {
58
        Result result = DMFParser.dmf2Result(publicationDmf);
59

    
60
        Assert.assertNull(result.getAccessRights());
61
        Assert.assertNull(result.getBestLicense());
62
        Assert.assertEquals("openaire____::crossref", result.getCollectedFrom());
63
        Assert.assertEquals("10.1088/0004-637X/761/1/34", result.getDoi());
64
        Assert.assertEquals("0000-0002-1112-1292-12694010", result.getOrcidworkid());
65
        Assert.assertNull(result.getOai());
66
        Assert.assertEquals("crossref____::47593e13b24bcdd0f3d5573499f1d3a9", result.getOpenaireId());
67
        Assert.assertNull(result.getPmcid());
68
        Assert.assertEquals("A THREE-DIMENSIONAL VIEW OF THE REMNANT OF NOVA PERSEI 1901 (GK Per)", result.getTitle());
69
        Assert.assertEquals("xml", result.getRecordFormat());
70
        Assert.assertEquals("http://dx.doi.org/10.1088/0004-637X/761/1/34", result.getExternalUrl());
71
        Assert.assertNull(result.getEmbargoEndDate());
72

    
73
    }
74

    
75
    private  String contextDmf = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
76
            "<record xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:prov=\"http://www.openarchives.org/OAI/2.0/provenance\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:dri=\"http://www.driver-repository.eu/namespace/dri\" xmlns:dr=\"http://www.driver-repository.eu/namespace/dr\" xmlns:oaf=\"http://namespace.openaire.eu/oaf\">\n" +
77
            "  <header xmlns=\"http://namespace.openaire.eu/\">\n" +
78
            "    <dri:objIdentifier>od______1031::ec6940963d90d1e275970ed2a0ac2508</dri:objIdentifier>\n" +
79
            "    <dri:recordIdentifier>od______1031::ec6940963d90d1e275970ed2a0ac2508</dri:recordIdentifier>\n" +
80
            "    <dri:dateOfCollection></dri:dateOfCollection>\n" +
81
            "    <dri:mdFormat></dri:mdFormat>\n" +
82
            "    <dri:mdFormatInterpretation></dri:mdFormatInterpretation>\n" +
83
            "    <dri:repositoryId></dri:repositoryId>\n" +
84
            "    <dr:objectIdentifier></dr:objectIdentifier>\n" +
85
            "    <dr:dateOfCollection>2015-01-22T11:40:51+00:00</dr:dateOfCollection>\n" +
86
            "    <oaf:datasourceprefix>openaire____</oaf:datasourceprefix>\n" +
87
            "  </header>\n" +
88
            "  <metadata xmlns=\"http://namespace.openaire.eu/\">\n" +
89
            "                     <oaf:collectedDatasourceid></oaf:collectedDatasourceid>\n" +
90
            "          <oaf:hostedBy name=\"\" id=\"\"/>\n" +
91
            "    <oaf:collectedFrom name=\"\" id=\"\" />\n" +
92
            "          \n" +
93
            "     <oaf:concept id=\"egi::country::gr\" />\n" +
94
            "\n" +
95
            "\n" +
96
            "\n" +
97
            "  </metadata>\n" +
98
            "</record>";
99

    
100
    @Test
101
    public void dmf2ContextTest() throws IOException, SAXException, ParserConfigurationException, XPathExpressionException {
102
        DMFParser dmfParser= new DMFParser();
103
        DMFContextHandler dmfContextHandler = new DMFContextHandler();
104
        Context context = dmfContextHandler.extractContextFromDMF(contextDmf, false);
105

    
106
        Assert.assertEquals("egi::country::gr", context.getOpenaireId());
107
        Assert.assertEquals("EGI Federation> EGI Countries> Greece", context.getTitle());
108
    }
109

    
110
}
(2-2/5)