You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by st...@apache.org on 2018/05/10 12:33:23 UTC
[3/7] incubator-taverna-language git commit: TAVERNA-1044: Test
combine archive parsing from JWS Online
TAVERNA-1044: Test combine archive parsing from JWS Online
.. and a suggested fix variant
Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/commit/e33a636e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/e33a636e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/e33a636e
Branch: refs/heads/master
Commit: e33a636ed2d3dfe01df8fb01bafe39fde50f2d76
Parents: 72899c6
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu May 10 11:20:44 2018 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu May 10 11:20:44 2018 +0100
----------------------------------------------------------------------
.../manifest/combine/TestCombineManifest.java | 95 +++++++++++++++++++-
1 file changed, 93 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/e33a636e/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/combine/TestCombineManifest.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/combine/TestCombineManifest.java b/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/combine/TestCombineManifest.java
index 7fc54ed..4ac0dfa 100644
--- a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/combine/TestCombineManifest.java
+++ b/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/combine/TestCombineManifest.java
@@ -8,9 +8,9 @@ package org.apache.taverna.robundle.manifest.combine;
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -21,6 +21,8 @@ package org.apache.taverna.robundle.manifest.combine;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.io.InputStream;
@@ -28,6 +30,8 @@ import java.net.URI;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
+import java.nio.file.attribute.FileTime;
+import java.time.Instant;
import org.apache.taverna.robundle.Bundle;
import org.apache.taverna.robundle.Bundles;
@@ -152,4 +156,91 @@ public class TestCombineManifest {
}
}
+ @Test
+ public void convertJWSOnlineBroken() throws Exception {
+ Path file = Files.createTempFile("jwsonline-broken", ".omex");
+ try (InputStream src = getClass().getResourceAsStream(
+ "/combine/jwsonline-broken-date.sedx")) {
+ Files.copy(src, file, StandardCopyOption.REPLACE_EXISTING);
+ }
+ System.out.println(file);
+ try (Bundle bundle = Bundles.openBundle(file)) {
+ Manifest manifest = bundle.getManifest();
+
+ Path sedml = bundle.getPath("/sedml/testtavernalanguage-user.sedml");
+ assertTrue(Files.isRegularFile(sedml));
+ PathMetadata sedMlAggr = manifest.getAggregation(sedml);
+ assertEquals(URI.create("http://identifiers.org/combine.specifications/sed-ml.level-1.version-3"),
+ sedMlAggr.getConformsTo());
+
+ Path metadataXml = bundle.getPath("/metadata.rdf");
+ assertTrue(Files.isRegularFile(metadataXml));
+ PathMetadata metadataAggr = manifest.getAggregation(metadataXml);
+ assertEquals(URI.create("http://identifiers.org/combine.specifications/omex-metadata"),
+ metadataAggr.getConformsTo());
+
+ Path manifestXml = bundle.getRoot().resolve("manifest.xml");
+ assertTrue("manifest.xml not listed in " + manifest.getManifest(),
+ manifest.getManifest().contains(manifestXml));
+
+ // TAVERNA-1044: Can we still parse dcterms:rreator even if there
+ // is an RDF/XML syntactic error elsewhere?
+ Agent createdBy = manifest.getCreatedBy();
+ assertNotNull("Did not parse dcterms:creator", createdBy);
+ assertEquals(URI.create("mbox:stain@apache.org"),
+ createdBy.getUri());
+
+ /**
+ * TAVERNA-1044 - invalid RDF/XML from JWS Online means we can't parse
+ * dcterms:created correctly
+ */
+ //FileTime createdOn = manifest.getCreatedOn();
+ //assertEquals(Instant.parse("2018-05-08T07:35:49Z"), createdOn.toInstant());
+
+ }
+
+ }
+
+
+ @Test
+ public void convertJWSOnlineFixed() throws Exception {
+ Path file = Files.createTempFile("jwsonline-fixed", ".omex");
+ try (InputStream src = getClass().getResourceAsStream(
+ "/combine/jwsonline-fixed-date.sedx")) {
+ Files.copy(src, file, StandardCopyOption.REPLACE_EXISTING);
+ }
+ System.out.println(file);
+ try (Bundle bundle = Bundles.openBundle(file)) {
+ Manifest manifest = bundle.getManifest();
+ Path manifestXml = bundle.getRoot().resolve("manifest.xml");
+ assertTrue("manifest.xml not listed in " + manifest.getManifest(),
+ manifest.getManifest().contains(manifestXml));
+
+
+ Path sedml = bundle.getPath("/sedml/testtavernalanguage-user.sedml");
+ assertTrue(Files.isRegularFile(sedml));
+ PathMetadata sedMlAggr = manifest.getAggregation(sedml);
+ assertEquals(URI.create("http://identifiers.org/combine.specifications/sed-ml.level-1.version-3"),
+ sedMlAggr.getConformsTo());
+
+ Path metadataXml = bundle.getPath("/metadata.rdf");
+ assertTrue(Files.isRegularFile(metadataXml));
+ PathMetadata metadataAggr = manifest.getAggregation(metadataXml);
+ assertEquals(URI.create("http://identifiers.org/combine.specifications/omex-metadata"),
+ metadataAggr.getConformsTo());
+
+
+ // Metadata about the COMBINE archive itself, aka the RO,
+ // correctly parsed from metadata.rdf
+ Agent createdBy = manifest.getCreatedBy();
+ assertNotNull("Did not parse dcterms:creator", createdBy);
+ assertEquals(URI.create("mbox:stain@apache.org"),
+ createdBy.getUri());
+
+ FileTime createdOn = manifest.getCreatedOn();
+ assertEquals(Instant.parse("2018-05-08T07:35:49Z"), createdOn.toInstant());
+ }
+
+ }
+
}