diff --git a/src/main/java/it/inaf/oats/vospace/VospaceApplication.java b/src/main/java/it/inaf/oats/vospace/VospaceApplication.java index 3ce0214778342320644a9c73a032d64ad673a722..935377bb94d49931e784fdf5e89168255febe3dd 100644 --- a/src/main/java/it/inaf/oats/vospace/VospaceApplication.java +++ b/src/main/java/it/inaf/oats/vospace/VospaceApplication.java @@ -5,9 +5,6 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import it.inaf.ia2.aa.LoginFilter; -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBException; -import javax.xml.bind.Marshaller; @SpringBootApplication public class VospaceApplication { @@ -23,15 +20,4 @@ public class VospaceApplication { registration.addUrlPatterns("/private/*"); return registration; } - - @Bean - public Marshaller marshaller() { - try { - JAXBContext context = JAXBContext.newInstance(); - Marshaller marshaller = context.createMarshaller(); - return marshaller; - } catch (JAXBException e) { - throw new RuntimeException(e); - } - } } diff --git a/src/test/java/it/inaf/oats/vospace/ListNodeControllerTest.java b/src/test/java/it/inaf/oats/vospace/ListNodeControllerTest.java index 3e486d09df64474d5ff3545186524a7f065f3459..f1aa0ba31a9989a0b7d7be670868d0156420902d 100644 --- a/src/test/java/it/inaf/oats/vospace/ListNodeControllerTest.java +++ b/src/test/java/it/inaf/oats/vospace/ListNodeControllerTest.java @@ -1,9 +1,11 @@ package it.inaf.oats.vospace; +import static it.inaf.oats.vospace.VOSpaceXmlTestUtil.loadDocument; import it.inaf.oats.vospace.persistence.NodeDAO; import net.ivoa.xml.vospace.v2.ContainerNode; import net.ivoa.xml.vospace.v2.DataNode; import net.ivoa.xml.vospace.v2.Node; +import static org.junit.jupiter.api.Assertions.assertEquals; import org.junit.jupiter.api.Test; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.times; @@ -18,6 +20,7 @@ import org.springframework.test.web.servlet.MockMvc; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import org.w3c.dom.Document; @SpringBootTest @AutoConfigureMockMvc @@ -42,7 +45,9 @@ public class ListNodeControllerTest { .andExpect(status().isOk()) .andReturn().getResponse().getContentAsString(); - System.out.println(xml); + Document doc = loadDocument(xml); + assertEquals("vos:node", doc.getDocumentElement().getNodeName()); + assertEquals("vos:ContainerNode", doc.getDocumentElement().getAttribute("xsi:type")); verify(dao, times(1)).listNode(eq("/")); } @@ -52,10 +57,15 @@ public class ListNodeControllerTest { when(dao.listNode(eq("/mynode"))).thenReturn(getDataNode()); - mockMvc.perform(get("/nodes/mynode") + String xml = mockMvc.perform(get("/nodes/mynode") .accept(MediaType.APPLICATION_XML)) .andDo(print()) - .andExpect(status().isOk()); + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + Document doc = loadDocument(xml); + assertEquals("vos:node", doc.getDocumentElement().getNodeName()); + assertEquals("vos:DataNode", doc.getDocumentElement().getAttribute("xsi:type")); verify(dao, times(1)).listNode(eq("/mynode")); } diff --git a/src/test/java/it/inaf/oats/vospace/VOSpaceXmlTestUtil.java b/src/test/java/it/inaf/oats/vospace/VOSpaceXmlTestUtil.java new file mode 100644 index 0000000000000000000000000000000000000000..cc2a122d53445c833dc4677dd10ffe34049656cb --- /dev/null +++ b/src/test/java/it/inaf/oats/vospace/VOSpaceXmlTestUtil.java @@ -0,0 +1,23 @@ +package it.inaf.oats.vospace; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import org.w3c.dom.Document; + +public class VOSpaceXmlTestUtil { + + public static Document loadDocument(String xml) throws Exception { + + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + factory.setValidating(false); + factory.setNamespaceAware(true); + + DocumentBuilder builder = factory.newDocumentBuilder(); + + try ( InputStream in = new ByteArrayInputStream(xml.getBytes())) { + return builder.parse(in); + } + } +}