From 1c2694a1348f6505a58c15c2efc4e4ed5c2293f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A9ter=20Kir=C3=A1ly?= Date: Fri, 14 Jun 2024 23:02:58 +0200 Subject: [PATCH] The JSON representation of a subfield is always a string #348: provide additional tests --- .../pica/reader/PicaNormalizedReaderTest.java | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/test/java/de/gwdg/metadataqa/marc/utils/pica/reader/PicaNormalizedReaderTest.java b/src/test/java/de/gwdg/metadataqa/marc/utils/pica/reader/PicaNormalizedReaderTest.java index 50e77c72..f848ef3d 100644 --- a/src/test/java/de/gwdg/metadataqa/marc/utils/pica/reader/PicaNormalizedReaderTest.java +++ b/src/test/java/de/gwdg/metadataqa/marc/utils/pica/reader/PicaNormalizedReaderTest.java @@ -134,32 +134,32 @@ public void test045R_asJson() throws IOException, URISyntaxException { if (reader.hasNext()) record = reader.next(); BibliographicRecord bibRecord = MarcFactory.createPicaFromMarc4j(record, schema); + String json = bibRecord.asJson(); - for (de.gwdg.metadataqa.marc.dao.DataField field : bibRecord.getDatafields()) { - System.err.println(field.getTagWithOccurrence()); - } - - - /* - List tags = bibRecord.getDatafield("045R"); - assertEquals(1, tags.size()); + List tags = bibRecord.getDatafieldsByTag("045R"); + assertEquals(5, tags.size()); de.gwdg.metadataqa.marc.dao.DataField tag = tags.get(0); - assertEquals(2, tag.getSubfield("k").size()); - assertEquals("Psychologie", tag.getSubfield("k").get(0).getValue()); - assertEquals("Sozialpsychologie", tag.getSubfield("k").get(1).getValue()); + assertEquals(2, tag.getSubfield("J").size()); + assertEquals("Psychologie", tag.getSubfield("J").get(0).getValue()); + assertEquals("Sozialpsychologie", tag.getSubfield("J").get(1).getValue()); - String json = bibRecord.asJson(); + // string approach + int i = json.indexOf("\"045R"); + String firstTag045R = json.substring(i, i + 182); + assertTrue(firstTag045R.contains("\"N\":[\"CL-CZ\",\"CV\"]")); + assertTrue(firstTag045R.contains("\"J\":[\"Psychologie\",\"Sozialpsychologie\"]")); + + // JSON object approach ObjectMapper mapper = new ObjectMapper(); Map configuration = mapper.readValue(json, new TypeReference<>(){}); - assertNotNull(configuration.get("045T")); - assertTrue(configuration.get("045T") instanceof ArrayList); - assertEquals(1, ((List) configuration.get("045T")).size()); - assertTrue(((List)configuration.get("045T")).get(0) instanceof Map); - Map tag = (Map) ((List) configuration.get("045T")).get(0); - Map subfields = (Map) tag.get("subfields"); - assertTrue(subfields.get("k") instanceof List); - assertEquals("Psychologie", ((List) subfields.get("k")).get(0)); - assertEquals("Sozialpsychologie", ((List) subfields.get("k")).get(1)); - */ + assertNotNull(configuration.get("045R")); + assertTrue(configuration.get("045R") instanceof ArrayList); + assertEquals(5, ((List) configuration.get("045R")).size()); + assertTrue(((List)configuration.get("045R")).get(0) instanceof Map); + Map firstTag = (Map) ((List) configuration.get("045R")).get(0); + Map subfields = (Map) firstTag.get("subfields"); + assertTrue(subfields.get("J") instanceof List); + assertEquals("Psychologie", ((List) subfields.get("J")).get(0)); + assertEquals("Sozialpsychologie", ((List) subfields.get("J")).get(1)); } } \ No newline at end of file