package org.jabref.logic.importer.util; import java.util.Optional; import org.jabref.model.entry.BibEntry; import org.json.JSONObject; import org.junit.Assert; import org.junit.Test; public class JSONEntryParserTest { private final JSONEntryParser jc = new JSONEntryParser(); @Test public void testBibJSONConverter() { String jsonString = "{\n\"title\": \"Design of Finite Word Length Linear-Phase FIR Filters in the Logarithmic Number System Domain\",\n" + "\"journal\": {\n\"publisher\": \"Hindawi Publishing Corporation\",\n\"language\": [" + "\"English\"],\n\"title\": \"VLSI Design\",\"country\": \"US\",\"volume\": \"2014\"" + "},\"author\":[{\"name\": \"Syed Asad Alam\"},{\"name\": \"Oscar Gustafsson\"" + "}\n],\n\"link\":[{\"url\": \"http://dx.doi.org/10.1155/2014/217495\"," + "\"type\": \"fulltext\"}],\"year\":\"2014\",\"identifier\":[{" + "\"type\": \"pissn\",\"id\": \"1065-514X\"},\n{\"type\": \"eissn\"," + "\"id\": \"1563-5171\"},{\"type\": \"doi\",\"id\": \"10.1155/2014/217495\"" + "}],\"created_date\":\"2014-05-09T19:38:31Z\"}\""; JSONObject jsonObject = new JSONObject(jsonString); BibEntry bibEntry = jc.parseBibJSONtoBibtex(jsonObject, ','); Assert.assertEquals("article", bibEntry.getType()); Assert.assertEquals(Optional.of("VLSI Design"), bibEntry.getField("journal")); Assert.assertEquals(Optional.of("10.1155/2014/217495"), bibEntry.getField("doi")); Assert.assertEquals(Optional.of("Syed Asad Alam and Oscar Gustafsson"), bibEntry.getField("author")); Assert.assertEquals( Optional.of( "Design of Finite Word Length Linear-Phase FIR Filters in the Logarithmic Number System Domain"), bibEntry.getField("title")); Assert.assertEquals(Optional.of("2014"), bibEntry.getField("year")); } @Test public void testSpringerJSONToBibtex() { String jsonString = "{\r\n" + " \"identifier\":\"doi:10.1007/BF01201962\",\r\n" + " \"title\":\"Book reviews\",\r\n" + " \"publicationName\":\"World Journal of Microbiology & Biotechnology\",\r\n" + " \"issn\":\"1573-0972\",\r\n" + " \"isbn\":\"\",\r\n" + " \"doi\":\"10.1007/BF01201962\",\r\n" + " \"publisher\":\"Springer\",\r\n" + " \"publicationDate\":\"1992-09-01\",\r\n" + " \"volume\":\"8\",\r\n" + " \"number\":\"5\",\r\n" + " \"startingPage\":\"550\",\r\n" + " \"url\":\"http://dx.doi.org/10.1007/BF01201962\",\"copyright\":\"©1992 Rapid Communications of Oxford Ltd.\"\r\n" + " }"; JSONObject jsonObject = new JSONObject(jsonString); BibEntry bibEntry = JSONEntryParser.parseSpringerJSONtoBibtex(jsonObject); Assert.assertEquals(Optional.of("1992"), bibEntry.getField("year")); Assert.assertEquals(Optional.of("5"), bibEntry.getField("number")); Assert.assertEquals(Optional.of("#sep#"), bibEntry.getField("month")); Assert.assertEquals(Optional.of("10.1007/BF01201962"), bibEntry.getField("doi")); Assert.assertEquals(Optional.of("8"), bibEntry.getField("volume")); Assert.assertEquals(Optional.of("Springer"), bibEntry.getField("publisher")); Assert.assertEquals(Optional.of("1992-09-01"), bibEntry.getField("date")); } }