Commit 732a7ded authored by Sonia Zorba's avatar Sonia Zorba
Browse files

Added test case for task #3636

parent b10011cc
Loading
Loading
Loading
Loading
+39 −0
Original line number Diff line number Diff line
package it.inaf.oats.vospace;

import com.fasterxml.jackson.databind.ObjectMapper;
import static it.inaf.oats.vospace.VOSpaceXmlTestUtil.loadDocument;
import it.inaf.oats.vospace.datamodel.NodeProperties;
import it.inaf.oats.vospace.persistence.NodeDAO;
@@ -35,6 +36,8 @@ public class ListNodeControllerTest {

    private static final String URI_PREFIX = "vos://example.com!vospace";

    private static final ObjectMapper MAPPER = new ObjectMapper();
    
    @MockBean
    private NodeDAO dao;

@@ -108,6 +111,42 @@ public class ListNodeControllerTest {
                .andExpect(status().is2xxSuccessful());       
    }
    
    //@Test
    public void testListOnlyReadableChildren() throws Exception {

        ContainerNode node = new ContainerNode();
        node.setUri(URI_PREFIX + "/mynode");
        Property creator = new Property();
        creator.setUri(NodeProperties.CREATOR_URI);
        creator.setValue("user1");
        node.getProperties().add(creator);

        // hidden node
        Node child1 = getDataNodeByOwnership("user2", "group5");
        child1.setUri(URI_PREFIX + "/mynode/child1");
        node.getNodes().add(child1);
        
        // visible node
        Node child2 = getDataNodeByOwnership("user1", "group1");
        child2.setUri(URI_PREFIX + "/mynode/child2");
        node.getNodes().add(child2);
        
        assertEquals(2, node.getNodes().size());

        when(dao.listNode(eq("/mynode"))).thenReturn(Optional.of(node));

        String response = mockMvc.perform(get("/nodes/mynode")
                .header("Authorization", "Bearer user1_token")
                .accept(MediaType.APPLICATION_JSON))
                .andExpect(status().is2xxSuccessful())
                .andReturn().getResponse().getContentAsString();
        
        ContainerNode result = MAPPER.readValue(response, ContainerNode.class);
        
        assertEquals(1, result.getNodes().size());
        assertEquals(URI_PREFIX + "/mynode/child2", result.getNodes().get(0).getUri());
    }

    private Optional<Node> getRootNode() {
        ContainerNode root = new ContainerNode();
        root.setUri(URI_PREFIX + "/");