Differential D7890 Diff 28929 java/src/test/java/org/softwareheritage/graph/rpc/TraverseLeavesTest.java
Changeset View
Changeset View
Standalone View
Standalone View
java/src/test/java/org/softwareheritage/graph/rpc/TraverseLeavesTest.java
- This file was moved from java/src/test/java/org/softwareheritage/graph/LeavesTest.java.
package org.softwareheritage.graph; | package org.softwareheritage.graph.rpc; | ||||
import org.junit.jupiter.api.Test; | |||||
import org.softwareheritage.graph.GraphTest; | |||||
import org.softwareheritage.graph.SWHID; | |||||
import java.util.ArrayList; | import java.util.ArrayList; | ||||
import org.junit.jupiter.api.Test; | public class TraverseLeavesTest extends TraversalServiceTest { | ||||
import org.softwareheritage.graph.server.Endpoint; | private TraversalRequest.Builder getLeavesRequestBuilder(SWHID src) { | ||||
return TraversalRequest.newBuilder().addSrc(src.toString()) | |||||
.setReturnNodes(NodeFilter.newBuilder().setMaxTraversalSuccessors(0).build()); | |||||
} | |||||
// Avoid warnings concerning Endpoint.Output.result manual cast | |||||
@SuppressWarnings("unchecked") | |||||
public class LeavesTest extends GraphTest { | |||||
@Test | @Test | ||||
public void forwardFromSnp() { | public void forwardFromSnp() { | ||||
SwhBidirectionalGraph graph = getGraph(); | TraversalRequest request = getLeavesRequestBuilder(fakeSWHID("snp", 20)).build(); | ||||
SWHID src = new SWHID("swh:1:snp:0000000000000000000000000000000000000020"); | |||||
Endpoint endpoint = new Endpoint(graph, "forward", "*"); | |||||
ArrayList<SWHID> expectedLeaves = new ArrayList<>(); | ArrayList<SWHID> expectedLeaves = new ArrayList<>(); | ||||
expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000001")); | expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000001")); | ||||
expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000004")); | expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000004")); | ||||
expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000005")); | expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000005")); | ||||
expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000007")); | expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000007")); | ||||
ArrayList<SWHID> actualLeaves = (ArrayList) endpoint.leaves(new Endpoint.Input(src)).result; | ArrayList<SWHID> actualLeaves = getSWHIDs(client.traverse(request)); | ||||
GraphTest.assertEqualsAnyOrder(expectedLeaves, actualLeaves); | GraphTest.assertEqualsAnyOrder(expectedLeaves, actualLeaves); | ||||
} | } | ||||
@Test | @Test | ||||
public void forwardFromRel() { | public void forwardFromRel() { | ||||
SwhBidirectionalGraph graph = getGraph(); | TraversalRequest request = getLeavesRequestBuilder(fakeSWHID("rel", 19)).build(); | ||||
SWHID src = new SWHID("swh:1:rel:0000000000000000000000000000000000000019"); | ArrayList<SWHID> actualLeaves = getSWHIDs(client.traverse(request)); | ||||
Endpoint endpoint = new Endpoint(graph, "forward", "*"); | |||||
ArrayList<SWHID> expectedLeaves = new ArrayList<>(); | ArrayList<SWHID> expectedLeaves = new ArrayList<>(); | ||||
expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000015")); | expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000015")); | ||||
expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000014")); | expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000014")); | ||||
expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000001")); | expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000001")); | ||||
expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000004")); | expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000004")); | ||||
expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000005")); | expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000005")); | ||||
expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000007")); | expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000007")); | ||||
expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000011")); | expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000011")); | ||||
ArrayList<SWHID> actualLeaves = (ArrayList) endpoint.leaves(new Endpoint.Input(src)).result; | |||||
GraphTest.assertEqualsAnyOrder(expectedLeaves, actualLeaves); | GraphTest.assertEqualsAnyOrder(expectedLeaves, actualLeaves); | ||||
} | } | ||||
@Test | @Test | ||||
public void backwardFromLeaf() { | public void backwardFromLeaf() { | ||||
SwhBidirectionalGraph graph = getGraph(); | TraversalRequest request1 = getLeavesRequestBuilder(fakeSWHID("cnt", 15)).setDirection(GraphDirection.BACKWARD) | ||||
.build(); | |||||
Endpoint endpoint1 = new Endpoint(graph, "backward", "*"); | ArrayList<SWHID> actualLeaves1 = getSWHIDs(client.traverse(request1)); | ||||
SWHID src1 = new SWHID("swh:1:cnt:0000000000000000000000000000000000000015"); | |||||
ArrayList<SWHID> expectedLeaves1 = new ArrayList<>(); | ArrayList<SWHID> expectedLeaves1 = new ArrayList<>(); | ||||
expectedLeaves1.add(new SWHID("swh:1:rel:0000000000000000000000000000000000000019")); | expectedLeaves1.add(new SWHID("swh:1:rel:0000000000000000000000000000000000000019")); | ||||
ArrayList<SWHID> actualLeaves1 = (ArrayList) endpoint1.leaves(new Endpoint.Input(src1)).result; | |||||
GraphTest.assertEqualsAnyOrder(expectedLeaves1, actualLeaves1); | GraphTest.assertEqualsAnyOrder(expectedLeaves1, actualLeaves1); | ||||
Endpoint endpoint2 = new Endpoint(graph, "backward", "*"); | TraversalRequest request2 = getLeavesRequestBuilder(fakeSWHID("cnt", 4)).setDirection(GraphDirection.BACKWARD) | ||||
SWHID src2 = new SWHID("swh:1:cnt:0000000000000000000000000000000000000004"); | .build(); | ||||
ArrayList<SWHID> actualLeaves2 = getSWHIDs(client.traverse(request2)); | |||||
ArrayList<SWHID> expectedLeaves2 = new ArrayList<>(); | ArrayList<SWHID> expectedLeaves2 = new ArrayList<>(); | ||||
expectedLeaves2.add(new SWHID(TEST_ORIGIN_ID)); | expectedLeaves2.add(new SWHID(TEST_ORIGIN_ID)); | ||||
expectedLeaves2.add(new SWHID("swh:1:rel:0000000000000000000000000000000000000019")); | expectedLeaves2.add(new SWHID("swh:1:rel:0000000000000000000000000000000000000019")); | ||||
ArrayList<SWHID> actualLeaves2 = (ArrayList) endpoint2.leaves(new Endpoint.Input(src2)).result; | |||||
GraphTest.assertEqualsAnyOrder(expectedLeaves2, actualLeaves2); | GraphTest.assertEqualsAnyOrder(expectedLeaves2, actualLeaves2); | ||||
} | } | ||||
@Test | @Test | ||||
public void forwardRevToRevOnly() { | public void forwardRevToRevOnly() { | ||||
SwhBidirectionalGraph graph = getGraph(); | TraversalRequest request = getLeavesRequestBuilder(fakeSWHID("rev", 18)).setEdges("rev:rev").build(); | ||||
SWHID src = new SWHID("swh:1:rev:0000000000000000000000000000000000000018"); | ArrayList<SWHID> actualLeaves = getSWHIDs(client.traverse(request)); | ||||
Endpoint endpoint = new Endpoint(graph, "forward", "rev:rev"); | |||||
ArrayList<SWHID> expectedLeaves = new ArrayList<>(); | ArrayList<SWHID> expectedLeaves = new ArrayList<>(); | ||||
expectedLeaves.add(new SWHID("swh:1:rev:0000000000000000000000000000000000000003")); | expectedLeaves.add(new SWHID("swh:1:rev:0000000000000000000000000000000000000003")); | ||||
ArrayList<SWHID> actualLeaves = (ArrayList) endpoint.leaves(new Endpoint.Input(src)).result; | |||||
GraphTest.assertEqualsAnyOrder(expectedLeaves, actualLeaves); | GraphTest.assertEqualsAnyOrder(expectedLeaves, actualLeaves); | ||||
} | } | ||||
@Test | @Test | ||||
public void forwardDirToAll() { | public void forwardDirToAll() { | ||||
SwhBidirectionalGraph graph = getGraph(); | TraversalRequest request = getLeavesRequestBuilder(fakeSWHID("dir", 8)).setEdges("dir:*").build(); | ||||
SWHID src = new SWHID("swh:1:dir:0000000000000000000000000000000000000008"); | ArrayList<SWHID> actualLeaves = getSWHIDs(client.traverse(request)); | ||||
Endpoint endpoint = new Endpoint(graph, "forward", "dir:*"); | |||||
ArrayList<SWHID> expectedLeaves = new ArrayList<>(); | ArrayList<SWHID> expectedLeaves = new ArrayList<>(); | ||||
expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000004")); | expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000004")); | ||||
expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000005")); | expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000005")); | ||||
expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000001")); | expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000001")); | ||||
expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000007")); | expectedLeaves.add(new SWHID("swh:1:cnt:0000000000000000000000000000000000000007")); | ||||
ArrayList<SWHID> actualLeaves = (ArrayList) endpoint.leaves(new Endpoint.Input(src)).result; | |||||
GraphTest.assertEqualsAnyOrder(expectedLeaves, actualLeaves); | GraphTest.assertEqualsAnyOrder(expectedLeaves, actualLeaves); | ||||
} | } | ||||
@Test | @Test | ||||
public void backwardCntToDirDirToDir() { | public void backwardCntToDirDirToDir() { | ||||
SwhBidirectionalGraph graph = getGraph(); | TraversalRequest request = getLeavesRequestBuilder(fakeSWHID("cnt", 5)).setEdges("cnt:dir,dir:dir") | ||||
SWHID src = new SWHID("swh:1:cnt:0000000000000000000000000000000000000005"); | .setDirection(GraphDirection.BACKWARD).build(); | ||||
Endpoint endpoint = new Endpoint(graph, "backward", "cnt:dir,dir:dir"); | ArrayList<SWHID> actualLeaves = getSWHIDs(client.traverse(request)); | ||||
ArrayList<SWHID> expectedLeaves = new ArrayList<>(); | ArrayList<SWHID> expectedLeaves = new ArrayList<>(); | ||||
expectedLeaves.add(new SWHID("swh:1:dir:0000000000000000000000000000000000000012")); | expectedLeaves.add(new SWHID("swh:1:dir:0000000000000000000000000000000000000012")); | ||||
ArrayList<SWHID> actualLeaves = (ArrayList) endpoint.leaves(new Endpoint.Input(src)).result; | |||||
GraphTest.assertEqualsAnyOrder(expectedLeaves, actualLeaves); | GraphTest.assertEqualsAnyOrder(expectedLeaves, actualLeaves); | ||||
} | } | ||||
} | } |