From 2890c8f5aa75eeef9b335bb51052c85be09c28e2 Mon Sep 17 00:00:00 2001
From: Jesper Zedlitz <jesper@zedlitz.de>
Date: Mon, 16 Jan 2023 14:56:28 +0100
Subject: [PATCH] Test

---
 .../catalogproxy/CatalogFilterTest.java       | 114 ++++++++++--------
 1 file changed, 63 insertions(+), 51 deletions(-)

diff --git a/src/test/java/de/landsh/opendata/catalogproxy/CatalogFilterTest.java b/src/test/java/de/landsh/opendata/catalogproxy/CatalogFilterTest.java
index 8d36f4a..3fd6bb1 100644
--- a/src/test/java/de/landsh/opendata/catalogproxy/CatalogFilterTest.java
+++ b/src/test/java/de/landsh/opendata/catalogproxy/CatalogFilterTest.java
@@ -57,9 +57,9 @@ public class CatalogFilterTest {
 
     @Test
     public void work() throws Exception {
-        final InputStream inputStream = getClass().getResourceAsStream("/catalog.xml");
-        catalogFilter.work(inputStream);
-        inputStream.close();
+        try (final InputStream inputStream = getClass().getResourceAsStream("/catalog.xml")) {
+            catalogFilter.work(inputStream);
+        }
     }
 
     @Test
@@ -145,13 +145,13 @@ public class CatalogFilterTest {
      */
     @Test
     public void work_will_preseve_collections() throws Exception {
-        final InputStream inputStream = getClass().getResourceAsStream("/with_collection.xml");
-        final Model model = catalogFilter.work(inputStream);
+        try (final InputStream inputStream = getClass().getResourceAsStream("/with_collection.xml")) {
+            final Model model = catalogFilter.work(inputStream);
 
-        Assertions.assertEquals(8, countInstances(model, DCAT.Dataset));
-        Assertions.assertEquals(7, countInstances(model, DCAT.Distribution));
+            Assertions.assertEquals(8, countInstances(model, DCAT.Dataset));
+            Assertions.assertEquals(7, countInstances(model, DCAT.Distribution));
 
-        inputStream.close();
+        }
     }
 
     /**
@@ -160,23 +160,22 @@ public class CatalogFilterTest {
      */
     @Test
     public void work_will_add_accessRights() throws Exception {
-        final InputStream inputStream = getClass().getResourceAsStream("/with_collection.xml");
-        final Model model = catalogFilter.work(inputStream);
-
-        // Every dataset has a dct:accessRights statement
-        final ResIterator it = model.listSubjectsWithProperty(RDF.type, DCAT.Dataset);
-        int count = 0;
-        while (it.hasNext()) {
-            final Resource distribution = it.next();
-            count++;
-            final Resource accessRights = distribution.getPropertyResourceValue(DCTerms.accessRights);
-            assertNotNull(accessRights);
-            assertEquals("http://publications.europa.eu/resource/authority/access-right/PUBLIC", accessRights.getURI());
+        try (final InputStream inputStream = getClass().getResourceAsStream("/with_collection.xml")) {
+            final Model model = catalogFilter.work(inputStream);
+
+            // Every dataset has a dct:accessRights statement
+            final ResIterator it = model.listSubjectsWithProperty(RDF.type, DCAT.Dataset);
+            int count = 0;
+            while (it.hasNext()) {
+                final Resource distribution = it.next();
+                count++;
+                final Resource accessRights = distribution.getPropertyResourceValue(DCTerms.accessRights);
+                assertNotNull(accessRights);
+                assertEquals("http://publications.europa.eu/resource/authority/access-right/PUBLIC", accessRights.getURI());
+            }
+
+            assertEquals(8, count);
         }
-
-        assertEquals(8, count);
-
-        inputStream.close();
     }
 
     /**
@@ -184,24 +183,23 @@ public class CatalogFilterTest {
      */
     @Test
     public void work_will_add_rights() throws Exception {
-        final InputStream inputStream = getClass().getResourceAsStream("/with_collection.xml");
-        final Model model = catalogFilter.work(inputStream);
-
-        // Every dataset has a dct:accessRights statement
-        final ResIterator it = model.listSubjectsWithProperty(RDF.type, DCAT.Distribution);
-        int count = 0;
-        while (it.hasNext()) {
-            final Resource distribution = it.next();
-            count++;
-            final Resource rights = distribution.getPropertyResourceValue(DCTerms.rights);
-            final Resource license = distribution.getPropertyResourceValue(DCTerms.license);
-            assertNotNull(rights);
-            assertEquals(license, rights);
+        try (final InputStream inputStream = getClass().getResourceAsStream("/with_collection.xml")) {
+            final Model model = catalogFilter.work(inputStream);
+
+            // Every dataset has a dct:accessRights statement
+            final ResIterator it = model.listSubjectsWithProperty(RDF.type, DCAT.Distribution);
+            int count = 0;
+            while (it.hasNext()) {
+                final Resource distribution = it.next();
+                count++;
+                final Resource rights = distribution.getPropertyResourceValue(DCTerms.rights);
+                final Resource license = distribution.getPropertyResourceValue(DCTerms.license);
+                assertNotNull(rights);
+                assertEquals(license, rights);
+            }
+
+            assertEquals(7, count);
         }
-
-        assertEquals(7, count);
-
-        inputStream.close();
     }
 
     /**
@@ -211,7 +209,7 @@ public class CatalogFilterTest {
     @Test
     public void work_invalid_iri() {
         final InputStream inputStream = getClass().getResourceAsStream("/invalid_iri.xml");
-        final Model model = catalogFilter.work(inputStream);
+        catalogFilter.work(inputStream);
     }
 
     /**
@@ -221,13 +219,12 @@ public class CatalogFilterTest {
     public void work_will_remove_non_government_organization() throws IOException {
         catalogFilter.unwantedPublishers = Collections.singletonList("https://opendata.schleswig-holstein.de/organization/ee4df032-ec5f-4726-b7ad-a2c708fb53ec");
 
-        final InputStream inputStream = getClass().getResourceAsStream("/two-organizations.xml");
-        final Model model = catalogFilter.work(inputStream);
-
-        Assertions.assertEquals(1, countInstances(model, DCAT.Dataset));
-        Assertions.assertEquals(1, countInstances(model, DCAT.Distribution));
+        try (final InputStream inputStream = getClass().getResourceAsStream("/two-organizations.xml")) {
+            final Model model = catalogFilter.work(inputStream);
 
-        inputStream.close();
+            Assertions.assertEquals(1, countInstances(model, DCAT.Dataset));
+            Assertions.assertEquals(1, countInstances(model, DCAT.Distribution));
+        }
     }
 
     /**
@@ -235,9 +232,24 @@ public class CatalogFilterTest {
      * catalog proxy must be able to cope with this.
      */
     @Test
-    public void work_invalid_uri() {
-        final InputStream inputStream = getClass().getResourceAsStream("/invalid_uri.xml");
-        catalogFilter.work(inputStream);
+    public void work_invalid_uri() throws IOException {
+        try (InputStream inputStream = getClass().getResourceAsStream("/invalid_uri.xml")) {
+            catalogFilter.work(inputStream);
+        }
     }
 
+    @Test
+    @org.junit.jupiter.api.Disabled
+    public void repairMediaType() {
+        final Model model = parseRdf(getClass().getResourceAsStream("/with_downloadURL.xml"));
+        catalogFilter.rewriteDownloadAndAccessURLs(model);
+
+        final ResIterator it = model.listSubjectsWithProperty(RDF.type, DCAT.Distribution);
+        final Resource distribution = it.next();
+
+        final Resource mediaType = distribution.getPropertyResourceValue(DCAT.mediaType);
+        assertNotNull(mediaType);
+
+        assertEquals("https://www.iana.org/assignments/media-types/text/csv", mediaType.getURI());
+    }
 }
-- 
GitLab