Loading src/test/java/it/inaf/oats/vospace/UriServiceTest.java +74 −1 Original line number Diff line number Diff line Loading @@ -4,6 +4,8 @@ import it.inaf.ia2.aa.ServletRapClient; import it.inaf.ia2.aa.data.User; import it.inaf.oats.vospace.datamodel.NodeProperties; import it.inaf.oats.vospace.exception.InvalidArgumentException; import it.inaf.oats.vospace.exception.NodeBusyException; import it.inaf.oats.vospace.exception.PermissionDeniedException; import it.inaf.oats.vospace.exception.ProtocolNotSupportedException; import it.inaf.oats.vospace.persistence.LocationDAO; import it.inaf.oats.vospace.persistence.NodeDAO; Loading @@ -19,6 +21,7 @@ import net.ivoa.xml.vospace.v2.Property; import net.ivoa.xml.vospace.v2.Protocol; import net.ivoa.xml.vospace.v2.Transfer; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.fail; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; Loading Loading @@ -136,6 +139,76 @@ public class UriServiceTest { assertEquals("http://file-service/mydata1?jobId=job-id&token=<new-token>", job.getResults().get(0).getHref()); } @Test public void testPrivateUrlPermissionDenied() { Node node = new DataNode(); Property creator = new Property(); creator.setUri(NodeProperties.CREATOR_URI); creator.setValue("user3"); node.getProperties().add(creator); Property readgroup = new Property(); readgroup.setUri(NodeProperties.GROUP_READ_URI); readgroup.setValue("group1000"); node.getProperties().add(readgroup); when(nodeDAO.listNode(eq("/mydata1"))).thenReturn(Optional.of(node)); User user = mock(User.class); when(user.getAccessToken()).thenReturn("<token>"); when(user.getName()).thenReturn("user1"); when(servletRequest.getUserPrincipal()).thenReturn(user); when(rapClient.exchangeToken(argThat(req -> { assertEquals("<token>", req.getSubjectToken()); assertEquals("http://file-service/mydata1", req.getResource()); return true; }), any())).thenReturn("<new-token>"); JobSummary job = getJob(); Transfer tr = uriService.getTransfer(job); assertThrows(PermissionDeniedException.class, ()->{ uriService.setTransferJobResult(job, tr);}); } @Test public void testPrivateUrlNodeBusy() { DataNode node = new DataNode(); Property creator = new Property(); creator.setUri(NodeProperties.CREATOR_URI); creator.setValue("user1"); node.getProperties().add(creator); Property readgroup = new Property(); readgroup.setUri(NodeProperties.GROUP_READ_URI); readgroup.setValue("group1"); node.getProperties().add(readgroup); node.setBusy(Boolean.TRUE); when(nodeDAO.listNode(eq("/mydata1"))).thenReturn(Optional.of(node)); User user = mock(User.class); when(user.getAccessToken()).thenReturn("<token>"); when(user.getName()).thenReturn("user1"); when(servletRequest.getUserPrincipal()).thenReturn(user); when(rapClient.exchangeToken(argThat(req -> { assertEquals("<token>", req.getSubjectToken()); assertEquals("http://file-service/mydata1", req.getResource()); return true; }), any())).thenReturn("<new-token>"); JobSummary job = getJob(); Transfer tr = uriService.getTransfer(job); assertThrows(NodeBusyException.class, ()->{ uriService.setTransferJobResult(job, tr);}); } @Test public void pushToNonexistentNode() { Loading Loading
src/test/java/it/inaf/oats/vospace/UriServiceTest.java +74 −1 Original line number Diff line number Diff line Loading @@ -4,6 +4,8 @@ import it.inaf.ia2.aa.ServletRapClient; import it.inaf.ia2.aa.data.User; import it.inaf.oats.vospace.datamodel.NodeProperties; import it.inaf.oats.vospace.exception.InvalidArgumentException; import it.inaf.oats.vospace.exception.NodeBusyException; import it.inaf.oats.vospace.exception.PermissionDeniedException; import it.inaf.oats.vospace.exception.ProtocolNotSupportedException; import it.inaf.oats.vospace.persistence.LocationDAO; import it.inaf.oats.vospace.persistence.NodeDAO; Loading @@ -19,6 +21,7 @@ import net.ivoa.xml.vospace.v2.Property; import net.ivoa.xml.vospace.v2.Protocol; import net.ivoa.xml.vospace.v2.Transfer; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.fail; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; Loading Loading @@ -136,6 +139,76 @@ public class UriServiceTest { assertEquals("http://file-service/mydata1?jobId=job-id&token=<new-token>", job.getResults().get(0).getHref()); } @Test public void testPrivateUrlPermissionDenied() { Node node = new DataNode(); Property creator = new Property(); creator.setUri(NodeProperties.CREATOR_URI); creator.setValue("user3"); node.getProperties().add(creator); Property readgroup = new Property(); readgroup.setUri(NodeProperties.GROUP_READ_URI); readgroup.setValue("group1000"); node.getProperties().add(readgroup); when(nodeDAO.listNode(eq("/mydata1"))).thenReturn(Optional.of(node)); User user = mock(User.class); when(user.getAccessToken()).thenReturn("<token>"); when(user.getName()).thenReturn("user1"); when(servletRequest.getUserPrincipal()).thenReturn(user); when(rapClient.exchangeToken(argThat(req -> { assertEquals("<token>", req.getSubjectToken()); assertEquals("http://file-service/mydata1", req.getResource()); return true; }), any())).thenReturn("<new-token>"); JobSummary job = getJob(); Transfer tr = uriService.getTransfer(job); assertThrows(PermissionDeniedException.class, ()->{ uriService.setTransferJobResult(job, tr);}); } @Test public void testPrivateUrlNodeBusy() { DataNode node = new DataNode(); Property creator = new Property(); creator.setUri(NodeProperties.CREATOR_URI); creator.setValue("user1"); node.getProperties().add(creator); Property readgroup = new Property(); readgroup.setUri(NodeProperties.GROUP_READ_URI); readgroup.setValue("group1"); node.getProperties().add(readgroup); node.setBusy(Boolean.TRUE); when(nodeDAO.listNode(eq("/mydata1"))).thenReturn(Optional.of(node)); User user = mock(User.class); when(user.getAccessToken()).thenReturn("<token>"); when(user.getName()).thenReturn("user1"); when(servletRequest.getUserPrincipal()).thenReturn(user); when(rapClient.exchangeToken(argThat(req -> { assertEquals("<token>", req.getSubjectToken()); assertEquals("http://file-service/mydata1", req.getResource()); return true; }), any())).thenReturn("<new-token>"); JobSummary job = getJob(); Transfer tr = uriService.getTransfer(job); assertThrows(NodeBusyException.class, ()->{ uriService.setTransferJobResult(job, tr);}); } @Test public void pushToNonexistentNode() { Loading