Commit 6ef44fe2 authored by Sonia Zorba's avatar Sonia Zorba
Browse files

Updated ListNodeControllerTest

parent d0e2e1b3
Loading
Loading
Loading
Loading
+0 −14
Original line number Diff line number Diff line
@@ -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);
        }
    }
}
+13 −3
Original line number Diff line number Diff line
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"));
    }
+23 −0
Original line number Diff line number Diff line
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);
        }
    }
}