From 646ced9bae0695c7ef88c6ad03a11e117801c9cb Mon Sep 17 00:00:00 2001 From: Sonia Zorba Date: Mon, 25 Jan 2021 11:50:20 +0100 Subject: [PATCH] Handled xlink namespace and added ShortJobDescriptionTest --- .../net/ivoa/xml/uws/v1/package-info.java | 4 ++ .../net/ivoa/xml/vospace/v2/package-info.java | 4 ++ .../net/ivoa/xml/uws/v1/JobSummaryTest.java | 2 +- .../xml/uws/v1/ShortJobDescriptionTest.java | 68 +++++++++++++++++++ 4 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 src/test/java/net/ivoa/xml/uws/v1/ShortJobDescriptionTest.java diff --git a/src/main/java/net/ivoa/xml/uws/v1/package-info.java b/src/main/java/net/ivoa/xml/uws/v1/package-info.java index 9146854..ed3178b 100644 --- a/src/main/java/net/ivoa/xml/uws/v1/package-info.java +++ b/src/main/java/net/ivoa/xml/uws/v1/package-info.java @@ -19,6 +19,10 @@ @javax.xml.bind.annotation.XmlNs( namespaceURI = "http://www.w3.org/2001/XMLSchema-instance", prefix = "xsi" + ), + @javax.xml.bind.annotation.XmlNs( + namespaceURI = "http://www.w3.org/1999/xlink", + prefix = "xlink" ) } // diff --git a/src/main/java/net/ivoa/xml/vospace/v2/package-info.java b/src/main/java/net/ivoa/xml/vospace/v2/package-info.java index 65f6dfb..16b0c73 100644 --- a/src/main/java/net/ivoa/xml/vospace/v2/package-info.java +++ b/src/main/java/net/ivoa/xml/vospace/v2/package-info.java @@ -18,6 +18,10 @@ @javax.xml.bind.annotation.XmlNs( namespaceURI = "http://www.w3.org/2001/XMLSchema-instance", prefix = "xsi" + ), + @javax.xml.bind.annotation.XmlNs( + namespaceURI = "http://www.w3.org/1999/xlink", + prefix = "xlink" ) } // diff --git a/src/test/java/net/ivoa/xml/uws/v1/JobSummaryTest.java b/src/test/java/net/ivoa/xml/uws/v1/JobSummaryTest.java index 56f351a..713181d 100644 --- a/src/test/java/net/ivoa/xml/uws/v1/JobSummaryTest.java +++ b/src/test/java/net/ivoa/xml/uws/v1/JobSummaryTest.java @@ -67,7 +67,7 @@ public class JobSummaryTest { transfer.setDirection("pullFromVoSpace"); Protocol protocol1 = new Protocol(); protocol1.setUri("ivo://ivoa.net/vospace/core#httpget"); - Protocol protocol2= new Protocol(); + Protocol protocol2 = new Protocol(); protocol2.setUri("ivo://ivoa.net/vospace/core#httpsget"); transfer.getProtocols().add(protocol1); transfer.getProtocols().add(protocol2); diff --git a/src/test/java/net/ivoa/xml/uws/v1/ShortJobDescriptionTest.java b/src/test/java/net/ivoa/xml/uws/v1/ShortJobDescriptionTest.java new file mode 100644 index 0000000..8630dad --- /dev/null +++ b/src/test/java/net/ivoa/xml/uws/v1/ShortJobDescriptionTest.java @@ -0,0 +1,68 @@ +package net.ivoa.xml.uws.v1; + +import java.io.StringReader; +import java.io.StringWriter; +import javax.xml.bind.JAXB; +import javax.xml.datatype.DatatypeConfigurationException; +import javax.xml.datatype.DatatypeFactory; +import javax.xml.datatype.XMLGregorianCalendar; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.Test; + +public class ShortJobDescriptionTest { + + @Test + public void testXmlSerialization() throws Exception { + + ShortJobDescription jobDesc = getShortJobDescription(); + + String xml; + try ( StringWriter sw = new StringWriter()) { + JAXB.marshal(jobDesc, sw); + xml = sw.toString(); + System.out.println(xml); + } + + assertTrue(xml.contains("xlink:type=\"type\"")); + + try ( StringReader sr = new StringReader(xml)) { + ShortJobDescription deserialized = JAXB.unmarshal(sr, ShortJobDescription.class); + verifyJobsAreEquals(deserialized); + } + } + + private ShortJobDescription getShortJobDescription() { + + ShortJobDescription jobDesc = new ShortJobDescription(); + jobDesc.setCreationTime(getXmlDate("2015-05-26T11:06:45.713")); + jobDesc.setId("job_id"); + jobDesc.setPhase(ExecutionPhase.EXECUTING); + jobDesc.setHref("href"); + jobDesc.setOwnerId("owner_id"); + jobDesc.setRunId("run_id"); + jobDesc.setType("type"); + + return jobDesc; + } + + private XMLGregorianCalendar getXmlDate(String dateTimeString) { + try { + return DatatypeFactory.newInstance().newXMLGregorianCalendar(dateTimeString); + } catch (DatatypeConfigurationException ex) { + throw new RuntimeException(ex); + } + } + + private void verifyJobsAreEquals(ShortJobDescription deserialized) { + + assertEquals("href", deserialized.getHref()); + assertEquals("job_id", deserialized.getId()); + assertEquals("owner_id", deserialized.getOwnerId()); + assertEquals("run_id", deserialized.getRunId()); + assertEquals("type", deserialized.getType()); + assertEquals("href", deserialized.getHref()); + assertEquals("2015-05-26T11:06:45.713", deserialized.getCreationTime().toString()); + assertEquals(ExecutionPhase.EXECUTING, deserialized.getPhase()); + } +} -- GitLab