Changeset View
Changeset View
Standalone View
Standalone View
java/src/test/java/org/softwareheritage/graph/rpc/CountNodesTest.java
Show All 9 Lines | |||||
import com.google.protobuf.FieldMask; | import com.google.protobuf.FieldMask; | ||||
import io.grpc.Status; | import io.grpc.Status; | ||||
import io.grpc.StatusRuntimeException; | import io.grpc.StatusRuntimeException; | ||||
import org.junit.jupiter.api.Test; | import org.junit.jupiter.api.Test; | ||||
import org.softwareheritage.graph.SWHID; | import org.softwareheritage.graph.SWHID; | ||||
import static org.junit.jupiter.api.Assertions.assertEquals; | import static org.junit.jupiter.api.Assertions.assertEquals; | ||||
import static org.junit.jupiter.api.Assertions.assertThrows; | import static org.junit.jupiter.api.Assertions.assertThrows; | ||||
import org.junit.jupiter.params.ParameterizedTest; | |||||
import org.junit.jupiter.params.provider.ValueSource; | |||||
public class CountNodesTest extends TraversalServiceTest { | public class CountNodesTest extends TraversalServiceTest { | ||||
private TraversalRequest.Builder getTraversalRequestBuilder(SWHID src) { | private TraversalRequest.Builder getTraversalRequestBuilder(SWHID src) { | ||||
return TraversalRequest.newBuilder().addSrc(src.toString()); | return TraversalRequest.newBuilder().addSrc(src.toString()); | ||||
} | } | ||||
@Test | @Test | ||||
public void testSwhidErrors() { | public void testSwhidErrors() { | ||||
Show All 10 Lines | public class CountNodesTest extends TraversalServiceTest { | ||||
} | } | ||||
@Test | @Test | ||||
public void forwardFromRoot() { | public void forwardFromRoot() { | ||||
CountResponse actual = client.countNodes(getTraversalRequestBuilder(new SWHID(TEST_ORIGIN_ID)).build()); | CountResponse actual = client.countNodes(getTraversalRequestBuilder(new SWHID(TEST_ORIGIN_ID)).build()); | ||||
assertEquals(12, actual.getCount()); | assertEquals(12, actual.getCount()); | ||||
} | } | ||||
@ParameterizedTest | |||||
@ValueSource(ints = {0, 1, 2, 5, 11, 12, 13, 14, 15, Integer.MAX_VALUE}) | |||||
public void forwardFromRootWithLimit(int limit) { | |||||
CountResponse actual = client | |||||
.countNodes(getTraversalRequestBuilder(new SWHID(TEST_ORIGIN_ID)).setMaxMatchingNodes(limit).build()); | |||||
if (limit == 0) { | |||||
assertEquals(12, actual.getCount()); | |||||
} else { | |||||
assertEquals(Math.min(limit, 12), actual.getCount()); | |||||
} | |||||
} | |||||
@Test | @Test | ||||
public void forwardFromMiddle() { | public void forwardFromMiddle() { | ||||
CountResponse actual = client.countNodes(getTraversalRequestBuilder(fakeSWHID("dir", 12)).build()); | CountResponse actual = client.countNodes(getTraversalRequestBuilder(fakeSWHID("dir", 12)).build()); | ||||
assertEquals(8, actual.getCount()); | assertEquals(8, actual.getCount()); | ||||
} | } | ||||
@Test | @Test | ||||
public void forwardRelRev() { | public void forwardRelRev() { | ||||
Show All 18 Lines | public class CountNodesTest extends TraversalServiceTest { | ||||
@Test | @Test | ||||
public void backwardRevToRevRevToRel() { | public void backwardRevToRevRevToRel() { | ||||
CountResponse actual = client.countNodes(getTraversalRequestBuilder(fakeSWHID("rev", 3)) | CountResponse actual = client.countNodes(getTraversalRequestBuilder(fakeSWHID("rev", 3)) | ||||
.setEdges("rev:rev,rev:rel").setDirection(GraphDirection.BACKWARD).build()); | .setEdges("rev:rev,rev:rel").setDirection(GraphDirection.BACKWARD).build()); | ||||
assertEquals(6, actual.getCount()); | assertEquals(6, actual.getCount()); | ||||
} | } | ||||
@ParameterizedTest | |||||
@ValueSource(ints = {1, 2, 3, 4, 5, 6, 7}) | |||||
public void backwardRevToRevRevToRelWithLimit(int limit) { | |||||
CountResponse actual = client.countNodes(getTraversalRequestBuilder(fakeSWHID("rev", 3)) | |||||
.setEdges("rev:rev,rev:rel").setDirection(GraphDirection.BACKWARD).setMaxMatchingNodes(limit).build()); | |||||
assertEquals(Math.min(limit, 6), actual.getCount()); | |||||
} | |||||
@Test | @Test | ||||
public void testWithEmptyMask() { | public void testWithEmptyMask() { | ||||
CountResponse actual = client.countNodes( | CountResponse actual = client.countNodes( | ||||
getTraversalRequestBuilder(fakeSWHID("dir", 12)).setMask(FieldMask.getDefaultInstance()).build()); | getTraversalRequestBuilder(fakeSWHID("dir", 12)).setMask(FieldMask.getDefaultInstance()).build()); | ||||
assertEquals(8, actual.getCount()); | assertEquals(8, actual.getCount()); | ||||
} | } | ||||
} | } |