2020-10-07 13:14:31 +02:00
|
|
|
|
2020-10-06 18:55:23 +02:00
|
|
|
package eu.dnetlib.dhp.schema.oaf.utils;
|
|
|
|
|
2020-10-07 13:14:31 +02:00
|
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
|
|
|
|
|
|
import java.io.IOException;
|
2020-10-06 18:55:23 +02:00
|
|
|
|
2020-10-07 13:14:31 +02:00
|
|
|
import org.apache.commons.io.IOUtils;
|
2020-10-06 18:55:23 +02:00
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
|
2020-10-07 13:14:31 +02:00
|
|
|
import com.fasterxml.jackson.databind.DeserializationFeature;
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
2020-10-06 18:55:23 +02:00
|
|
|
|
2020-10-07 13:14:31 +02:00
|
|
|
import eu.dnetlib.dhp.schema.oaf.Publication;
|
|
|
|
import eu.dnetlib.dhp.utils.DHPUtils;
|
2020-10-06 18:55:23 +02:00
|
|
|
|
|
|
|
public class IdentifierFactoryTest {
|
|
|
|
|
2020-10-07 13:14:31 +02:00
|
|
|
private static ObjectMapper OBJECT_MAPPER = new ObjectMapper()
|
|
|
|
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
2020-10-06 18:55:23 +02:00
|
|
|
|
2020-10-07 13:14:31 +02:00
|
|
|
@Test
|
|
|
|
public void testCreateIdentifierForPublication() throws IOException {
|
2020-10-06 18:55:23 +02:00
|
|
|
|
2020-10-07 13:14:31 +02:00
|
|
|
verifyIdentifier("publication_doi.json", "50|doi_________::" + DHPUtils.md5("10.1016/j.cmet.2011.03.013"));
|
|
|
|
verifyIdentifier("publication_pmc.json", "50|pmc_________::" + DHPUtils.md5("21459329"));
|
|
|
|
verifyIdentifier(
|
|
|
|
"publication_urn.json",
|
|
|
|
"50|urn_________::" + DHPUtils.md5("urn:nbn:nl:ui:29-f3ed5f9e-edf6-457e-8848-61b58a4075e2"));
|
2020-10-06 18:55:23 +02:00
|
|
|
|
2020-10-07 13:14:31 +02:00
|
|
|
final String defaultID = "50|DansKnawCris::0829b5191605bdbea36d6502b8c1ce1f";
|
|
|
|
verifyIdentifier("publication_3.json", defaultID);
|
|
|
|
verifyIdentifier("publication_4.json", defaultID);
|
|
|
|
verifyIdentifier("publication_5.json", defaultID);
|
|
|
|
}
|
2020-10-06 18:55:23 +02:00
|
|
|
|
2020-10-07 13:14:31 +02:00
|
|
|
protected void verifyIdentifier(String filename, String expectedID) throws IOException {
|
|
|
|
final String json = IOUtils.toString(getClass().getResourceAsStream(filename));
|
|
|
|
final Publication pub = OBJECT_MAPPER.readValue(json, Publication.class);
|
2020-10-06 18:55:23 +02:00
|
|
|
|
2020-10-07 13:14:31 +02:00
|
|
|
String id = IdentifierFactory.createIdentifier(pub);
|
2020-10-06 18:55:23 +02:00
|
|
|
|
2020-10-07 13:14:31 +02:00
|
|
|
assertNotNull(id);
|
|
|
|
assertEquals(expectedID, id);
|
|
|
|
}
|
2020-10-06 18:55:23 +02:00
|
|
|
|
|
|
|
}
|