Project

General

Profile

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

    
3
import eu.dnetlib.data.claims.migration.entity.Result;
4
import eu.dnetlib.data.claimsDemo.ClaimUtils;
5
import eu.dnetlib.data.claims.migration.entity.Project;
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.transform.TransformerException;
12
import javax.xml.xpath.XPathExpressionException;
13
import java.io.IOException;
14

    
15
/**
16
 * Created by kiatrop on 22/2/2016.
17
 */
18
public class OafParserTest {
19

    
20
    private String publicationOaf = "<response>\n" +
21
            "\t  <header>\n" +
22
            "\t\t    <query>(((deletedbyinference = false) AND (oaftype exact result)) and (resulttypeid exact publication)) and (objidentifier exact od______2806::d19b8560e0c4ce1f25dd9d661f4b2b46)</query>\n" +
23
            "\t\t\t\t  <locale>en_GB</locale>\t\n" +
24
            "\t\t\t\t\t<size>10</size>\n" +
25
            "\t\t\t   <page>1</page>\n" +
26
            "\t\t\t   <total>1</total>\n" +
27
            "\t\t\t\t\t</header>\n" +
28
            "\t  <results>\n" +
29
            "\t\t\t\t\t\t\t\t\t<result xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
30
            "              xmlns:dri=\"http://www.driver-repository.eu/namespace/dri\"\n" +
31
            "              xmlns:oaf=\"http://namespace.openaire.eu/oaf\">\n" +
32
            "         <header>\n" +
33
            "            <dri:objIdentifier>od______2806::d19b8560e0c4ce1f25dd9d661f4b2b46</dri:objIdentifier>\n" +
34
            "            <dri:dateOfCollection>2016-02-02T08:07:14Z</dri:dateOfCollection>\n" +
35
             "         </header>\n" +
36
            "         <metadata>\n" +
37
            "            <oaf:entity xsi:schemaLocation=\"http://namespace.openaire.eu/oaf https://www.openaire.eu/schema/0.3/oaf-0.3.xsd\">\n" +
38
            "\t\t             <oaf:result>\n" +
39
            "                  <title classid=\"main title\" classname=\"main title\" schemeid=\"dnet:dataCite_title\"\n" +
40
            "                         schemename=\"dnet:dataCite_title\">ПОСТКОНВЕРСИОННАЯ АСИСТОЛИЯ ЖЕЛУДОЧКОВ СЕРДЦА У БОЛЬНЫХ ИНФАРКТОМ МИОКАРДА И ВОЗМОЖНОСТИ ЕЕ ПРОФИЛАКТИКИ</title>\n" +
41
            "                  <dateofacceptance>2010-01-01</dateofacceptance>\n" +
42
            "                  <resulttype classid=\"publication\" classname=\"publication\" schemeid=\"dnet:result_typologies\"\n" +
43
            "                              schemename=\"dnet:result_typologies\"/>\n" +
44
            "                  <country classid=\"\" classname=\"\" schemeid=\"\" schemename=\"\"/>\n" +
45
            "                  <relevantdate classid=\"\" classname=\"\" schemeid=\"\" schemename=\"\"/>\n" +
46
            "                  <embargoenddate>2099-12-31</embargoenddate>\n" +
47
            "                  <originalId>oai:cyberleninka.ru:article/5969541</originalId>\n" +
48
            "                  <collectedfrom name=\"CyberLeninka - Russian open access scientific library\"\n" +
49
            "                                 id=\"opendoar____::c0f971d8cd24364f2029fcb9ac7b71f5\"/>\n" +
50
            "                  <pid classid=\"oai\" classname=\"oai\" schemeid=\"dnet:pid_types\"\n" +
51
            "                       schemename=\"dnet:pid_types\">oai:cyberleninka.ru:article/5969541</pid>\n" +
52
            "                  <pid classid=\"pmc\" classname=\"pmc\" schemeid=\"dnet:pid_types\"\n" +
53
            "                       schemename=\"dnet:pid_types\">pmc_test</pid>\n" +
54
            "                  <pid classid=\"orcidworkid\" classname=\"orcidworkid\" schemeid=\"dnet:pid_types\"\n" +
55
            "                       schemename=\"dnet:pid_types\">orcidworkid_test</pid>\n" +
56
    "                  <bestlicense classid=\"EMBARGO\" classname=\"Open Access\" schemeid=\"dnet:access_modes\"\n" +
57
            "                               schemename=\"dnet:access_modes\"/>\n" +
58
//            "\t\t                <children>\n" +
59
//            "\t\t\t                  <instance id=\"opendoar____::c0f971d8cd24364f2029fcb9ac7b71f5\">\n" +
60
//            "\t\t\t                     <licence classid=\"EMBARGO\" classname=\"Open Access\" schemeid=\"dnet:access_modes\"\n" +
61
//            "                                 schemename=\"dnet:access_modes\"/>\n" +
62
//            "                        <instancetype classid=\"0001\" classname=\"Article\" schemeid=\"dnet:publication_resource\"\n" +
63
//            "                                      schemename=\"dnet:publication_resource\"/>\n" +
64
//            "                        <hostedby name=\"CyberLeninka - Russian open access scientific library\"\n" +
65
//            "                                  id=\"opendoar____::c0f971d8cd24364f2029fcb9ac7b71f5\"/>\n" +
66
//            "\t\t\t\t                    <webresource>\n" +
67
//            "\t\t\t\t                       <url>http://cyberleninka.ru/article/n/postkonversionnaya-asistoliya-zheludochkov-serdtsa-u-bolnyh-infarktom-miokarda-i-vozmozhnosti-ee-profilaktiki</url>\n" +
68
//            "\t\t\t\t                    </webresource>\n" +
69
//            "\t\t\t\t                    <webresource>\n" +
70
//            "\t\t\t\t                       <url>http://cyberleninka.ru/article_covers/5969541.png</url>\n" +
71
//            "\t\t\t\t                    </webresource>\n" +
72
//            "\t\t\t                  </instance>\n" +
73
//            "\t\t                </children>\n" +
74
            "\t\t                <children>\n" +
75
            "\t\t\t                  <instance id=\"opendoar____::c0f971d8cd24364f2029fcb9ac7b71f5\">\n" +
76
            "\t\t\t                     <licence classid=\"CLOSED\" classname=\"Open Access\" schemeid=\"dnet:access_modes\"\n" +
77
            "                                 schemename=\"dnet:access_modes\"/>\n" +
78
            "                        <instancetype classid=\"0001\" classname=\"Article\" schemeid=\"dnet:publication_resource\"\n" +
79
            "                                      schemename=\"dnet:publication_resource\"/>\n" +
80
            "                        <hostedby name=\"CyberLeninka - Russian open access scientific library\"\n" +
81
            "                                  id=\"opendoar____::c0f971d8cd24364f2029fcb9ac7b71f5\"/>\n" +
82
            "\t\t\t\t                    <webresource>\n" +
83
            "\t\t\t\t                       <url>h CLOSED_ACCESS_URL</url>\n" +
84
            "\t\t\t\t                    </webresource>\n" +
85
            "\t\t\t\t                    <webresource>\n" +
86
            "\t\t\t\t                       <url>http://cyberleninka.ru/article_covers/5969541.png</url>\n" +
87
            "\t\t\t\t                    </webresource>\n" +
88
            "\t\t\t                  </instance>\n" +
89
            "\t\t                </children>\n" +
90
            "\t\t             </oaf:result>\n" +
91
            "            </oaf:entity>\n" +
92
            "         </metadata>\n" +
93
            "      </result>\n" +
94
            "\t\t\t\t\t\t</results>\n" +
95
            "\t  <browseResults>\n" +
96
            "\t\t\t</browseResults>\n" +
97
            "</response>";
98

    
99

    
100
    @Test
101
    public void oaf2PublicationTest() throws Exception, ParserConfigurationException, SAXException, XPathExpressionException, IOException, TransformerException {
102
        Result result = OafParser.oaf2Result(publicationOaf);
103
        System.out.println(result.getExternalUrl());
104
        Assert.assertNull(result.getAccessRights());
105
        Assert.assertEquals("EMBARGO",result.getBestLicense());
106
        Assert.assertEquals("infrastruct_::openaire", result.getCollectedFrom());
107
        Assert.assertNull(result.getDoi());
108
        Assert.assertEquals("oai:cyberleninka.ru:article/5969541",result.getOai());
109
        Assert.assertEquals("od______2806::d19b8560e0c4ce1f25dd9d661f4b2b46",result.getOpenaireId());
110
        Assert.assertEquals("pmc_test",result.getPmcid());
111
        Assert.assertEquals(ClaimUtils.PUBLICATION, result.getResultType());
112
        Assert.assertEquals("ПОСТКОНВЕРСИОННАЯ АСИСТОЛИЯ ЖЕЛУДОЧКОВ СЕРДЦА У БОЛЬНЫХ ИНФАРКТОМ МИОКАРДА И ВОЗМОЖНОСТИ ЕЕ ПРОФИЛАКТИКИ",result.getTitle());
113
        Assert.assertEquals("xml", result.getRecordFormat());
114

    
115
        Assert.assertEquals("http://cyberleninka.ru/article/n/postkonversionnaya-asistoliya-zheludochkov-serdtsa-u-bolnyh-infarktom-miokarda-i-vozmozhnosti-ee-profilaktiki", result.getExternalUrl());
116
        Assert.assertEquals("2099-12-31",result.getEmbargoEndDate());
117
        Assert.assertEquals("orcidworkid_test", result.getOrcidworkid());
118

    
119
    }
120
    private String publicationWithDoiOaf = "<response>\n" +
121
            "\t  <header>\n" +
122
            "\t\t    <query>(((deletedbyinference = false) AND (oaftype exact result)) and (resulttypeid exact publication)) and (objidentifier exact od______2806::d19b8560e0c4ce1f25dd9d661f4b2b46)</query>\n" +
123
            "\t\t\t\t  <locale>en_GB</locale>\t\n" +
124
            "\t\t\t\t\t<size>10</size>\n" +
125
            "\t\t\t   <page>1</page>\n" +
126
            "\t\t\t   <total>1</total>\n" +
127
            "\t\t\t\t\t</header>\n" +
128
            "\t  <results>\n" +
129
            "\t\t\t\t\t\t\t\t\t<result xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
130
            "              xmlns:dri=\"http://www.driver-repository.eu/namespace/dri\"\n" +
131
            "              xmlns:oaf=\"http://namespace.openaire.eu/oaf\">\n" +
132
            "         <header>\n" +
133
            "            <dri:objIdentifier>od______2806::d19b8560e0c4ce1f25dd9d661f4b2b46</dri:objIdentifier>\n" +
134
            "            <dri:dateOfCollection>2016-02-02T08:07:14Z</dri:dateOfCollection>\n" +
135
            "         </header>\n" +
136
            "         <metadata>\n" +
137
            "            <oaf:entity xsi:schemaLocation=\"http://namespace.openaire.eu/oaf https://www.openaire.eu/schema/0.3/oaf-0.3.xsd\">\n" +
138
            "\t\t             <oaf:result>\n" +
139
            "                  <title classid=\"main title\" classname=\"main title\" schemeid=\"dnet:dataCite_title\"\n" +
140
            "                         schemename=\"dnet:dataCite_title\">ПОСТКОНВЕРСИОННАЯ АСИСТОЛИЯ ЖЕЛУДОЧКОВ СЕРДЦА У БОЛЬНЫХ ИНФАРКТОМ МИОКАРДА И ВОЗМОЖНОСТИ ЕЕ ПРОФИЛАКТИКИ</title>\n" +
141
            "                  <dateofacceptance>2010-01-01</dateofacceptance>\n" +
142
            "                  <resulttype classid=\"publication\" classname=\"publication\" schemeid=\"dnet:result_typologies\"\n" +
143
            "                              schemename=\"dnet:result_typologies\"/>\n" +
144
            "                  <country classid=\"\" classname=\"\" schemeid=\"\" schemename=\"\"/>\n" +
145
            "                  <relevantdate classid=\"\" classname=\"\" schemeid=\"\" schemename=\"\"/>\n" +
146
            "                  <embargoenddate>2099-12-31</embargoenddate>\n" +
147
            "                  <originalId>oai:cyberleninka.ru:article/5969541</originalId>\n" +
148
            "                  <collectedfrom name=\"CyberLeninka - Russian open access scientific library\"\n" +
149
            "                                 id=\"opendoar____::c0f971d8cd24364f2029fcb9ac7b71f5\"/>\n" +
150
            "                  <pid classid=\"doi\" classname=\"doi\" schemeid=\"dnet:pid_types\"\n" +
151
            "                       schemename=\"dnet:pid_types\">doi_test</pid>\n" +
152
            "                  <pid classid=\"oai\" classname=\"oai\" schemeid=\"dnet:pid_types\"\n" +
153
            "                       schemename=\"dnet:pid_types\">oai:cyberleninka.ru:article/5969541</pid>\n" +
154
            "                  <pid classid=\"pmc\" classname=\"pmc\" schemeid=\"dnet:pid_types\"\n" +
155
            "                       schemename=\"dnet:pid_types\">pmc_test</pid>\n" +
156
            "                  <pid classid=\"orcidworkid\" classname=\"orcidworkid\" schemeid=\"dnet:pid_types\"\n" +
157
            "                       schemename=\"dnet:pid_types\">orcidworkid_test</pid>\n" +
158
            "                  <bestlicense classid=\"EMBARGO\" classname=\"Open Access\" schemeid=\"dnet:access_modes\"\n" +
159
            "                               schemename=\"dnet:access_modes\"/>\n" +
160
            "\t\t                <children>\n" +
161
            "\t\t\t                  <instance id=\"opendoar____::c0f971d8cd24364f2029fcb9ac7b71f5\">\n" +
162
            "\t\t\t                     <licence classid=\"EMBARGO\" classname=\"Open Access\" schemeid=\"dnet:access_modes\"\n" +
163
            "                                 schemename=\"dnet:access_modes\"/>\n" +
164
            "                        <instancetype classid=\"0001\" classname=\"Article\" schemeid=\"dnet:publication_resource\"\n" +
165
            "                                      schemename=\"dnet:publication_resource\"/>\n" +
166
            "                        <hostedby name=\"CyberLeninka - Russian open access scientific library\"\n" +
167
            "                                  id=\"opendoar____::c0f971d8cd24364f2029fcb9ac7b71f5\"/>\n" +
168
            "\t\t\t\t                    <webresource>\n" +
169
            "\t\t\t\t                       <url>http://cyberleninka.ru/article/n/postkonversionnaya-asistoliya-zheludochkov-serdtsa-u-bolnyh-infarktom-miokarda-i-vozmozhnosti-ee-profilaktiki</url>\n" +
170
            "\t\t\t\t                    </webresource>\n" +
171
            "\t\t\t\t                    <webresource>\n" +
172
            "\t\t\t\t                       <url>http://cyberleninka.ru/article_covers/5969541.png</url>\n" +
173
            "\t\t\t\t                    </webresource>\n" +
174
            "\t\t\t                  </instance>\n" +
175
            "\t\t                </children>\n" +
176
            "\t\t             </oaf:result>\n" +
177
            "            </oaf:entity>\n" +
178
            "         </metadata>\n" +
179
            "      </result>\n" +
180
            "\t\t\t\t\t\t</results>\n" +
181
            "\t  <browseResults>\n" +
182
            "\t\t\t</browseResults>\n" +
183
            "</response>";
184
    @Test
185
    public void oafWithDoi2PublicationTest() throws Exception, ParserConfigurationException, SAXException, XPathExpressionException, IOException, TransformerException {
186
        Result result = OafParser.oaf2Result(publicationWithDoiOaf);
187
        Assert.assertNull(result.getAccessRights());
188
        Assert.assertEquals("EMBARGO",result.getBestLicense());
189
        Assert.assertEquals("infrastruct_::openaire", result.getCollectedFrom());
190
        Assert.assertNotNull(result.getDoi());
191
        Assert.assertEquals("oai:cyberleninka.ru:article/5969541",result.getOai());
192
        Assert.assertEquals("od______2806::d19b8560e0c4ce1f25dd9d661f4b2b46",result.getOpenaireId());
193
        Assert.assertEquals("pmc_test",result.getPmcid());
194
        Assert.assertEquals(ClaimUtils.PUBLICATION, result.getResultType());
195
        Assert.assertEquals("ПОСТКОНВЕРСИОННАЯ АСИСТОЛИЯ ЖЕЛУДОЧКОВ СЕРДЦА У БОЛЬНЫХ ИНФАРКТОМ МИОКАРДА И ВОЗМОЖНОСТИ ЕЕ ПРОФИЛАКТИКИ",result.getTitle());
196

    
197
        Assert.assertEquals("http://dx.doi.org/doi_test", result.getExternalUrl());
198
        Assert.assertEquals("2099-12-31",result.getEmbargoEndDate());
199
        Assert.assertEquals("orcidworkid_test", result.getOrcidworkid());
200
        Assert.assertEquals("doi_test", result.getDoi());
201

    
202

    
203
    }
204
    private String datasetOaf = "<response>\n" +
205
            "\t  <header>\n" +
206
            "\t\t    <query>(((deletedbyinference = false) AND (oaftype exact result)) and (resulttypeid exact publication)) and (objidentifier exact od______2806::d19b8560e0c4ce1f25dd9d661f4b2b46)</query>\n" +
207
            "\t\t\t\t  <locale>en_GB</locale>\t\n" +
208
            "\t\t\t\t\t<size>10</size>\n" +
209
            "\t\t\t   <page>1</page>\n" +
210
            "\t\t\t   <total>1</total>\n" +
211
            "\t\t\t\t\t</header>\n" +
212
            "\t  <results>\n" +
213
            "\t\t\t\t\t\t\t\t\t<result xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
214
            "              xmlns:dri=\"http://www.driver-repository.eu/namespace/dri\"\n" +
215
            "              xmlns:oaf=\"http://namespace.openaire.eu/oaf\">\n" +
216
            "         <header>\n" +
217
            "            <dri:objIdentifier>od______2806::d19b8560e0c4ce1f25dd9d661f4b2b46</dri:objIdentifier>\n" +
218
            "            <dri:dateOfCollection>2016-02-02T08:07:14Z</dri:dateOfCollection>\n" +
219
            "         </header>\n" +
220
            "         <metadata>\n" +
221
            "            <oaf:entity xsi:schemaLocation=\"http://namespace.openaire.eu/oaf https://www.openaire.eu/schema/0.3/oaf-0.3.xsd\">\n" +
222
            "\t\t             <oaf:result>\n" +
223
            "                  <title classid=\"main title\" classname=\"main title\" schemeid=\"dnet:dataCite_title\"\n" +
224
            "                         schemename=\"dnet:dataCite_title\">ПОСТКОНВЕРСИОННАЯ АСИСТОЛИЯ ЖЕЛУДОЧКОВ СЕРДЦА У БОЛЬНЫХ ИНФАРКТОМ МИОКАРДА И ВОЗМОЖНОСТИ ЕЕ ПРОФИЛАКТИКИ</title>\n" +
225
            "                  <dateofacceptance>2010-01-01</dateofacceptance>\n" +
226
            "                  <resulttype classid=\"dataset\" classname=\"dataset\" schemeid=\"dnet:result_typologies\"\n" +
227
            "                              schemename=\"dnet:result_typologies\"/>\n" +
228
            "                  <country classid=\"\" classname=\"\" schemeid=\"\" schemename=\"\"/>\n" +
229
            "                  <relevantdate classid=\"\" classname=\"\" schemeid=\"\" schemename=\"\"/>\n" +
230
            "                  <embargoenddate>2099-12-31</embargoenddate>\n" +
231
            "                  <originalId>oai:cyberleninka.ru:article/5969541</originalId>\n" +
232
            "                  <collectedfrom name=\"CyberLeninka - Russian open access scientific library\"\n" +
233
            "                                 id=\"opendoar____::c0f971d8cd24364f2029fcb9ac7b71f5\"/>\n" +
234
            "                  <pid classid=\"oai\" classname=\"oai\" schemeid=\"dnet:pid_types\"\n" +
235
            "                       schemename=\"dnet:pid_types\">oai:cyberleninka.ru:article/5969541</pid>\n" +
236
            "                  <pid classid=\"doi\" classname=\"doi\" schemeid=\"dnet:pid_types\"\n" +
237
            "                       schemename=\"dnet:pid_types\">doi_test</pid>\n" +
238
            "                  <pid classid=\"pmc\" classname=\"pmc\" schemeid=\"dnet:pid_types\"\n" +
239
            "                       schemename=\"dnet:pid_types\">pmc_test</pid>\n" +
240
            "                  <pid classid=\"orcidworkid\" classname=\"orcidworkid\" schemeid=\"dnet:pid_types\"\n" +
241
            "                       schemename=\"dnet:pid_types\">orcidworkid_test</pid>\n" +
242
            "                  <bestlicense classid=\"EMBARGO\" classname=\"Open Access\" schemeid=\"dnet:access_modes\"\n" +
243
            "                               schemename=\"dnet:access_modes\"/>\n" +
244
            "\t\t                <children>\n" +
245
            "\t\t\t                  <instance id=\"opendoar____::c0f971d8cd24364f2029fcb9ac7b71f5\">\n" +
246
            "\t\t\t                     <licence classid=\"OPEN\" classname=\"Open Access\" schemeid=\"dnet:access_modes\"\n" +
247
            "                                 schemename=\"dnet:access_modes\"/>\n" +
248
            "                        <instancetype classid=\"0001\" classname=\"Article\" schemeid=\"dnet:publication_resource\"\n" +
249
            "                                      schemename=\"dnet:publication_resource\"/>\n" +
250
            "                        <hostedby name=\"CyberLeninka - Russian open access scientific library\"\n" +
251
            "                                  id=\"opendoar____::c0f971d8cd24364f2029fcb9ac7b71f5\"/>\n" +
252
            "\t\t\t\t                    <webresource>\n" +
253
            "\t\t\t\t                       <url>http://cyberleninka.ru/article/n/postkonversionnaya-asistoliya-zheludochkov-serdtsa-u-bolnyh-infarktom-miokarda-i-vozmozhnosti-ee-profilaktiki</url>\n" +
254
            "\t\t\t\t                    </webresource>\n" +
255
            "\t\t\t\t                    <webresource>\n" +
256
            "\t\t\t\t                       <url>http://cyberleninka.ru/article_covers/5969541.png</url>\n" +
257
            "\t\t\t\t                    </webresource>\n" +
258
            "\t\t\t                  </instance>\n" +
259
            "\t\t                </children>\n" +
260
            "\t\t             </oaf:result>\n" +
261
            "            </oaf:entity>\n" +
262
            "         </metadata>\n" +
263
            "      </result>\n" +
264
            "\t\t\t\t\t\t</results>\n" +
265
            "\t  <browseResults>\n" +
266
            "\t\t\t</browseResults>\n" +
267
            "</response>";
268

    
269

    
270
    @Test
271
    public void oaf2DatasetTest() throws Exception, ParserConfigurationException, SAXException, XPathExpressionException, IOException, TransformerException {
272
        Result result = OafParser.oaf2Result(datasetOaf);
273

    
274
        Assert.assertNull(result.getAccessRights());
275
        Assert.assertEquals("EMBARGO",result.getBestLicense());
276
        Assert.assertEquals("infrastruct_::openaire", result.getCollectedFrom());
277
        Assert.assertEquals("oai:cyberleninka.ru:article/5969541",result.getOai());
278
        Assert.assertEquals("od______2806::d19b8560e0c4ce1f25dd9d661f4b2b46",result.getOpenaireId());
279
        Assert.assertEquals("pmc_test",result.getPmcid());
280
        Assert.assertEquals(ClaimUtils.DATASET, result.getResultType());
281
        Assert.assertEquals("ПОСТКОНВЕРСИОННАЯ АСИСТОЛИЯ ЖЕЛУДОЧКОВ СЕРДЦА У БОЛЬНЫХ ИНФАРКТОМ МИОКАРДА И ВОЗМОЖНОСТИ ЕЕ ПРОФИЛАКТИКИ",result.getTitle());
282
        Assert.assertEquals("xml", result.getRecordFormat());
283

    
284
        Assert.assertEquals("http://dx.doi.org/doi_test", result.getExternalUrl());
285
        Assert.assertEquals("2099-12-31",result.getEmbargoEndDate());
286
        Assert.assertEquals("orcidworkid_test", result.getOrcidworkid());
287
        Assert.assertEquals("doi_test", result.getDoi());
288

    
289
    }
290

    
291

    
292

    
293
    private String projectOaf = "<response>\n" +
294
            "\t  <header>\n" +
295
            "\t\t    <query>((deletedbyinference = false) AND (oaftype exact project)) and (projectcode exact 314867)</query>\n" +
296
            "\t\t\t\t  <locale>en_GB</locale>\t\n" +
297
            "\t\t\t\t\t<size>10</size>\n" +
298
            "\t\t\t   <page>1</page>\n" +
299
            "\t\t\t   <total>1</total>\n" +
300
            "\t\t\t\t\t</header>\n" +
301
            "\t  <results>\n" +
302
            "\t\t\t\t\t\t\t\t\t<result xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
303
            "              xmlns:dri=\"http://www.driver-repository.eu/namespace/dri\"\n" +
304
            "              xmlns:oaf=\"http://namespace.openaire.eu/oaf\">\n" +
305
            "         <header>\n" +
306
            "            <dri:objIdentifier>corda_______::073d0a668885f9e7292a5d9c323e4a20</dri:objIdentifier>\n" +
307
            "            <dri:dateOfCollection>2015-08-24</dri:dateOfCollection>\n" +
308
            "            <counters>\n" +
309
            "\t              <counter_participation value=\"8\"/>\n" +
310
            "               <counter_contactPerson value=\"1\"/>\n" +
311
            "\t           </counters>\n" +
312
            "         </header>\n" +
313
            "         <metadata>\n" +
314
            "            <oaf:entity xsi:schemaLocation=\"http://namespace.openaire.eu/oaf https://www.openaire.eu/schema/0.3/oaf-0.3.xsd\">\n" +
315
            "\t\t             <oaf:project>\n" +
316
            "\t\t\t               <code>314867</code>\n" +
317
            "                  <acronym>ADAW</acronym>\n" +
318
            "                  <title>Saponification pre-treatment and biosensors based control system for slaughterhouse waste anaerobic digestion improvement</title>\n" +
319
            "                  <startdate>2013-03-01</startdate>\n" +
320
            "                  <enddate>2015-02-28</enddate>\n" +
321
            "                  <callidentifier>FP7-SME-2012</callidentifier>\n" +
322
            "                  <ecsc39>false</ecsc39>\n" +
323
            "                  <oamandatepublications>false</oamandatepublications>\n" +
324
            "                  <contracttype classid=\"BSG\" classname=\"Research for the benefit of specific groups\"\n" +
325
            "                                schemeid=\"ec:FP7contractTypes\"\n" +
326
            "                                schemename=\"ec:FP7contractTypes\"/>\n" +
327
            "                  <fundingtree>\n" +
328
            "                     <funder>\n" +
329
            "                        <id>ec__________::EC</id>\n" +
330
            "                        <shortname>EC</shortname>\n" +
331
            "                        <name>European Commission</name>\n" +
332
            "                        <jurisdiction>EU</jurisdiction>\n" +
333
            "                     </funder>\n" +
334
            "                     <funding_level_2>\n" +
335
            "                        <id>ec__________::EC::FP7::SP4::SME</id>\n" +
336
            "                        <description>Research for the benefit of SMEs</description>\n" +
337
            "                        <name>SME</name>\n" +
338
            "                        <class>ec:program</class>\n" +
339
            "                        <parent>\n" +
340
            "                           <funding_level_1>\n" +
341
            "                              <id>ec__________::EC::FP7::SP4</id>\n" +
342
            "                              <description>SP4-Capacities</description>\n" +
343
            "                              <name>SP4</name>\n" +
344
            "                              <class>ec:specificprogram</class>\n" +
345
            "                              <parent>\n" +
346
            "                                 <funding_level_0>\n" +
347
            "                                    <id>ec__________::EC::FP7</id>\n" +
348
            "                                    <description>SEVENTH FRAMEWORK PROGRAMME</description>\n" +
349
            "                                    <name>FP7</name>\n" +
350
            "                                    <parent/>\n" +
351
            "                                    <class>ec:frameworkprogram</class>\n" +
352
            "                                 </funding_level_0>\n" +
353
            "                              </parent>\n" +
354
            "                           </funding_level_1>\n" +
355
            "                        </parent>\n" +
356
            "                     </funding_level_2>\n" +
357
            "                  </fundingtree>\n" +
358
            "                  <websiteurl/>\n" +
359
            "                  <keywords/>\n" +
360
            "                  <duration/>\n" +
361
            "                  <ecarticle29_3/>\n" +
362
            "                  <subjects classid=\"\" classname=\"\" schemeid=\"\" schemename=\"\"/>\n" +
363
            "                  <originalId>corda_______::314867</originalId>\n" +
364
            "                  <collectedfrom name=\"CORDA - COmmon Research DAta Warehouse\"\n" +
365
            "                                 id=\"openaire____::b30dac7baac631f3da7c2bb18dd9891f\"/>\n" +
366
            "                  <pid classid=\"\" classname=\"\" schemeid=\"\" schemename=\"\"/>\n" +
367
            "                  <datainfo>\n" +
368
            "                     <inferred>false</inferred>\n" +
369
            "                     <deletedbyinference>false</deletedbyinference>\n" +
370
            "                     <trust>0.9</trust>\n" +
371
            "                     <inferenceprovenance/>\n" +
372
            "                     <provenanceaction classid=\"sysimport:crosswalk:entityregistry\"\n" +
373
            "                                       classname=\"sysimport:crosswalk:entityregistry\"\n" +
374
            "                                       schemeid=\"dnet:provenanceActions\"\n" +
375
            "                                       schemename=\"dnet:provenanceActions\"/>\n" +
376
            "                  </datainfo>\n" +
377
            "\t\t                <rels>\n" +
378
            "\t\t                </rels>\n" +
379
            "\t\t                <children>\n" +
380
            "\t\t  </children>\n" +
381
            "\t\t             </oaf:project>\n" +
382
            "\n" +
383
            "            </oaf:entity>\n" +
384
            "         </metadata>\n" +
385
            "      </result>\n" +
386
            "\t\t\t\t\t\t</results>\n" +
387
            "\t  <browseResults>\n" +
388
            "\t\t\t</browseResults>\n" +
389
            "</response>";
390

    
391

    
392

    
393
    @Test
394
    public void oaf2ProjectTest() throws Exception {
395
        Project project = OafParser.oaf2Project(projectOaf);
396

    
397
        Assert.assertEquals("corda_______::073d0a668885f9e7292a5d9c323e4a20", project.getOpenaireId());
398
        Assert.assertEquals("ADAW", project.getAcronym());
399
        Assert.assertEquals("ec__________::EC", project.getFunderId());
400
        Assert.assertEquals("EC", project.getFunderShortName());
401
        Assert.assertEquals("European Commission", project.getFunderName());
402
        Assert.assertEquals("Saponification pre-treatment and biosensors based control system for slaughterhouse waste anaerobic digestion improvement", project.getName());
403

    
404
    }
405

    
406

    
407
}
(3-3/4)