From db787ee4877f6caceb03208eec6189f66b6c2513 Mon Sep 17 00:00:00 2001 From: zyxxoo <1318247699@qq.com> Date: Thu, 3 Jun 2021 20:40:10 +0800 Subject: [PATCH 01/11] feat: add allShortestPathsAPI unit test --- .../api/AllShortestPathsAPITest.java | 32 ++++++++ .../com/baidu/hugegraph/api/BaseApiTest.java | 81 +++++++++++++++++++ 2 files changed, 113 insertions(+) create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/AllShortestPathsAPITest.java diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/AllShortestPathsAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/AllShortestPathsAPITest.java new file mode 100644 index 0000000000..84a2affbd1 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/AllShortestPathsAPITest.java @@ -0,0 +1,32 @@ +package com.baidu.hugegraph.api; + +import java.util.Map; + +import org.junit.Before; +import org.junit.Test; + +import com.google.common.collect.ImmutableMap; + + +public class AllShortestPathsAPITest extends BaseApiTest { + public static String path = "graphs/hugegraph/traversers/allshortestpaths"; + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void get() { + Map name2Ids = getAllName2VertexIds(); + String markoId = name2Ids.get("marko"); + String vadasId= name2Ids.get("vadas"); + Map map = ImmutableMap.of("source", "\""+ markoId+"\"", + "target", "\""+vadasId+"\"", + "max_depth", 100); + assertResponseStatus(200, client().get(path, map)); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/BaseApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/BaseApiTest.java index 9f17e4c201..950456575b 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/BaseApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/BaseApiTest.java @@ -64,6 +64,7 @@ public class BaseApiTest { private static final String SCHEMA_ILS = "/schema/indexlabels"; private static final String GRAPH_VERTEX = "/graph/vertices"; private static final String GRAPH_EDGE = "/graph/edges"; + private static final String BATCH = "/batch"; private static RestClient client; @@ -296,6 +297,71 @@ protected static void initIndexLabel() { assertResponseStatus(202, r); } + protected static void initEdge() { + String path = URL_PREFIX + GRAPH_EDGE + BATCH; + Map ret = getAllName2VertexIds(); + System.out.println(ret); + String markoId = ret.get("marko"); + String peterId = ret.get("peter"); + String joshId = ret.get("josh"); + String vadasId = ret.get("vadas"); + String rippleId = ret.get("ripple"); + + createAndAssert(path, "[" + + "{" + + "\"label\": \"knows\"," + + "\"outV\": \"" + markoId + "\"," + + "\"inV\": \""+ peterId +"\"," + + "\"outVLabel\": \"person\"," + + "\"inVLabel\": \"person\"," + + "\"properties\": {" + + "\"date\": \"2021-01-01\"," + + "\"weight\":0.5}" + + "}," + + "{" + + "\"label\": \"knows\"," + + "\"outV\": \"" + peterId + "\"," + + "\"inV\": \""+ joshId +"\"," + + "\"outVLabel\": \"person\"," + + "\"inVLabel\": \"person\"," + + "\"properties\": {" + + "\"date\": \"2021-01-01\"," + + "\"weight\":0.5}" + + "}," + + "{" + + "\"label\": \"knows\"," + + "\"outV\": \"" + joshId + "\"," + + "\"inV\": \""+ vadasId +"\"," + + "\"outVLabel\": \"person\"," + + "\"inVLabel\": \"person\"," + + "\"properties\": {" + + "\"date\": \"2021-01-01\"," + + "\"weight\":0.5}" + + "}," + + "{" + + "\"label\": \"created\"," + + "\"outV\": \"" + markoId + "\"," + + "\"inV\": \""+ rippleId +"\"," + + "\"outVLabel\": \"person\"," + + "\"inVLabel\": \"software\"," + + "\"properties\": {" + + "\"date\": \"2021-01-01\"," + + "\"weight\":0.5}" + + "}," + + "{" + + "\"label\": \"created\"," + + "\"outV\": \"" + peterId + "\"," + + "\"inV\": \""+ rippleId +"\"," + + "\"outVLabel\": \"person\"," + + "\"inVLabel\": \"software\"," + + "\"properties\": {" + + "\"date\": \"2021-01-01\"," + + "\"weight\":0.5}" + + "}" + + "]"); + + } + protected static void initVertex() { String path = URL_PREFIX + GRAPH_VERTEX; @@ -361,6 +427,21 @@ protected static Response createAndAssert(String path, String body) { return r; } + protected static Map getAllName2VertexIds() { + Response r = client.get(URL_PREFIX + GRAPH_VERTEX); + String content = r.readEntity(String.class); + if (r.getStatus() != 200) { + throw new HugeException("Failed to get vertex id: %s", content); + } + + @SuppressWarnings("rawtypes") + List list = readList(content, "vertices", Map.class); + + return list.stream().filter(map -> map.get("properties") != null && ((Map)map.get("properties")).get("name") != null).collect( + Collectors.toMap(map -> ((Map) map.get("properties")).get( + "name").toString(), map -> map.get("id").toString())); + } + protected static String getVertexId(String label, String key, String value) throws IOException { String props = mapper.writeValueAsString(ImmutableMap.of(key, value)); From aa8100bb37613bacf22defcfee586c28470fef4b Mon Sep 17 00:00:00 2001 From: zyxxoo <1318247699@qq.com> Date: Fri, 4 Jun 2021 15:31:28 +0800 Subject: [PATCH 02/11] feat: add countAPI and CrosspointsAPI and CustomizedCrosspointsAPI unit tests --- .../com/baidu/hugegraph/api/CountAPITest.java | 51 ++++++++++++++++ .../hugegraph/api/CrosspointsAPITest.java | 42 +++++++++++++ .../api/CustomizedCrosspointsAPITest.java | 61 +++++++++++++++++++ 3 files changed, 154 insertions(+) create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/CountAPITest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/CrosspointsAPITest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/CustomizedCrosspointsAPITest.java diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/CountAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/CountAPITest.java new file mode 100644 index 0000000000..c31aa6761f --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/CountAPITest.java @@ -0,0 +1,51 @@ +package com.baidu.hugegraph.api; + +import static com.baidu.hugegraph.testutil.Assert.assertEquals; + +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Before; +import org.junit.Test; + +public class CountAPITest extends BaseApiTest { + public static String path = "graphs/hugegraph/traversers/count"; + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void count() { + String markoId = getAllName2VertexIds().get("marko"); + Response r = client().post(path, "{\n" + + "\t\"source\": \""+markoId+"\",\n" + + "\t\"steps\": [\n" + + "\t\t{\n" + + "\t\t\t\"labels\": [\n" + + "\t\t\t ],\n" + + "\t\t\t \"degree\": 100,\n" + + "\t\t\t \"skip_degree\": 100\n" + + "\t\t},\n" + + "\t\t\t{\n" + + "\t\t\t\"labels\": [\n" + + "\t\t\t ],\n" + + "\t\t\t \"degree\": 100,\n" + + "\t\t\t \"skip_degree\": 100\n" + + "\t\t}\t\n" + + "\t\t\n" + + "\t]\n" + + "\t\n" + + "}"); + + assertEquals(200, r.getStatus()); + Integer count = (Integer) r.readEntity(Map.class).get("count"); + assertEquals(5, count); + + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/CrosspointsAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/CrosspointsAPITest.java new file mode 100644 index 0000000000..3319c884f6 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/CrosspointsAPITest.java @@ -0,0 +1,42 @@ +package com.baidu.hugegraph.api; + +import static com.baidu.hugegraph.testutil.Assert.assertEquals; + +import java.util.List; +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Before; +import org.junit.Test; + +import com.google.common.collect.ImmutableMap; + +public class CrosspointsAPITest extends BaseApiTest{ + public static String path = "graphs/hugegraph/traversers/crosspoints"; + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + @Test + public void get(){ + Map name2Ids = getAllName2VertexIds(); + String markoId = name2Ids.get("marko"); + String vadasId = name2Ids.get("vadas"); + Map params = ImmutableMap.of("source", + "\"" + markoId + "\"", + "target", + "\"" + vadasId + "\"", + "max_depth", 1000); + Response r = client().get(path, params); + assertEquals(200, r.getStatus()); + Map data = r.readEntity(Map.class); + List> crosspoints = + (List>) data.get("crosspoints"); + assertEquals(2, crosspoints.size()); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/CustomizedCrosspointsAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/CustomizedCrosspointsAPITest.java new file mode 100644 index 0000000000..a2d8525749 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/CustomizedCrosspointsAPITest.java @@ -0,0 +1,61 @@ +package com.baidu.hugegraph.api; + +import static org.junit.Assert.assertEquals; + +import java.util.List; +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.traversers.CustomizedCrosspointsAPI; + +public class CustomizedCrosspointsAPITest extends BaseApiTest{ + public static String path = "graphs/hugegraph/traversers/customizedcrosspoints"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + @Test + public void post() { + Map name2Ids = getAllName2VertexIds(); + String markoId = name2Ids.get("marko"); + String rippleId = name2Ids.get("ripple"); + Response r = client().post(path, "{\n" + + " \"sources\":{\n" + + " \"ids\":[\n" + + " \"" + markoId + "\",\n" + + " \"" + rippleId + "\"\n" + + " ]\n" + + " },\n" + + " \"path_patterns\":[\n" + + " {\n" + + " \"steps\":[\n" + + " {\n" + + " \"direction\":\"BOTH\"," + + " \"labels\":[\n" + + " ],\n" + + " \"degree\":-1\n" + + " }\n" + + " ]\n" + + " }\n" + + " ],\n" + + " \"with_path\":true,\n" + + " \"with_vertex\":true,\n" + + " \"capacity\":-1,\n" + + " \"limit\":-1\n" + + "}"); + + assertEquals(200, r.getStatus()); + Map map = r.readEntity(Map.class); + List paths = (List) map.get("paths"); + assertEquals(2, paths.size()); + } +} From 35439126f3b2077342595eb2748b684cd8b35ce5 Mon Sep 17 00:00:00 2001 From: zyxxoo <1318247699@qq.com> Date: Mon, 7 Jun 2021 20:47:44 +0800 Subject: [PATCH 03/11] feat: add edgeAPI test --- .../com/baidu/hugegraph/api/BaseApiTest.java | 162 +++++++++++------- .../com/baidu/hugegraph/api/CountAPITest.java | 8 +- .../com/baidu/hugegraph/api/EdgesAPITest.java | 77 +++++++++ 3 files changed, 185 insertions(+), 62 deletions(-) create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/EdgesAPITest.java diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/BaseApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/BaseApiTest.java index 950456575b..cd9e2ee88c 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/BaseApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/BaseApiTest.java @@ -22,11 +22,15 @@ import java.io.IOException; import java.net.URLEncoder; import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.Spliterator; +import java.util.Spliterators; import java.util.function.Consumer; import java.util.stream.Collectors; +import java.util.stream.StreamSupport; import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; @@ -35,6 +39,7 @@ import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.core.Response; +import org.glassfish.grizzly.utils.Pair; import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature; import org.glassfish.jersey.client.filter.EncodingFilter; import org.glassfish.jersey.message.GZipEncoder; @@ -134,11 +139,41 @@ public Response get(String path, } public Response get(String path, Map params) { - WebTarget target = this.target.path(path); - for (Map.Entry i : params.entrySet()) { - target = target.queryParam(i.getKey(), i.getValue()); + return this.get(path, + params.entrySet().stream() + .map(entry -> new Pair( + entry.getKey(), entry.getValue())) + .iterator()); + } + + public Response get(String path, + Iterator> params) { + class WrapWebTarget { + WebTarget target; + + WrapWebTarget(WebTarget target) { + this.target = target; + } + + public void accept(Pair pair) { + this.target = this.target.queryParam(pair.getFirst(), + pair.getSecond()); + } } - return target.request().get(); + + return StreamSupport + .stream(Spliterators.spliteratorUnknownSize(params, + Spliterator.ORDERED), + false) + .collect(() -> new WrapWebTarget(this.target.path(path)), + WrapWebTarget::accept, + (t1, t2) -> { + throw new IllegalStateException( + "unreach code"); + }) + .target + .request() + .get(); } public Response post(String path, String content) { @@ -308,57 +343,57 @@ protected static void initEdge() { String rippleId = ret.get("ripple"); createAndAssert(path, "[" + - "{" + - "\"label\": \"knows\"," + - "\"outV\": \"" + markoId + "\"," + - "\"inV\": \""+ peterId +"\"," + - "\"outVLabel\": \"person\"," + - "\"inVLabel\": \"person\"," + - "\"properties\": {" + - "\"date\": \"2021-01-01\"," + - "\"weight\":0.5}" + - "}," + - "{" + - "\"label\": \"knows\"," + - "\"outV\": \"" + peterId + "\"," + - "\"inV\": \""+ joshId +"\"," + - "\"outVLabel\": \"person\"," + - "\"inVLabel\": \"person\"," + - "\"properties\": {" + - "\"date\": \"2021-01-01\"," + - "\"weight\":0.5}" + - "}," + - "{" + - "\"label\": \"knows\"," + - "\"outV\": \"" + joshId + "\"," + - "\"inV\": \""+ vadasId +"\"," + - "\"outVLabel\": \"person\"," + - "\"inVLabel\": \"person\"," + - "\"properties\": {" + - "\"date\": \"2021-01-01\"," + - "\"weight\":0.5}" + - "}," + - "{" + - "\"label\": \"created\"," + - "\"outV\": \"" + markoId + "\"," + - "\"inV\": \""+ rippleId +"\"," + - "\"outVLabel\": \"person\"," + - "\"inVLabel\": \"software\"," + - "\"properties\": {" + - "\"date\": \"2021-01-01\"," + - "\"weight\":0.5}" + - "}," + - "{" + - "\"label\": \"created\"," + - "\"outV\": \"" + peterId + "\"," + - "\"inV\": \""+ rippleId +"\"," + - "\"outVLabel\": \"person\"," + - "\"inVLabel\": \"software\"," + - "\"properties\": {" + - "\"date\": \"2021-01-01\"," + - "\"weight\":0.5}" + - "}" + - "]"); + "{" + + "\"label\": \"knows\"," + + "\"outV\": \"" + markoId + "\"," + + "\"inV\": \"" + peterId + "\"," + + "\"outVLabel\": \"person\"," + + "\"inVLabel\": \"person\"," + + "\"properties\": {" + + "\"date\": \"2021-01-01\"," + + "\"weight\":0.5}" + + "}," + + "{" + + "\"label\": \"knows\"," + + "\"outV\": \"" + peterId + "\"," + + "\"inV\": \"" + joshId + "\"," + + "\"outVLabel\": \"person\"," + + "\"inVLabel\": \"person\"," + + "\"properties\": {" + + "\"date\": \"2021-01-01\"," + + "\"weight\":0.5}" + + "}," + + "{" + + "\"label\": \"knows\"," + + "\"outV\": \"" + joshId + "\"," + + "\"inV\": \"" + vadasId + "\"," + + "\"outVLabel\": \"person\"," + + "\"inVLabel\": \"person\"," + + "\"properties\": {" + + "\"date\": \"2021-01-01\"," + + "\"weight\":0.5}" + + "}," + + "{" + + "\"label\": \"created\"," + + "\"outV\": \"" + markoId + "\"," + + "\"inV\": \"" + rippleId + "\"," + + "\"outVLabel\": \"person\"," + + "\"inVLabel\": \"software\"," + + "\"properties\": {" + + "\"date\": \"2021-01-01\"," + + "\"weight\":0.5}" + + "}," + + "{" + + "\"label\": \"created\"," + + "\"outV\": \"" + peterId + "\"," + + "\"inV\": \"" + rippleId + "\"," + + "\"outVLabel\": \"person\"," + + "\"inVLabel\": \"software\"," + + "\"properties\": {" + + "\"date\": \"2021-01-01\"," + + "\"weight\":0.5}" + + "}" + + "]"); } @@ -437,13 +472,18 @@ protected static Map getAllName2VertexIds() { @SuppressWarnings("rawtypes") List list = readList(content, "vertices", Map.class); - return list.stream().filter(map -> map.get("properties") != null && ((Map)map.get("properties")).get("name") != null).collect( - Collectors.toMap(map -> ((Map) map.get("properties")).get( - "name").toString(), map -> map.get("id").toString())); + return list.stream().filter(map -> map.get("properties") != null && + ((Map) map.get("properties")) + .get("name") != null) + .collect( + Collectors.toMap(map -> ((Map) map.get("properties")) + .get( + "name").toString(), + map -> map.get("id").toString())); } protected static String getVertexId(String label, String key, String value) - throws IOException { + throws IOException { String props = mapper.writeValueAsString(ImmutableMap.of(key, value)); Map params = ImmutableMap.of( "label", label, @@ -541,14 +581,14 @@ protected static List readList(String content, JsonNode element = root.get(key); if (element == null) { throw new HugeException(String.format( - "Can't find value of the key: %s in json.", key)); + "Can't find value of the key: %s in json.", key)); } JavaType type = mapper.getTypeFactory() .constructParametricType(List.class, clazz); return mapper.readValue(element.toString(), type); } catch (IOException e) { throw new HugeException(String.format( - "Failed to deserialize %s", content), e); + "Failed to deserialize %s", content), e); } } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/CountAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/CountAPITest.java index c31aa6761f..e5c8941b13 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/CountAPITest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/CountAPITest.java @@ -32,6 +32,12 @@ public void count() { "\t\t\t \"degree\": 100,\n" + "\t\t\t \"skip_degree\": 100\n" + "\t\t},\n" + + "\t\t{\n" + + "\t\t\t\"labels\": [\n" + + "\t\t\t ],\n" + + "\t\t\t \"degree\": 100,\n" + + "\t\t\t \"skip_degree\": 100\n" + + "\t\t},\n" + "\t\t\t{\n" + "\t\t\t\"labels\": [\n" + "\t\t\t ],\n" + @@ -45,7 +51,7 @@ public void count() { assertEquals(200, r.getStatus()); Integer count = (Integer) r.readEntity(Map.class).get("count"); - assertEquals(5, count); + assertEquals(3, count); } } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/EdgesAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/EdgesAPITest.java new file mode 100644 index 0000000000..18cd03ae0a --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/EdgesAPITest.java @@ -0,0 +1,77 @@ +package com.baidu.hugegraph.api; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; + +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import javax.ws.rs.core.Response; + +import org.glassfish.grizzly.utils.Pair; +import org.junit.Before; +import org.junit.Test; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; + + +public class EdgesAPITest extends BaseApiTest { + public final static String EDGE_PATH = "graphs/hugegraph/traversers/edges"; + public final static String SHARES_PATH = "graphs/hugegraph/traversers" + + "/edges/shards"; + public final static String SCAN_PATH = "graphs/hugegraph/traversers/edges/scan"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void list() { + Map name2Ids = getAllName2VertexIds(); + final String edgeGetPath = "graphs/hugegraph/graph/edges"; + String vadasId = name2Ids.get("vadas"); + Response r = client().get(edgeGetPath, ImmutableMap.of("vertex_id", + "\"" + vadasId + "\"", + "direction", + "IN")); + assertEquals(200, r.getStatus()); + Map entity = r.readEntity(Map.class); + List edges = (List) entity.get("edges"); + assertNotNull(edges); + Optional data = edges.stream().findFirst(); + assertEquals(true, data.isPresent()); + String edgeId = data.get().get("id").toString(); + assertNotNull(edgeId); + + r = client().get(EDGE_PATH, + ImmutableList.of(new Pair("ids", + edgeId)).iterator()); + assertEquals(200, r.getStatus()); + } + + @Test + public void share() { + Response r = client().get(SHARES_PATH, ImmutableMap.of("split_size", + 1048576)); + assertEquals(200, r.getStatus()); + Map entity = r.readEntity(Map.class); + assertNotNull(entity); + } + + @Test + public void scan() { + Response r = client().get(SCAN_PATH, ImmutableMap.of("start", "", + "end", "1048576")); + assertEquals(200, r.getStatus()); + Map entity = r.readEntity(Map.class); + assertNotNull(entity); + } +} From 4b060036385042f3aaa496d8ce4de9a2e8e07c80 Mon Sep 17 00:00:00 2001 From: zyxxoo <1318247699@qq.com> Date: Tue, 8 Jun 2021 18:42:57 +0800 Subject: [PATCH 04/11] feat: add fusiformSimilarityAPITest and EdgesAPITest --- .../com/baidu/hugegraph/api/EdgesAPITest.java | 21 ++++---- .../api/FusiformSimilarityAPITest.java | 54 +++++++++++++++++++ .../api/JaccardSimilarityAPITest.java | 25 +++++++++ .../baidu/hugegraph/api/KneighborAPITest.java | 4 ++ .../com/baidu/hugegraph/api/KoutAPITest.java | 4 ++ .../api/MultiNodeShortestPathAPITest.java | 4 ++ .../hugegraph/api/NeighborRankAPITest.java | 4 ++ .../com/baidu/hugegraph/api/PathsAPITest.java | 4 ++ .../hugegraph/api/PersonalRankAPITest.java | 4 ++ .../com/baidu/hugegraph/api/RaysAPITest.java | 4 ++ 10 files changed, 119 insertions(+), 9 deletions(-) create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/FusiformSimilarityAPITest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/JaccardSimilarityAPITest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/KneighborAPITest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/KoutAPITest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/MultiNodeShortestPathAPITest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/NeighborRankAPITest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/PathsAPITest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/PersonalRankAPITest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/RaysAPITest.java diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/EdgesAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/EdgesAPITest.java index 18cd03ae0a..d314f19e1c 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/EdgesAPITest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/EdgesAPITest.java @@ -2,7 +2,6 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; import java.util.List; import java.util.Map; @@ -58,20 +57,24 @@ public void list() { } @Test - public void share() { + public void shareAndScan() { Response r = client().get(SHARES_PATH, ImmutableMap.of("split_size", 1048576)); assertEquals(200, r.getStatus()); Map entity = r.readEntity(Map.class); assertNotNull(entity); - } - @Test - public void scan() { - Response r = client().get(SCAN_PATH, ImmutableMap.of("start", "", - "end", "1048576")); + List shards = (List) entity.get("shards"); + assertNotNull(shards); + assertEquals(false, shards.isEmpty()); + String start = shards.get(0).get("start").toString(); + String end = shards.get(0).get("end").toString(); + + r = client().get(SCAN_PATH, ImmutableMap.of("start", start, + "end", end)); assertEquals(200, r.getStatus()); - Map entity = r.readEntity(Map.class); - assertNotNull(entity); + Map entity2 = r.readEntity(Map.class); + assertNotNull(entity2); + assertEquals(false, entity2.isEmpty()); } } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/FusiformSimilarityAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/FusiformSimilarityAPITest.java new file mode 100644 index 0000000000..fd6d640f36 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/FusiformSimilarityAPITest.java @@ -0,0 +1,54 @@ +package com.baidu.hugegraph.api; + + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Before; +import org.junit.Test; + +public class FusiformSimilarityAPITest extends BaseApiTest { + final static String path = "graphs/hugegraph/traversers/fusiformsimilarity"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void post() { + Response r = client().post(path, "{\n" + + " \"sources\":{\n" + + " \"ids\":[],\n" + + " \"label\": \"person\",\n" + + " \"properties\": {\n" + + " }\n" + + " },\n" + + " \"label\":\"created\",\n" + + " \"direction\":\"OUT\",\n" + + " \"min_neighbors\":1,\n" + + " \"alpha\":1,\n" + + " \"min_similars\":1,\n" + + " \"top\":0,\n" + + " \"group_property\":\"city\",\n" + + " \"min_groups\":2,\n" + + " \"max_degree\": 10000,\n" + + " \"capacity\": -1,\n" + + " \"limit\": -1,\n" + + " \"with_intermediary\": false,\n" + + " \"with_vertex\":true\n" + + "}"); + assertEquals(200, r.getStatus()); + + Map entity = r.readEntity(Map.class); + assertNotNull(entity); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/JaccardSimilarityAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/JaccardSimilarityAPITest.java new file mode 100644 index 0000000000..e427a0b0ac --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/JaccardSimilarityAPITest.java @@ -0,0 +1,25 @@ +package com.baidu.hugegraph.api; + +import org.junit.Before; +import org.junit.Test; + +public class JaccardSimilarityAPITest extends BaseApiTest { + final static String path = "graphs/hugegraph/traversers/jaccardsimilarity"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void get() { + } + + @Test + public void post() { + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/KneighborAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/KneighborAPITest.java new file mode 100644 index 0000000000..6966db3950 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/KneighborAPITest.java @@ -0,0 +1,4 @@ +package com.baidu.hugegraph.api; + +public class KneighborAPITest { +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/KoutAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/KoutAPITest.java new file mode 100644 index 0000000000..ed184c35e9 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/KoutAPITest.java @@ -0,0 +1,4 @@ +package com.baidu.hugegraph.api; + +public class KoutAPITest { +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/MultiNodeShortestPathAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/MultiNodeShortestPathAPITest.java new file mode 100644 index 0000000000..6938b5c550 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/MultiNodeShortestPathAPITest.java @@ -0,0 +1,4 @@ +package com.baidu.hugegraph.api; + +public class MultiNodeShortestPathAPITest { +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/NeighborRankAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/NeighborRankAPITest.java new file mode 100644 index 0000000000..58214762a0 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/NeighborRankAPITest.java @@ -0,0 +1,4 @@ +package com.baidu.hugegraph.api; + +public class NeighborRankAPITest { +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/PathsAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/PathsAPITest.java new file mode 100644 index 0000000000..0bf738af1b --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/PathsAPITest.java @@ -0,0 +1,4 @@ +package com.baidu.hugegraph.api; + +public class PathsAPITest { +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/PersonalRankAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/PersonalRankAPITest.java new file mode 100644 index 0000000000..5dbc430ce9 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/PersonalRankAPITest.java @@ -0,0 +1,4 @@ +package com.baidu.hugegraph.api; + +public class PersonalRankAPITest { +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/RaysAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/RaysAPITest.java new file mode 100644 index 0000000000..7c3e69d101 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/RaysAPITest.java @@ -0,0 +1,4 @@ +package com.baidu.hugegraph.api; + +public class RaysAPITest { +} From bd0135b40d6412dff349ed8d1914c1584452228a Mon Sep 17 00:00:00 2001 From: zyxxoo <1318247699@qq.com> Date: Tue, 8 Jun 2021 19:01:05 +0800 Subject: [PATCH 05/11] chore: code style --- .../api/AllShortestPathsAPITest.java | 32 --- .../com/baidu/hugegraph/api/ApiTestSuite.java | 4 +- .../com/baidu/hugegraph/api/BaseApiTest.java | 221 +++++++++--------- .../com/baidu/hugegraph/api/CountAPITest.java | 57 ----- .../api/CustomizedCrosspointsAPITest.java | 61 ----- .../com/baidu/hugegraph/api/EdgesAPITest.java | 80 ------- .../api/FusiformSimilarityAPITest.java | 54 ----- .../api/JaccardSimilarityAPITest.java | 25 -- .../baidu/hugegraph/api/KneighborAPITest.java | 4 - .../com/baidu/hugegraph/api/KoutAPITest.java | 4 - .../api/MultiNodeShortestPathAPITest.java | 4 - .../hugegraph/api/NeighborRankAPITest.java | 4 - .../com/baidu/hugegraph/api/PathsAPITest.java | 4 - .../hugegraph/api/PersonalRankAPITest.java | 4 - .../com/baidu/hugegraph/api/RaysAPITest.java | 4 - .../traversers/AllShortestPathsAPITest.java | 36 +++ .../traversers/AllShortestPathsApiTest.java | 36 +++ .../api/traversers/CountAPITest.java | 47 ++++ .../api/traversers/CountApiTest.java | 47 ++++ .../{ => traversers}/CrosspointsAPITest.java | 23 +- .../api/traversers/CrosspointsApiTest.java | 45 ++++ .../CustomizedCrosspointsAPITest.java | 49 ++++ .../CustomizedCrosspointsApiTest.java | 49 ++++ .../api/traversers/EdgesAPITest.java | 74 ++++++ .../api/traversers/EdgesApiTest.java | 74 ++++++ .../traversers/FusiformSimilarityAPITest.java | 51 ++++ .../traversers/FusiformSimilarityApiTest.java | 51 ++++ .../traversers/JaccardSimilarityAPITest.java | 68 ++++++ .../traversers/JaccardSimilarityApiTest.java | 68 ++++++ .../traversers/TraversersApiTestSuite.java | 32 +++ 30 files changed, 849 insertions(+), 463 deletions(-) delete mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/AllShortestPathsAPITest.java delete mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/CountAPITest.java delete mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/CustomizedCrosspointsAPITest.java delete mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/EdgesAPITest.java delete mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/FusiformSimilarityAPITest.java delete mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/JaccardSimilarityAPITest.java delete mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/KneighborAPITest.java delete mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/KoutAPITest.java delete mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/MultiNodeShortestPathAPITest.java delete mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/NeighborRankAPITest.java delete mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/PathsAPITest.java delete mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/PersonalRankAPITest.java delete mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/RaysAPITest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/AllShortestPathsAPITest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/AllShortestPathsApiTest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CountAPITest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CountApiTest.java rename hugegraph-test/src/main/java/com/baidu/hugegraph/api/{ => traversers}/CrosspointsAPITest.java (61%) create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CrosspointsApiTest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CustomizedCrosspointsAPITest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CustomizedCrosspointsApiTest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesAPITest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesApiTest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/FusiformSimilarityAPITest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/FusiformSimilarityApiTest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/JaccardSimilarityAPITest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/JaccardSimilarityApiTest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/TraversersApiTestSuite.java diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/AllShortestPathsAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/AllShortestPathsAPITest.java deleted file mode 100644 index 84a2affbd1..0000000000 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/AllShortestPathsAPITest.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.baidu.hugegraph.api; - -import java.util.Map; - -import org.junit.Before; -import org.junit.Test; - -import com.google.common.collect.ImmutableMap; - - -public class AllShortestPathsAPITest extends BaseApiTest { - public static String path = "graphs/hugegraph/traversers/allshortestpaths"; - @Before - public void prepareSchema() { - BaseApiTest.initPropertyKey(); - BaseApiTest.initVertexLabel(); - BaseApiTest.initEdgeLabel(); - BaseApiTest.initVertex(); - BaseApiTest.initEdge(); - } - - @Test - public void get() { - Map name2Ids = getAllName2VertexIds(); - String markoId = name2Ids.get("marko"); - String vadasId= name2Ids.get("vadas"); - Map map = ImmutableMap.of("source", "\""+ markoId+"\"", - "target", "\""+vadasId+"\"", - "max_depth", 100); - assertResponseStatus(200, client().get(path, map)); - } -} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/ApiTestSuite.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/ApiTestSuite.java index b2bd164d4a..7810f15fb9 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/ApiTestSuite.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/ApiTestSuite.java @@ -23,6 +23,7 @@ import org.junit.runner.RunWith; import org.junit.runners.Suite; +import com.baidu.hugegraph.api.traversers.TraversersApiTestSuite; import com.baidu.hugegraph.dist.RegisterUtil; @RunWith(Suite.class) @@ -38,7 +39,8 @@ MetricsApiTest.class, UserApiTest.class, LoginApiTest.class, - ProjectApiTest.class + ProjectApiTest.class, + TraversersApiTestSuite.class }) public class ApiTestSuite { diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/BaseApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/BaseApiTest.java index cd9e2ee88c..8b20186590 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/BaseApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/BaseApiTest.java @@ -21,16 +21,13 @@ import java.io.IOException; import java.net.URLEncoder; +import java.util.HashMap; import java.util.HashSet; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.Spliterator; -import java.util.Spliterators; import java.util.function.Consumer; import java.util.stream.Collectors; -import java.util.stream.StreamSupport; import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; @@ -39,7 +36,7 @@ import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.core.Response; -import org.glassfish.grizzly.utils.Pair; +import org.apache.http.util.TextUtils; import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature; import org.glassfish.jersey.client.filter.EncodingFilter; import org.glassfish.jersey.message.GZipEncoder; @@ -54,6 +51,7 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Multimap; public class BaseApiTest { @@ -99,7 +97,7 @@ public static RestClient newClient() { return new RestClient(BASE_URL); } - static class RestClient { + public static class RestClient { private Client client; private WebTarget target; @@ -138,42 +136,20 @@ public Response get(String path, return this.target.path(path).request().headers(headers).get(); } - public Response get(String path, Map params) { - return this.get(path, - params.entrySet().stream() - .map(entry -> new Pair( - entry.getKey(), entry.getValue())) - .iterator()); + public Response get(String path, Multimap params) { + WebTarget target = this.target.path(path); + for (Map.Entry entries : params.entries()) { + target = target.queryParam(entries.getKey(), entries.getValue()); + } + return target.request().get(); } - public Response get(String path, - Iterator> params) { - class WrapWebTarget { - WebTarget target; - - WrapWebTarget(WebTarget target) { - this.target = target; - } - - public void accept(Pair pair) { - this.target = this.target.queryParam(pair.getFirst(), - pair.getSecond()); - } + public Response get(String path, Map params) { + WebTarget target = this.target.path(path); + for (Map.Entry i : params.entrySet()) { + target = target.queryParam(i.getKey(), i.getValue()); } - - return StreamSupport - .stream(Spliterators.spliteratorUnknownSize(params, - Spliterator.ORDERED), - false) - .collect(() -> new WrapWebTarget(this.target.path(path)), - WrapWebTarget::accept, - (t1, t2) -> { - throw new IllegalStateException( - "unreach code"); - }) - .target - .request() - .get(); + return target.request().get(); } public Response post(String path, String content) { @@ -334,67 +310,66 @@ protected static void initIndexLabel() { protected static void initEdge() { String path = URL_PREFIX + GRAPH_EDGE + BATCH; - Map ret = getAllName2VertexIds(); - System.out.println(ret); + Map ret = listAllVertexName2Ids(); String markoId = ret.get("marko"); String peterId = ret.get("peter"); String joshId = ret.get("josh"); String vadasId = ret.get("vadas"); String rippleId = ret.get("ripple"); - createAndAssert(path, "[" + - "{" + - "\"label\": \"knows\"," + - "\"outV\": \"" + markoId + "\"," + - "\"inV\": \"" + peterId + "\"," + - "\"outVLabel\": \"person\"," + - "\"inVLabel\": \"person\"," + - "\"properties\": {" + - "\"date\": \"2021-01-01\"," + - "\"weight\":0.5}" + - "}," + - "{" + - "\"label\": \"knows\"," + - "\"outV\": \"" + peterId + "\"," + - "\"inV\": \"" + joshId + "\"," + - "\"outVLabel\": \"person\"," + - "\"inVLabel\": \"person\"," + - "\"properties\": {" + - "\"date\": \"2021-01-01\"," + - "\"weight\":0.5}" + - "}," + - "{" + - "\"label\": \"knows\"," + - "\"outV\": \"" + joshId + "\"," + - "\"inV\": \"" + vadasId + "\"," + - "\"outVLabel\": \"person\"," + - "\"inVLabel\": \"person\"," + - "\"properties\": {" + - "\"date\": \"2021-01-01\"," + - "\"weight\":0.5}" + - "}," + - "{" + - "\"label\": \"created\"," + - "\"outV\": \"" + markoId + "\"," + - "\"inV\": \"" + rippleId + "\"," + - "\"outVLabel\": \"person\"," + - "\"inVLabel\": \"software\"," + - "\"properties\": {" + - "\"date\": \"2021-01-01\"," + - "\"weight\":0.5}" + - "}," + - "{" + - "\"label\": \"created\"," + - "\"outV\": \"" + peterId + "\"," + - "\"inV\": \"" + rippleId + "\"," + - "\"outVLabel\": \"person\"," + - "\"inVLabel\": \"software\"," + - "\"properties\": {" + - "\"date\": \"2021-01-01\"," + - "\"weight\":0.5}" + - "}" + - "]"); - + String body = String.format("[{" + + "\"label\": \"knows\"," + + "\"outV\": \"%s\"," + + "\"inV\": \"%s\"," + + "\"outVLabel\": \"person\"," + + "\"inVLabel\": \"person\"," + + "\"properties\": {" + + " \"date\": \"2021-01-01\"," + + " \"weight\":0.5}" + + "}," + + "{" + + "\"label\": \"knows\"," + + "\"outV\": \"%s\"," + + "\"inV\": \"%s\"," + + "\"outVLabel\": \"person\"," + + "\"inVLabel\": \"person\"," + + "\"properties\": {" + + " \"date\": \"2021-01-01\"," + + " \"weight\":0.5}" + + "}," + + "{" + + "\"label\": \"knows\"," + + "\"outV\": \"%s\"," + + "\"inV\": \"%s\"," + + "\"outVLabel\": \"person\"," + + "\"inVLabel\": \"person\"," + + "\"properties\": {" + + " \"date\": \"2021-01-01\"," + + " \"weight\":0.5}" + + "}," + + "{" + + "\"label\": \"created\"," + + "\"outV\": \"%s\"," + + "\"inV\": \"%s\"," + + "\"outVLabel\": \"person\"," + + "\"inVLabel\": \"software\"," + + "\"properties\": {" + + " \"date\": \"2021-01-01\"," + + " \"weight\":0.5}" + + "}," + + "{" + + "\"label\": \"created\"," + + "\"outV\": \"%s\"," + + "\"inV\": \"%s\"," + + "\"outVLabel\": \"person\"," + + "\"inVLabel\": \"software\"," + + "\"properties\": {" + + " \"date\": \"2021-01-01\"," + + " \"weight\":0.5}" + + "}]", markoId, peterId, peterId, joshId, + joshId, vadasId, markoId, rippleId, + peterId, rippleId); + createAndAssert(path, body); } protected static void initVertex() { @@ -462,38 +437,50 @@ protected static Response createAndAssert(String path, String body) { return r; } - protected static Map getAllName2VertexIds() { + protected static Map listAllVertexName2Ids() { Response r = client.get(URL_PREFIX + GRAPH_VERTEX); - String content = r.readEntity(String.class); - if (r.getStatus() != 200) { - throw new HugeException("Failed to get vertex id: %s", content); - } + String content = assertResponseStatus(200, r); @SuppressWarnings("rawtypes") - List list = readList(content, "vertices", Map.class); + List vertices = readList(content, "vertices", Map.class); + + Map vertextName2Ids = new HashMap<>(); + for (Map vertice : vertices) { + Map properties = (Map) vertice.get("properties"); + if (properties == null || + !properties.containsKey("name") || + !vertice.containsKey("id")) { + continue; + } + String name = (String) properties.get("name"); + if (TextUtils.isEmpty(name)) { + continue; + } + + String id = (String) vertice.get("id"); + if (TextUtils.isEmpty(id)) { + continue; + } + + vertextName2Ids.put(name, id); + } + + return vertextName2Ids; + } - return list.stream().filter(map -> map.get("properties") != null && - ((Map) map.get("properties")) - .get("name") != null) - .collect( - Collectors.toMap(map -> ((Map) map.get("properties")) - .get( - "name").toString(), - map -> map.get("id").toString())); + protected static String id2Json(String params) { + return String.format("\"%s\"", params); } protected static String getVertexId(String label, String key, String value) - throws IOException { + throws IOException { String props = mapper.writeValueAsString(ImmutableMap.of(key, value)); Map params = ImmutableMap.of( "label", label, "properties", URLEncoder.encode(props, "UTF-8") ); Response r = client.get(URL_PREFIX + GRAPH_VERTEX, params); - String content = r.readEntity(String.class); - if (r.getStatus() != 200) { - throw new HugeException("Failed to get vertex id: %s", content); - } + String content = assertResponseStatus(200, r); @SuppressWarnings("rawtypes") List list = readList(content, "vertices", Map.class); @@ -581,14 +568,14 @@ protected static List readList(String content, JsonNode element = root.get(key); if (element == null) { throw new HugeException(String.format( - "Can't find value of the key: %s in json.", key)); + "Can't find value of the key: %s in json.", key)); } JavaType type = mapper.getTypeFactory() .constructParametricType(List.class, clazz); return mapper.readValue(element.toString(), type); } catch (IOException e) { throw new HugeException(String.format( - "Failed to deserialize %s", content), e); + "Failed to deserialize %s", content), e); } } @@ -615,6 +602,10 @@ protected static String assertResponseStatus(int status, return content; } + protected static Map parseMap(String json) { + return JsonUtil.fromJson(json, Map.class); + } + public static T assertJsonContains(String response, String key) { Map json = JsonUtil.fromJson(response, Map.class); return assertMapContains(json, key); diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/CountAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/CountAPITest.java deleted file mode 100644 index e5c8941b13..0000000000 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/CountAPITest.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.baidu.hugegraph.api; - -import static com.baidu.hugegraph.testutil.Assert.assertEquals; - -import java.util.Map; - -import javax.ws.rs.core.Response; - -import org.junit.Before; -import org.junit.Test; - -public class CountAPITest extends BaseApiTest { - public static String path = "graphs/hugegraph/traversers/count"; - @Before - public void prepareSchema() { - BaseApiTest.initPropertyKey(); - BaseApiTest.initVertexLabel(); - BaseApiTest.initEdgeLabel(); - BaseApiTest.initVertex(); - BaseApiTest.initEdge(); - } - - @Test - public void count() { - String markoId = getAllName2VertexIds().get("marko"); - Response r = client().post(path, "{\n" + - "\t\"source\": \""+markoId+"\",\n" + - "\t\"steps\": [\n" + - "\t\t{\n" + - "\t\t\t\"labels\": [\n" + - "\t\t\t ],\n" + - "\t\t\t \"degree\": 100,\n" + - "\t\t\t \"skip_degree\": 100\n" + - "\t\t},\n" + - "\t\t{\n" + - "\t\t\t\"labels\": [\n" + - "\t\t\t ],\n" + - "\t\t\t \"degree\": 100,\n" + - "\t\t\t \"skip_degree\": 100\n" + - "\t\t},\n" + - "\t\t\t{\n" + - "\t\t\t\"labels\": [\n" + - "\t\t\t ],\n" + - "\t\t\t \"degree\": 100,\n" + - "\t\t\t \"skip_degree\": 100\n" + - "\t\t}\t\n" + - "\t\t\n" + - "\t]\n" + - "\t\n" + - "}"); - - assertEquals(200, r.getStatus()); - Integer count = (Integer) r.readEntity(Map.class).get("count"); - assertEquals(3, count); - - } -} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/CustomizedCrosspointsAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/CustomizedCrosspointsAPITest.java deleted file mode 100644 index a2d8525749..0000000000 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/CustomizedCrosspointsAPITest.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.baidu.hugegraph.api; - -import static org.junit.Assert.assertEquals; - -import java.util.List; -import java.util.Map; - -import javax.ws.rs.core.Response; - -import org.junit.Before; -import org.junit.Test; - -import com.baidu.hugegraph.api.traversers.CustomizedCrosspointsAPI; - -public class CustomizedCrosspointsAPITest extends BaseApiTest{ - public static String path = "graphs/hugegraph/traversers/customizedcrosspoints"; - - @Before - public void prepareSchema() { - BaseApiTest.initPropertyKey(); - BaseApiTest.initVertexLabel(); - BaseApiTest.initEdgeLabel(); - BaseApiTest.initVertex(); - BaseApiTest.initEdge(); - } - @Test - public void post() { - Map name2Ids = getAllName2VertexIds(); - String markoId = name2Ids.get("marko"); - String rippleId = name2Ids.get("ripple"); - Response r = client().post(path, "{\n" + - " \"sources\":{\n" + - " \"ids\":[\n" + - " \"" + markoId + "\",\n" + - " \"" + rippleId + "\"\n" + - " ]\n" + - " },\n" + - " \"path_patterns\":[\n" + - " {\n" + - " \"steps\":[\n" + - " {\n" + - " \"direction\":\"BOTH\"," + - " \"labels\":[\n" + - " ],\n" + - " \"degree\":-1\n" + - " }\n" + - " ]\n" + - " }\n" + - " ],\n" + - " \"with_path\":true,\n" + - " \"with_vertex\":true,\n" + - " \"capacity\":-1,\n" + - " \"limit\":-1\n" + - "}"); - - assertEquals(200, r.getStatus()); - Map map = r.readEntity(Map.class); - List paths = (List) map.get("paths"); - assertEquals(2, paths.size()); - } -} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/EdgesAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/EdgesAPITest.java deleted file mode 100644 index d314f19e1c..0000000000 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/EdgesAPITest.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.baidu.hugegraph.api; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -import java.util.List; -import java.util.Map; -import java.util.Optional; - -import javax.ws.rs.core.Response; - -import org.glassfish.grizzly.utils.Pair; -import org.junit.Before; -import org.junit.Test; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; - - -public class EdgesAPITest extends BaseApiTest { - public final static String EDGE_PATH = "graphs/hugegraph/traversers/edges"; - public final static String SHARES_PATH = "graphs/hugegraph/traversers" + - "/edges/shards"; - public final static String SCAN_PATH = "graphs/hugegraph/traversers/edges/scan"; - - @Before - public void prepareSchema() { - BaseApiTest.initPropertyKey(); - BaseApiTest.initVertexLabel(); - BaseApiTest.initEdgeLabel(); - BaseApiTest.initVertex(); - BaseApiTest.initEdge(); - } - - @Test - public void list() { - Map name2Ids = getAllName2VertexIds(); - final String edgeGetPath = "graphs/hugegraph/graph/edges"; - String vadasId = name2Ids.get("vadas"); - Response r = client().get(edgeGetPath, ImmutableMap.of("vertex_id", - "\"" + vadasId + "\"", - "direction", - "IN")); - assertEquals(200, r.getStatus()); - Map entity = r.readEntity(Map.class); - List edges = (List) entity.get("edges"); - assertNotNull(edges); - Optional data = edges.stream().findFirst(); - assertEquals(true, data.isPresent()); - String edgeId = data.get().get("id").toString(); - assertNotNull(edgeId); - - r = client().get(EDGE_PATH, - ImmutableList.of(new Pair("ids", - edgeId)).iterator()); - assertEquals(200, r.getStatus()); - } - - @Test - public void shareAndScan() { - Response r = client().get(SHARES_PATH, ImmutableMap.of("split_size", - 1048576)); - assertEquals(200, r.getStatus()); - Map entity = r.readEntity(Map.class); - assertNotNull(entity); - - List shards = (List) entity.get("shards"); - assertNotNull(shards); - assertEquals(false, shards.isEmpty()); - String start = shards.get(0).get("start").toString(); - String end = shards.get(0).get("end").toString(); - - r = client().get(SCAN_PATH, ImmutableMap.of("start", start, - "end", end)); - assertEquals(200, r.getStatus()); - Map entity2 = r.readEntity(Map.class); - assertNotNull(entity2); - assertEquals(false, entity2.isEmpty()); - } -} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/FusiformSimilarityAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/FusiformSimilarityAPITest.java deleted file mode 100644 index fd6d640f36..0000000000 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/FusiformSimilarityAPITest.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.baidu.hugegraph.api; - - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -import java.util.Map; - -import javax.ws.rs.core.Response; - -import org.junit.Before; -import org.junit.Test; - -public class FusiformSimilarityAPITest extends BaseApiTest { - final static String path = "graphs/hugegraph/traversers/fusiformsimilarity"; - - @Before - public void prepareSchema() { - BaseApiTest.initPropertyKey(); - BaseApiTest.initVertexLabel(); - BaseApiTest.initEdgeLabel(); - BaseApiTest.initVertex(); - BaseApiTest.initEdge(); - } - - @Test - public void post() { - Response r = client().post(path, "{\n" + - " \"sources\":{\n" + - " \"ids\":[],\n" + - " \"label\": \"person\",\n" + - " \"properties\": {\n" + - " }\n" + - " },\n" + - " \"label\":\"created\",\n" + - " \"direction\":\"OUT\",\n" + - " \"min_neighbors\":1,\n" + - " \"alpha\":1,\n" + - " \"min_similars\":1,\n" + - " \"top\":0,\n" + - " \"group_property\":\"city\",\n" + - " \"min_groups\":2,\n" + - " \"max_degree\": 10000,\n" + - " \"capacity\": -1,\n" + - " \"limit\": -1,\n" + - " \"with_intermediary\": false,\n" + - " \"with_vertex\":true\n" + - "}"); - assertEquals(200, r.getStatus()); - - Map entity = r.readEntity(Map.class); - assertNotNull(entity); - } -} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/JaccardSimilarityAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/JaccardSimilarityAPITest.java deleted file mode 100644 index e427a0b0ac..0000000000 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/JaccardSimilarityAPITest.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.baidu.hugegraph.api; - -import org.junit.Before; -import org.junit.Test; - -public class JaccardSimilarityAPITest extends BaseApiTest { - final static String path = "graphs/hugegraph/traversers/jaccardsimilarity"; - - @Before - public void prepareSchema() { - BaseApiTest.initPropertyKey(); - BaseApiTest.initVertexLabel(); - BaseApiTest.initEdgeLabel(); - BaseApiTest.initVertex(); - BaseApiTest.initEdge(); - } - - @Test - public void get() { - } - - @Test - public void post() { - } -} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/KneighborAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/KneighborAPITest.java deleted file mode 100644 index 6966db3950..0000000000 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/KneighborAPITest.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.baidu.hugegraph.api; - -public class KneighborAPITest { -} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/KoutAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/KoutAPITest.java deleted file mode 100644 index ed184c35e9..0000000000 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/KoutAPITest.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.baidu.hugegraph.api; - -public class KoutAPITest { -} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/MultiNodeShortestPathAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/MultiNodeShortestPathAPITest.java deleted file mode 100644 index 6938b5c550..0000000000 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/MultiNodeShortestPathAPITest.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.baidu.hugegraph.api; - -public class MultiNodeShortestPathAPITest { -} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/NeighborRankAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/NeighborRankAPITest.java deleted file mode 100644 index 58214762a0..0000000000 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/NeighborRankAPITest.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.baidu.hugegraph.api; - -public class NeighborRankAPITest { -} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/PathsAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/PathsAPITest.java deleted file mode 100644 index 0bf738af1b..0000000000 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/PathsAPITest.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.baidu.hugegraph.api; - -public class PathsAPITest { -} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/PersonalRankAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/PersonalRankAPITest.java deleted file mode 100644 index 5dbc430ce9..0000000000 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/PersonalRankAPITest.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.baidu.hugegraph.api; - -public class PersonalRankAPITest { -} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/RaysAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/RaysAPITest.java deleted file mode 100644 index 7c3e69d101..0000000000 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/RaysAPITest.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.baidu.hugegraph.api; - -public class RaysAPITest { -} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/AllShortestPathsAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/AllShortestPathsAPITest.java new file mode 100644 index 0000000000..5903aef05f --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/AllShortestPathsAPITest.java @@ -0,0 +1,36 @@ +package com.baidu.hugegraph.api.traversers; + +import java.util.Map; + +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; +import com.google.common.collect.ImmutableMap; + +public class AllShortestPathsApiTest extends BaseApiTest { + + public static String path = "graphs/hugegraph/traversers/allshortestpaths"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void testGet() { + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + String vadasId = name2Ids.get("vadas"); + Map entities = ImmutableMap.of("source", + id2Json(markoId), + "target", + id2Json(vadasId), + "max_depth", 100); + assertResponseStatus(200, client().get(path, entities)); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/AllShortestPathsApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/AllShortestPathsApiTest.java new file mode 100644 index 0000000000..5903aef05f --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/AllShortestPathsApiTest.java @@ -0,0 +1,36 @@ +package com.baidu.hugegraph.api.traversers; + +import java.util.Map; + +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; +import com.google.common.collect.ImmutableMap; + +public class AllShortestPathsApiTest extends BaseApiTest { + + public static String path = "graphs/hugegraph/traversers/allshortestpaths"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void testGet() { + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + String vadasId = name2Ids.get("vadas"); + Map entities = ImmutableMap.of("source", + id2Json(markoId), + "target", + id2Json(vadasId), + "max_depth", 100); + assertResponseStatus(200, client().get(path, entities)); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CountAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CountAPITest.java new file mode 100644 index 0000000000..76c6260e7b --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CountAPITest.java @@ -0,0 +1,47 @@ +package com.baidu.hugegraph.api.traversers; + +import static com.baidu.hugegraph.testutil.Assert.assertEquals; + +import javax.ws.rs.core.Response; + +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; + +public class CountApiTest extends BaseApiTest { + + public static String path = "graphs/hugegraph/traversers/count"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void testCount() { + String markoId = listAllVertexName2Ids().get("marko"); + String reqBody = String.format("{ " + + "\"source\": \"%s\", " + + "\"steps\": [{ " + + " \"labels\": []," + + " \"degree\": 100," + + " \"skip_degree\": 100}," + + " { " + + " \"labels\": []," + + " \"degree\": 100," + + " \"skip_degree\": 100}, " + + " { " + + " \"labels\": []," + + " \"degree\": 100," + + " \"skip_degree\": 100}]}", markoId); + Response r = client().post(path, reqBody); + String content = assertResponseStatus(200, r); + Integer count = assertJsonContains(content, "count"); + assertEquals(3, count); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CountApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CountApiTest.java new file mode 100644 index 0000000000..76c6260e7b --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CountApiTest.java @@ -0,0 +1,47 @@ +package com.baidu.hugegraph.api.traversers; + +import static com.baidu.hugegraph.testutil.Assert.assertEquals; + +import javax.ws.rs.core.Response; + +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; + +public class CountApiTest extends BaseApiTest { + + public static String path = "graphs/hugegraph/traversers/count"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void testCount() { + String markoId = listAllVertexName2Ids().get("marko"); + String reqBody = String.format("{ " + + "\"source\": \"%s\", " + + "\"steps\": [{ " + + " \"labels\": []," + + " \"degree\": 100," + + " \"skip_degree\": 100}," + + " { " + + " \"labels\": []," + + " \"degree\": 100," + + " \"skip_degree\": 100}, " + + " { " + + " \"labels\": []," + + " \"degree\": 100," + + " \"skip_degree\": 100}]}", markoId); + Response r = client().post(path, reqBody); + String content = assertResponseStatus(200, r); + Integer count = assertJsonContains(content, "count"); + assertEquals(3, count); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/CrosspointsAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CrosspointsAPITest.java similarity index 61% rename from hugegraph-test/src/main/java/com/baidu/hugegraph/api/CrosspointsAPITest.java rename to hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CrosspointsAPITest.java index 3319c884f6..86867e2a05 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/CrosspointsAPITest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CrosspointsAPITest.java @@ -1,4 +1,4 @@ -package com.baidu.hugegraph.api; +package com.baidu.hugegraph.api.traversers; import static com.baidu.hugegraph.testutil.Assert.assertEquals; @@ -10,10 +10,13 @@ import org.junit.Before; import org.junit.Test; +import com.baidu.hugegraph.api.BaseApiTest; import com.google.common.collect.ImmutableMap; -public class CrosspointsAPITest extends BaseApiTest{ +public class CrosspointsAPITest extends BaseApiTest { + public static String path = "graphs/hugegraph/traversers/crosspoints"; + @Before public void prepareSchema() { BaseApiTest.initPropertyKey(); @@ -22,21 +25,21 @@ public void prepareSchema() { BaseApiTest.initVertex(); BaseApiTest.initEdge(); } + @Test - public void get(){ - Map name2Ids = getAllName2VertexIds(); + public void testGet() { + Map name2Ids = listAllVertexName2Ids(); String markoId = name2Ids.get("marko"); String vadasId = name2Ids.get("vadas"); Map params = ImmutableMap.of("source", - "\"" + markoId + "\"", + id2Json(markoId), "target", - "\"" + vadasId + "\"", + id2Json(vadasId), "max_depth", 1000); Response r = client().get(path, params); - assertEquals(200, r.getStatus()); - Map data = r.readEntity(Map.class); - List> crosspoints = - (List>) data.get("crosspoints"); + String respBody = assertResponseStatus(200, r); + List> crosspoints = assertJsonContains(respBody, + "crosspoints"); assertEquals(2, crosspoints.size()); } } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CrosspointsApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CrosspointsApiTest.java new file mode 100644 index 0000000000..86867e2a05 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CrosspointsApiTest.java @@ -0,0 +1,45 @@ +package com.baidu.hugegraph.api.traversers; + +import static com.baidu.hugegraph.testutil.Assert.assertEquals; + +import java.util.List; +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; +import com.google.common.collect.ImmutableMap; + +public class CrosspointsAPITest extends BaseApiTest { + + public static String path = "graphs/hugegraph/traversers/crosspoints"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void testGet() { + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + String vadasId = name2Ids.get("vadas"); + Map params = ImmutableMap.of("source", + id2Json(markoId), + "target", + id2Json(vadasId), + "max_depth", 1000); + Response r = client().get(path, params); + String respBody = assertResponseStatus(200, r); + List> crosspoints = assertJsonContains(respBody, + "crosspoints"); + assertEquals(2, crosspoints.size()); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CustomizedCrosspointsAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CustomizedCrosspointsAPITest.java new file mode 100644 index 0000000000..323e591896 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CustomizedCrosspointsAPITest.java @@ -0,0 +1,49 @@ +package com.baidu.hugegraph.api.traversers; + +import static org.junit.Assert.assertEquals; + +import java.util.List; +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; + +public class CustomizedCrosspointsApiTest extends BaseApiTest { + + public static String path = "graphs/hugegraph/traversers/customizedcrosspoints"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + @Test + public void testPost() { + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + String rippleId = name2Ids.get("ripple"); + String reqBody = String.format("{ " + + "\"sources\":{ " + + " \"ids\":[\"%s\",\"%s\"]}, " + + "\"path_patterns\":[{ " + + " \"steps\":[{ " + + " \"direction\":\"BOTH\"," + + " \"labels\":[], " + + " \"degree\":-1}]}], " + + "\"with_path\":true, " + + "\"with_vertex\":true, " + + "\"capacity\":-1, " + + "\"limit\":-1}", markoId, rippleId); + Response r = client().post(path, reqBody); + String respBody = assertResponseStatus(200, r); + List paths = assertJsonContains(respBody, "paths"); + assertEquals(2, paths.size()); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CustomizedCrosspointsApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CustomizedCrosspointsApiTest.java new file mode 100644 index 0000000000..323e591896 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CustomizedCrosspointsApiTest.java @@ -0,0 +1,49 @@ +package com.baidu.hugegraph.api.traversers; + +import static org.junit.Assert.assertEquals; + +import java.util.List; +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; + +public class CustomizedCrosspointsApiTest extends BaseApiTest { + + public static String path = "graphs/hugegraph/traversers/customizedcrosspoints"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + @Test + public void testPost() { + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + String rippleId = name2Ids.get("ripple"); + String reqBody = String.format("{ " + + "\"sources\":{ " + + " \"ids\":[\"%s\",\"%s\"]}, " + + "\"path_patterns\":[{ " + + " \"steps\":[{ " + + " \"direction\":\"BOTH\"," + + " \"labels\":[], " + + " \"degree\":-1}]}], " + + "\"with_path\":true, " + + "\"with_vertex\":true, " + + "\"capacity\":-1, " + + "\"limit\":-1}", markoId, rippleId); + Response r = client().post(path, reqBody); + String respBody = assertResponseStatus(200, r); + List paths = assertJsonContains(respBody, "paths"); + assertEquals(2, paths.size()); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesAPITest.java new file mode 100644 index 0000000000..507884a4f7 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesAPITest.java @@ -0,0 +1,74 @@ +package com.baidu.hugegraph.api.traversers; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; + +import java.util.List; +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableMultimap; + + +public class EdgesApiTest extends BaseApiTest { + + final static String EDGE_PATH = "graphs/hugegraph/traversers/edges"; + final static String SHARES_PATH = "graphs/hugegraph/traversers" + + "/edges/shards"; + final static String SCAN_PATH = "graphs/hugegraph/traversers/edges/scan"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void testList() { + Map name2Ids = listAllVertexName2Ids(); + final String edgeGetPath = "graphs/hugegraph/graph/edges"; + String vadasId = name2Ids.get("vadas"); + Response r = client().get(edgeGetPath, + ImmutableMap.of("vertex_id", + id2Json(vadasId), + "direction", + "IN")); + String respBody = assertResponseStatus(200, r); + List edges = assertJsonContains(respBody, "edges"); + assertNotNull(edges); + assertFalse(edges.isEmpty()); + String edgeId = assertMapContains(edges.get(0), "id"); + assertNotNull(edgeId); + + r = client().get(EDGE_PATH, + ImmutableMultimap.of("ids", edgeId)); + assertResponseStatus(200, r); + } + + @Test + public void testShareAndScan() { + Response r = client().get(SHARES_PATH, ImmutableMap.of("split_size", + 1048576)); + String respBody = assertResponseStatus(200, r); + List shards = assertJsonContains(respBody, "shards"); + assertNotNull(shards); + assertFalse(shards.isEmpty()); + String start = assertMapContains(shards.get(0), "start"); + String end = assertMapContains(shards.get(0), "end"); + r = client().get(SCAN_PATH, ImmutableMap.of("start", start, + "end", end)); + respBody = assertResponseStatus(200, r); + Map entity2 = parseMap(respBody); + assertNotNull(entity2); + assertFalse(entity2.isEmpty()); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesApiTest.java new file mode 100644 index 0000000000..507884a4f7 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesApiTest.java @@ -0,0 +1,74 @@ +package com.baidu.hugegraph.api.traversers; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; + +import java.util.List; +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableMultimap; + + +public class EdgesApiTest extends BaseApiTest { + + final static String EDGE_PATH = "graphs/hugegraph/traversers/edges"; + final static String SHARES_PATH = "graphs/hugegraph/traversers" + + "/edges/shards"; + final static String SCAN_PATH = "graphs/hugegraph/traversers/edges/scan"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void testList() { + Map name2Ids = listAllVertexName2Ids(); + final String edgeGetPath = "graphs/hugegraph/graph/edges"; + String vadasId = name2Ids.get("vadas"); + Response r = client().get(edgeGetPath, + ImmutableMap.of("vertex_id", + id2Json(vadasId), + "direction", + "IN")); + String respBody = assertResponseStatus(200, r); + List edges = assertJsonContains(respBody, "edges"); + assertNotNull(edges); + assertFalse(edges.isEmpty()); + String edgeId = assertMapContains(edges.get(0), "id"); + assertNotNull(edgeId); + + r = client().get(EDGE_PATH, + ImmutableMultimap.of("ids", edgeId)); + assertResponseStatus(200, r); + } + + @Test + public void testShareAndScan() { + Response r = client().get(SHARES_PATH, ImmutableMap.of("split_size", + 1048576)); + String respBody = assertResponseStatus(200, r); + List shards = assertJsonContains(respBody, "shards"); + assertNotNull(shards); + assertFalse(shards.isEmpty()); + String start = assertMapContains(shards.get(0), "start"); + String end = assertMapContains(shards.get(0), "end"); + r = client().get(SCAN_PATH, ImmutableMap.of("start", start, + "end", end)); + respBody = assertResponseStatus(200, r); + Map entity2 = parseMap(respBody); + assertNotNull(entity2); + assertFalse(entity2.isEmpty()); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/FusiformSimilarityAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/FusiformSimilarityAPITest.java new file mode 100644 index 0000000000..80864a3649 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/FusiformSimilarityAPITest.java @@ -0,0 +1,51 @@ +package com.baidu.hugegraph.api.traversers; + +import static org.junit.Assert.assertNotNull; + +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; + +public class FusiformSimilarityApiTest extends BaseApiTest { + + final static String path = "graphs/hugegraph/traversers/fusiformsimilarity"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void testPost() { + Response r = client().post(path, "{ " + + "\"sources\":{ " + + " \"ids\":[], " + + " \"label\": \"person\", " + + " \"properties\": {}}, " + + "\"label\":\"created\", " + + "\"direction\":\"OUT\", " + + "\"min_neighbors\":1, " + + "\"alpha\":1, " + + "\"min_similars\":1, " + + "\"top\":0, " + + "\"group_property\":\"city\", " + + "\"min_groups\":2, " + + "\"max_degree\": 10000, " + + "\"capacity\": -1, " + + "\"limit\": -1, " + + "\"with_intermediary\": false, " + + "\"with_vertex\":true}"); + String respBody = assertResponseStatus(200, r); + Map entity = parseMap(respBody); + assertNotNull(entity); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/FusiformSimilarityApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/FusiformSimilarityApiTest.java new file mode 100644 index 0000000000..80864a3649 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/FusiformSimilarityApiTest.java @@ -0,0 +1,51 @@ +package com.baidu.hugegraph.api.traversers; + +import static org.junit.Assert.assertNotNull; + +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; + +public class FusiformSimilarityApiTest extends BaseApiTest { + + final static String path = "graphs/hugegraph/traversers/fusiformsimilarity"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void testPost() { + Response r = client().post(path, "{ " + + "\"sources\":{ " + + " \"ids\":[], " + + " \"label\": \"person\", " + + " \"properties\": {}}, " + + "\"label\":\"created\", " + + "\"direction\":\"OUT\", " + + "\"min_neighbors\":1, " + + "\"alpha\":1, " + + "\"min_similars\":1, " + + "\"top\":0, " + + "\"group_property\":\"city\", " + + "\"min_groups\":2, " + + "\"max_degree\": 10000, " + + "\"capacity\": -1, " + + "\"limit\": -1, " + + "\"with_intermediary\": false, " + + "\"with_vertex\":true}"); + String respBody = assertResponseStatus(200, r); + Map entity = parseMap(respBody); + assertNotNull(entity); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/JaccardSimilarityAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/JaccardSimilarityAPITest.java new file mode 100644 index 0000000000..77176cacc1 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/JaccardSimilarityAPITest.java @@ -0,0 +1,68 @@ +package com.baidu.hugegraph.api.traversers; + +import static org.junit.Assert.assertEquals; + +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; +import com.google.common.collect.ImmutableMap; + +public class JaccardSimilarityApiTest extends BaseApiTest { + + final static String path = "graphs/hugegraph/traversers/jaccardsimilarity"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void testGet() { + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + String peterId = name2Ids.get("peter"); + Response r = client().get(path, ImmutableMap.of("vertex", + id2Json(markoId), + "other", + id2Json(peterId))); + String content = assertResponseStatus(200, r); + Double jaccardSimilarity = assertJsonContains(content, + "jaccard_similarity"); + assertEquals(0.25, jaccardSimilarity.doubleValue(), 0.0001); + } + + @Test + public void testPost() { + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + String rippleId = name2Ids.get("ripple"); + String peterId = name2Ids.get("peter"); + String jsonId = name2Ids.get("josh"); + String reqBody = String.format("{ " + + "\"vertex\": \"%s\", " + + "\"step\": { " + + " \"direction\": \"BOTH\", " + + " \"labels\": [], " + + " \"degree\": 10000, " + + " \"skip_degree\": 100000 }, " + + "\"top\": 3}", markoId); + Response r = client().post(path, reqBody); + String respBody = assertResponseStatus(200, r); + Map entity = parseMap(respBody); + Double rippleJaccardSimilarity = assertMapContains(entity, rippleId); + Double peterJaccardSimilarity = assertMapContains(entity, peterId); + Double jsonJaccardSimilarity = assertMapContains(entity, jsonId); + assertEquals(0.3333, rippleJaccardSimilarity.doubleValue(), 0.0001); + assertEquals(0.25, peterJaccardSimilarity.doubleValue(), 0.0001); + assertEquals(0.3333, jsonJaccardSimilarity.doubleValue(), 0.0001); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/JaccardSimilarityApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/JaccardSimilarityApiTest.java new file mode 100644 index 0000000000..77176cacc1 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/JaccardSimilarityApiTest.java @@ -0,0 +1,68 @@ +package com.baidu.hugegraph.api.traversers; + +import static org.junit.Assert.assertEquals; + +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; +import com.google.common.collect.ImmutableMap; + +public class JaccardSimilarityApiTest extends BaseApiTest { + + final static String path = "graphs/hugegraph/traversers/jaccardsimilarity"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void testGet() { + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + String peterId = name2Ids.get("peter"); + Response r = client().get(path, ImmutableMap.of("vertex", + id2Json(markoId), + "other", + id2Json(peterId))); + String content = assertResponseStatus(200, r); + Double jaccardSimilarity = assertJsonContains(content, + "jaccard_similarity"); + assertEquals(0.25, jaccardSimilarity.doubleValue(), 0.0001); + } + + @Test + public void testPost() { + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + String rippleId = name2Ids.get("ripple"); + String peterId = name2Ids.get("peter"); + String jsonId = name2Ids.get("josh"); + String reqBody = String.format("{ " + + "\"vertex\": \"%s\", " + + "\"step\": { " + + " \"direction\": \"BOTH\", " + + " \"labels\": [], " + + " \"degree\": 10000, " + + " \"skip_degree\": 100000 }, " + + "\"top\": 3}", markoId); + Response r = client().post(path, reqBody); + String respBody = assertResponseStatus(200, r); + Map entity = parseMap(respBody); + Double rippleJaccardSimilarity = assertMapContains(entity, rippleId); + Double peterJaccardSimilarity = assertMapContains(entity, peterId); + Double jsonJaccardSimilarity = assertMapContains(entity, jsonId); + assertEquals(0.3333, rippleJaccardSimilarity.doubleValue(), 0.0001); + assertEquals(0.25, peterJaccardSimilarity.doubleValue(), 0.0001); + assertEquals(0.3333, jsonJaccardSimilarity.doubleValue(), 0.0001); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/TraversersApiTestSuite.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/TraversersApiTestSuite.java new file mode 100644 index 0000000000..c67b34e32f --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/TraversersApiTestSuite.java @@ -0,0 +1,32 @@ +package com.baidu.hugegraph.api.traversers; + +import org.junit.BeforeClass; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; + +import com.baidu.hugegraph.dist.RegisterUtil; + +@RunWith(Suite.class) +@Suite.SuiteClasses({ + AllShortestPathsAPITest.class, + CountAPITest.class, + CrosspointsAPITest.class, + CustomizedCrosspointsAPITest.class, + EdgesAPITest.class, + FusiformSimilarityAPITest.class, + JaccardSimilarityAPITest.class, + KneighborAPITest.class, + KoutAPITest.class, + MultiNodeShortestPathAPITest.class, + NeighborRankAPITest.class, + PathsAPITest.class, + PersonalRankAPITest.class, + RaysAPITest.class, + RingsAPITest.class, + SameNeighborsAPITest.class, + ShortestPathAPITest.class, + SingleSourceShortestPathAPITest.class, + TemplatePathsAPITest.class +}) +public class TraversersApiTestSuite { +} From ffd2650a01fb054f04b4f9b64b1bf2e801ad53f8 Mon Sep 17 00:00:00 2001 From: zyxxoo <1318247699@qq.com> Date: Fri, 25 Jun 2021 16:22:07 +0800 Subject: [PATCH 06/11] chore: improve code style --- .../traversers/AllShortestPathsAPITest.java | 36 --------- .../traversers/AllShortestPathsApiTest.java | 36 --------- .../api/traversers/CountAPITest.java | 47 ------------ .../api/traversers/CountApiTest.java | 47 ------------ .../api/traversers/CrosspointsAPITest.java | 45 ----------- .../api/traversers/CrosspointsApiTest.java | 45 ----------- .../CustomizedCrosspointsAPITest.java | 49 ------------ .../CustomizedCrosspointsApiTest.java | 49 ------------ .../api/traversers/EdgesAPITest.java | 74 ------------------- .../api/traversers/EdgesApiTest.java | 74 ------------------- .../traversers/FusiformSimilarityAPITest.java | 51 ------------- .../traversers/FusiformSimilarityApiTest.java | 51 ------------- .../traversers/JaccardSimilarityAPITest.java | 68 ----------------- .../traversers/JaccardSimilarityApiTest.java | 68 ----------------- 14 files changed, 740 deletions(-) delete mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/AllShortestPathsAPITest.java delete mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/AllShortestPathsApiTest.java delete mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CountAPITest.java delete mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CountApiTest.java delete mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CrosspointsAPITest.java delete mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CrosspointsApiTest.java delete mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CustomizedCrosspointsAPITest.java delete mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CustomizedCrosspointsApiTest.java delete mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesAPITest.java delete mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesApiTest.java delete mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/FusiformSimilarityAPITest.java delete mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/FusiformSimilarityApiTest.java delete mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/JaccardSimilarityAPITest.java delete mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/JaccardSimilarityApiTest.java diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/AllShortestPathsAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/AllShortestPathsAPITest.java deleted file mode 100644 index 5903aef05f..0000000000 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/AllShortestPathsAPITest.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.baidu.hugegraph.api.traversers; - -import java.util.Map; - -import org.junit.Before; -import org.junit.Test; - -import com.baidu.hugegraph.api.BaseApiTest; -import com.google.common.collect.ImmutableMap; - -public class AllShortestPathsApiTest extends BaseApiTest { - - public static String path = "graphs/hugegraph/traversers/allshortestpaths"; - - @Before - public void prepareSchema() { - BaseApiTest.initPropertyKey(); - BaseApiTest.initVertexLabel(); - BaseApiTest.initEdgeLabel(); - BaseApiTest.initVertex(); - BaseApiTest.initEdge(); - } - - @Test - public void testGet() { - Map name2Ids = listAllVertexName2Ids(); - String markoId = name2Ids.get("marko"); - String vadasId = name2Ids.get("vadas"); - Map entities = ImmutableMap.of("source", - id2Json(markoId), - "target", - id2Json(vadasId), - "max_depth", 100); - assertResponseStatus(200, client().get(path, entities)); - } -} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/AllShortestPathsApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/AllShortestPathsApiTest.java deleted file mode 100644 index 5903aef05f..0000000000 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/AllShortestPathsApiTest.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.baidu.hugegraph.api.traversers; - -import java.util.Map; - -import org.junit.Before; -import org.junit.Test; - -import com.baidu.hugegraph.api.BaseApiTest; -import com.google.common.collect.ImmutableMap; - -public class AllShortestPathsApiTest extends BaseApiTest { - - public static String path = "graphs/hugegraph/traversers/allshortestpaths"; - - @Before - public void prepareSchema() { - BaseApiTest.initPropertyKey(); - BaseApiTest.initVertexLabel(); - BaseApiTest.initEdgeLabel(); - BaseApiTest.initVertex(); - BaseApiTest.initEdge(); - } - - @Test - public void testGet() { - Map name2Ids = listAllVertexName2Ids(); - String markoId = name2Ids.get("marko"); - String vadasId = name2Ids.get("vadas"); - Map entities = ImmutableMap.of("source", - id2Json(markoId), - "target", - id2Json(vadasId), - "max_depth", 100); - assertResponseStatus(200, client().get(path, entities)); - } -} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CountAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CountAPITest.java deleted file mode 100644 index 76c6260e7b..0000000000 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CountAPITest.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.baidu.hugegraph.api.traversers; - -import static com.baidu.hugegraph.testutil.Assert.assertEquals; - -import javax.ws.rs.core.Response; - -import org.junit.Before; -import org.junit.Test; - -import com.baidu.hugegraph.api.BaseApiTest; - -public class CountApiTest extends BaseApiTest { - - public static String path = "graphs/hugegraph/traversers/count"; - - @Before - public void prepareSchema() { - BaseApiTest.initPropertyKey(); - BaseApiTest.initVertexLabel(); - BaseApiTest.initEdgeLabel(); - BaseApiTest.initVertex(); - BaseApiTest.initEdge(); - } - - @Test - public void testCount() { - String markoId = listAllVertexName2Ids().get("marko"); - String reqBody = String.format("{ " - + "\"source\": \"%s\", " - + "\"steps\": [{ " - + " \"labels\": []," - + " \"degree\": 100," - + " \"skip_degree\": 100}," - + " { " - + " \"labels\": []," - + " \"degree\": 100," - + " \"skip_degree\": 100}, " - + " { " - + " \"labels\": []," - + " \"degree\": 100," - + " \"skip_degree\": 100}]}", markoId); - Response r = client().post(path, reqBody); - String content = assertResponseStatus(200, r); - Integer count = assertJsonContains(content, "count"); - assertEquals(3, count); - } -} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CountApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CountApiTest.java deleted file mode 100644 index 76c6260e7b..0000000000 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CountApiTest.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.baidu.hugegraph.api.traversers; - -import static com.baidu.hugegraph.testutil.Assert.assertEquals; - -import javax.ws.rs.core.Response; - -import org.junit.Before; -import org.junit.Test; - -import com.baidu.hugegraph.api.BaseApiTest; - -public class CountApiTest extends BaseApiTest { - - public static String path = "graphs/hugegraph/traversers/count"; - - @Before - public void prepareSchema() { - BaseApiTest.initPropertyKey(); - BaseApiTest.initVertexLabel(); - BaseApiTest.initEdgeLabel(); - BaseApiTest.initVertex(); - BaseApiTest.initEdge(); - } - - @Test - public void testCount() { - String markoId = listAllVertexName2Ids().get("marko"); - String reqBody = String.format("{ " - + "\"source\": \"%s\", " - + "\"steps\": [{ " - + " \"labels\": []," - + " \"degree\": 100," - + " \"skip_degree\": 100}," - + " { " - + " \"labels\": []," - + " \"degree\": 100," - + " \"skip_degree\": 100}, " - + " { " - + " \"labels\": []," - + " \"degree\": 100," - + " \"skip_degree\": 100}]}", markoId); - Response r = client().post(path, reqBody); - String content = assertResponseStatus(200, r); - Integer count = assertJsonContains(content, "count"); - assertEquals(3, count); - } -} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CrosspointsAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CrosspointsAPITest.java deleted file mode 100644 index 86867e2a05..0000000000 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CrosspointsAPITest.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.baidu.hugegraph.api.traversers; - -import static com.baidu.hugegraph.testutil.Assert.assertEquals; - -import java.util.List; -import java.util.Map; - -import javax.ws.rs.core.Response; - -import org.junit.Before; -import org.junit.Test; - -import com.baidu.hugegraph.api.BaseApiTest; -import com.google.common.collect.ImmutableMap; - -public class CrosspointsAPITest extends BaseApiTest { - - public static String path = "graphs/hugegraph/traversers/crosspoints"; - - @Before - public void prepareSchema() { - BaseApiTest.initPropertyKey(); - BaseApiTest.initVertexLabel(); - BaseApiTest.initEdgeLabel(); - BaseApiTest.initVertex(); - BaseApiTest.initEdge(); - } - - @Test - public void testGet() { - Map name2Ids = listAllVertexName2Ids(); - String markoId = name2Ids.get("marko"); - String vadasId = name2Ids.get("vadas"); - Map params = ImmutableMap.of("source", - id2Json(markoId), - "target", - id2Json(vadasId), - "max_depth", 1000); - Response r = client().get(path, params); - String respBody = assertResponseStatus(200, r); - List> crosspoints = assertJsonContains(respBody, - "crosspoints"); - assertEquals(2, crosspoints.size()); - } -} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CrosspointsApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CrosspointsApiTest.java deleted file mode 100644 index 86867e2a05..0000000000 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CrosspointsApiTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.baidu.hugegraph.api.traversers; - -import static com.baidu.hugegraph.testutil.Assert.assertEquals; - -import java.util.List; -import java.util.Map; - -import javax.ws.rs.core.Response; - -import org.junit.Before; -import org.junit.Test; - -import com.baidu.hugegraph.api.BaseApiTest; -import com.google.common.collect.ImmutableMap; - -public class CrosspointsAPITest extends BaseApiTest { - - public static String path = "graphs/hugegraph/traversers/crosspoints"; - - @Before - public void prepareSchema() { - BaseApiTest.initPropertyKey(); - BaseApiTest.initVertexLabel(); - BaseApiTest.initEdgeLabel(); - BaseApiTest.initVertex(); - BaseApiTest.initEdge(); - } - - @Test - public void testGet() { - Map name2Ids = listAllVertexName2Ids(); - String markoId = name2Ids.get("marko"); - String vadasId = name2Ids.get("vadas"); - Map params = ImmutableMap.of("source", - id2Json(markoId), - "target", - id2Json(vadasId), - "max_depth", 1000); - Response r = client().get(path, params); - String respBody = assertResponseStatus(200, r); - List> crosspoints = assertJsonContains(respBody, - "crosspoints"); - assertEquals(2, crosspoints.size()); - } -} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CustomizedCrosspointsAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CustomizedCrosspointsAPITest.java deleted file mode 100644 index 323e591896..0000000000 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CustomizedCrosspointsAPITest.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.baidu.hugegraph.api.traversers; - -import static org.junit.Assert.assertEquals; - -import java.util.List; -import java.util.Map; - -import javax.ws.rs.core.Response; - -import org.junit.Before; -import org.junit.Test; - -import com.baidu.hugegraph.api.BaseApiTest; - -public class CustomizedCrosspointsApiTest extends BaseApiTest { - - public static String path = "graphs/hugegraph/traversers/customizedcrosspoints"; - - @Before - public void prepareSchema() { - BaseApiTest.initPropertyKey(); - BaseApiTest.initVertexLabel(); - BaseApiTest.initEdgeLabel(); - BaseApiTest.initVertex(); - BaseApiTest.initEdge(); - } - @Test - public void testPost() { - Map name2Ids = listAllVertexName2Ids(); - String markoId = name2Ids.get("marko"); - String rippleId = name2Ids.get("ripple"); - String reqBody = String.format("{ " - + "\"sources\":{ " - + " \"ids\":[\"%s\",\"%s\"]}, " - + "\"path_patterns\":[{ " - + " \"steps\":[{ " - + " \"direction\":\"BOTH\"," - + " \"labels\":[], " - + " \"degree\":-1}]}], " - + "\"with_path\":true, " - + "\"with_vertex\":true, " - + "\"capacity\":-1, " - + "\"limit\":-1}", markoId, rippleId); - Response r = client().post(path, reqBody); - String respBody = assertResponseStatus(200, r); - List paths = assertJsonContains(respBody, "paths"); - assertEquals(2, paths.size()); - } -} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CustomizedCrosspointsApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CustomizedCrosspointsApiTest.java deleted file mode 100644 index 323e591896..0000000000 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CustomizedCrosspointsApiTest.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.baidu.hugegraph.api.traversers; - -import static org.junit.Assert.assertEquals; - -import java.util.List; -import java.util.Map; - -import javax.ws.rs.core.Response; - -import org.junit.Before; -import org.junit.Test; - -import com.baidu.hugegraph.api.BaseApiTest; - -public class CustomizedCrosspointsApiTest extends BaseApiTest { - - public static String path = "graphs/hugegraph/traversers/customizedcrosspoints"; - - @Before - public void prepareSchema() { - BaseApiTest.initPropertyKey(); - BaseApiTest.initVertexLabel(); - BaseApiTest.initEdgeLabel(); - BaseApiTest.initVertex(); - BaseApiTest.initEdge(); - } - @Test - public void testPost() { - Map name2Ids = listAllVertexName2Ids(); - String markoId = name2Ids.get("marko"); - String rippleId = name2Ids.get("ripple"); - String reqBody = String.format("{ " - + "\"sources\":{ " - + " \"ids\":[\"%s\",\"%s\"]}, " - + "\"path_patterns\":[{ " - + " \"steps\":[{ " - + " \"direction\":\"BOTH\"," - + " \"labels\":[], " - + " \"degree\":-1}]}], " - + "\"with_path\":true, " - + "\"with_vertex\":true, " - + "\"capacity\":-1, " - + "\"limit\":-1}", markoId, rippleId); - Response r = client().post(path, reqBody); - String respBody = assertResponseStatus(200, r); - List paths = assertJsonContains(respBody, "paths"); - assertEquals(2, paths.size()); - } -} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesAPITest.java deleted file mode 100644 index 507884a4f7..0000000000 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesAPITest.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.baidu.hugegraph.api.traversers; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; - -import java.util.List; -import java.util.Map; - -import javax.ws.rs.core.Response; - -import org.junit.Before; -import org.junit.Test; - -import com.baidu.hugegraph.api.BaseApiTest; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableMultimap; - - -public class EdgesApiTest extends BaseApiTest { - - final static String EDGE_PATH = "graphs/hugegraph/traversers/edges"; - final static String SHARES_PATH = "graphs/hugegraph/traversers" - + "/edges/shards"; - final static String SCAN_PATH = "graphs/hugegraph/traversers/edges/scan"; - - @Before - public void prepareSchema() { - BaseApiTest.initPropertyKey(); - BaseApiTest.initVertexLabel(); - BaseApiTest.initEdgeLabel(); - BaseApiTest.initVertex(); - BaseApiTest.initEdge(); - } - - @Test - public void testList() { - Map name2Ids = listAllVertexName2Ids(); - final String edgeGetPath = "graphs/hugegraph/graph/edges"; - String vadasId = name2Ids.get("vadas"); - Response r = client().get(edgeGetPath, - ImmutableMap.of("vertex_id", - id2Json(vadasId), - "direction", - "IN")); - String respBody = assertResponseStatus(200, r); - List edges = assertJsonContains(respBody, "edges"); - assertNotNull(edges); - assertFalse(edges.isEmpty()); - String edgeId = assertMapContains(edges.get(0), "id"); - assertNotNull(edgeId); - - r = client().get(EDGE_PATH, - ImmutableMultimap.of("ids", edgeId)); - assertResponseStatus(200, r); - } - - @Test - public void testShareAndScan() { - Response r = client().get(SHARES_PATH, ImmutableMap.of("split_size", - 1048576)); - String respBody = assertResponseStatus(200, r); - List shards = assertJsonContains(respBody, "shards"); - assertNotNull(shards); - assertFalse(shards.isEmpty()); - String start = assertMapContains(shards.get(0), "start"); - String end = assertMapContains(shards.get(0), "end"); - r = client().get(SCAN_PATH, ImmutableMap.of("start", start, - "end", end)); - respBody = assertResponseStatus(200, r); - Map entity2 = parseMap(respBody); - assertNotNull(entity2); - assertFalse(entity2.isEmpty()); - } -} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesApiTest.java deleted file mode 100644 index 507884a4f7..0000000000 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesApiTest.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.baidu.hugegraph.api.traversers; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; - -import java.util.List; -import java.util.Map; - -import javax.ws.rs.core.Response; - -import org.junit.Before; -import org.junit.Test; - -import com.baidu.hugegraph.api.BaseApiTest; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableMultimap; - - -public class EdgesApiTest extends BaseApiTest { - - final static String EDGE_PATH = "graphs/hugegraph/traversers/edges"; - final static String SHARES_PATH = "graphs/hugegraph/traversers" - + "/edges/shards"; - final static String SCAN_PATH = "graphs/hugegraph/traversers/edges/scan"; - - @Before - public void prepareSchema() { - BaseApiTest.initPropertyKey(); - BaseApiTest.initVertexLabel(); - BaseApiTest.initEdgeLabel(); - BaseApiTest.initVertex(); - BaseApiTest.initEdge(); - } - - @Test - public void testList() { - Map name2Ids = listAllVertexName2Ids(); - final String edgeGetPath = "graphs/hugegraph/graph/edges"; - String vadasId = name2Ids.get("vadas"); - Response r = client().get(edgeGetPath, - ImmutableMap.of("vertex_id", - id2Json(vadasId), - "direction", - "IN")); - String respBody = assertResponseStatus(200, r); - List edges = assertJsonContains(respBody, "edges"); - assertNotNull(edges); - assertFalse(edges.isEmpty()); - String edgeId = assertMapContains(edges.get(0), "id"); - assertNotNull(edgeId); - - r = client().get(EDGE_PATH, - ImmutableMultimap.of("ids", edgeId)); - assertResponseStatus(200, r); - } - - @Test - public void testShareAndScan() { - Response r = client().get(SHARES_PATH, ImmutableMap.of("split_size", - 1048576)); - String respBody = assertResponseStatus(200, r); - List shards = assertJsonContains(respBody, "shards"); - assertNotNull(shards); - assertFalse(shards.isEmpty()); - String start = assertMapContains(shards.get(0), "start"); - String end = assertMapContains(shards.get(0), "end"); - r = client().get(SCAN_PATH, ImmutableMap.of("start", start, - "end", end)); - respBody = assertResponseStatus(200, r); - Map entity2 = parseMap(respBody); - assertNotNull(entity2); - assertFalse(entity2.isEmpty()); - } -} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/FusiformSimilarityAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/FusiformSimilarityAPITest.java deleted file mode 100644 index 80864a3649..0000000000 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/FusiformSimilarityAPITest.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.baidu.hugegraph.api.traversers; - -import static org.junit.Assert.assertNotNull; - -import java.util.Map; - -import javax.ws.rs.core.Response; - -import org.junit.Before; -import org.junit.Test; - -import com.baidu.hugegraph.api.BaseApiTest; - -public class FusiformSimilarityApiTest extends BaseApiTest { - - final static String path = "graphs/hugegraph/traversers/fusiformsimilarity"; - - @Before - public void prepareSchema() { - BaseApiTest.initPropertyKey(); - BaseApiTest.initVertexLabel(); - BaseApiTest.initEdgeLabel(); - BaseApiTest.initVertex(); - BaseApiTest.initEdge(); - } - - @Test - public void testPost() { - Response r = client().post(path, "{ " - + "\"sources\":{ " - + " \"ids\":[], " - + " \"label\": \"person\", " - + " \"properties\": {}}, " - + "\"label\":\"created\", " - + "\"direction\":\"OUT\", " - + "\"min_neighbors\":1, " - + "\"alpha\":1, " - + "\"min_similars\":1, " - + "\"top\":0, " - + "\"group_property\":\"city\", " - + "\"min_groups\":2, " - + "\"max_degree\": 10000, " - + "\"capacity\": -1, " - + "\"limit\": -1, " - + "\"with_intermediary\": false, " - + "\"with_vertex\":true}"); - String respBody = assertResponseStatus(200, r); - Map entity = parseMap(respBody); - assertNotNull(entity); - } -} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/FusiformSimilarityApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/FusiformSimilarityApiTest.java deleted file mode 100644 index 80864a3649..0000000000 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/FusiformSimilarityApiTest.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.baidu.hugegraph.api.traversers; - -import static org.junit.Assert.assertNotNull; - -import java.util.Map; - -import javax.ws.rs.core.Response; - -import org.junit.Before; -import org.junit.Test; - -import com.baidu.hugegraph.api.BaseApiTest; - -public class FusiformSimilarityApiTest extends BaseApiTest { - - final static String path = "graphs/hugegraph/traversers/fusiformsimilarity"; - - @Before - public void prepareSchema() { - BaseApiTest.initPropertyKey(); - BaseApiTest.initVertexLabel(); - BaseApiTest.initEdgeLabel(); - BaseApiTest.initVertex(); - BaseApiTest.initEdge(); - } - - @Test - public void testPost() { - Response r = client().post(path, "{ " - + "\"sources\":{ " - + " \"ids\":[], " - + " \"label\": \"person\", " - + " \"properties\": {}}, " - + "\"label\":\"created\", " - + "\"direction\":\"OUT\", " - + "\"min_neighbors\":1, " - + "\"alpha\":1, " - + "\"min_similars\":1, " - + "\"top\":0, " - + "\"group_property\":\"city\", " - + "\"min_groups\":2, " - + "\"max_degree\": 10000, " - + "\"capacity\": -1, " - + "\"limit\": -1, " - + "\"with_intermediary\": false, " - + "\"with_vertex\":true}"); - String respBody = assertResponseStatus(200, r); - Map entity = parseMap(respBody); - assertNotNull(entity); - } -} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/JaccardSimilarityAPITest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/JaccardSimilarityAPITest.java deleted file mode 100644 index 77176cacc1..0000000000 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/JaccardSimilarityAPITest.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.baidu.hugegraph.api.traversers; - -import static org.junit.Assert.assertEquals; - -import java.util.Map; - -import javax.ws.rs.core.Response; - -import org.junit.Before; -import org.junit.Test; - -import com.baidu.hugegraph.api.BaseApiTest; -import com.google.common.collect.ImmutableMap; - -public class JaccardSimilarityApiTest extends BaseApiTest { - - final static String path = "graphs/hugegraph/traversers/jaccardsimilarity"; - - @Before - public void prepareSchema() { - BaseApiTest.initPropertyKey(); - BaseApiTest.initVertexLabel(); - BaseApiTest.initEdgeLabel(); - BaseApiTest.initVertex(); - BaseApiTest.initEdge(); - } - - @Test - public void testGet() { - Map name2Ids = listAllVertexName2Ids(); - String markoId = name2Ids.get("marko"); - String peterId = name2Ids.get("peter"); - Response r = client().get(path, ImmutableMap.of("vertex", - id2Json(markoId), - "other", - id2Json(peterId))); - String content = assertResponseStatus(200, r); - Double jaccardSimilarity = assertJsonContains(content, - "jaccard_similarity"); - assertEquals(0.25, jaccardSimilarity.doubleValue(), 0.0001); - } - - @Test - public void testPost() { - Map name2Ids = listAllVertexName2Ids(); - String markoId = name2Ids.get("marko"); - String rippleId = name2Ids.get("ripple"); - String peterId = name2Ids.get("peter"); - String jsonId = name2Ids.get("josh"); - String reqBody = String.format("{ " - + "\"vertex\": \"%s\", " - + "\"step\": { " - + " \"direction\": \"BOTH\", " - + " \"labels\": [], " - + " \"degree\": 10000, " - + " \"skip_degree\": 100000 }, " - + "\"top\": 3}", markoId); - Response r = client().post(path, reqBody); - String respBody = assertResponseStatus(200, r); - Map entity = parseMap(respBody); - Double rippleJaccardSimilarity = assertMapContains(entity, rippleId); - Double peterJaccardSimilarity = assertMapContains(entity, peterId); - Double jsonJaccardSimilarity = assertMapContains(entity, jsonId); - assertEquals(0.3333, rippleJaccardSimilarity.doubleValue(), 0.0001); - assertEquals(0.25, peterJaccardSimilarity.doubleValue(), 0.0001); - assertEquals(0.3333, jsonJaccardSimilarity.doubleValue(), 0.0001); - } -} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/JaccardSimilarityApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/JaccardSimilarityApiTest.java deleted file mode 100644 index 77176cacc1..0000000000 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/JaccardSimilarityApiTest.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.baidu.hugegraph.api.traversers; - -import static org.junit.Assert.assertEquals; - -import java.util.Map; - -import javax.ws.rs.core.Response; - -import org.junit.Before; -import org.junit.Test; - -import com.baidu.hugegraph.api.BaseApiTest; -import com.google.common.collect.ImmutableMap; - -public class JaccardSimilarityApiTest extends BaseApiTest { - - final static String path = "graphs/hugegraph/traversers/jaccardsimilarity"; - - @Before - public void prepareSchema() { - BaseApiTest.initPropertyKey(); - BaseApiTest.initVertexLabel(); - BaseApiTest.initEdgeLabel(); - BaseApiTest.initVertex(); - BaseApiTest.initEdge(); - } - - @Test - public void testGet() { - Map name2Ids = listAllVertexName2Ids(); - String markoId = name2Ids.get("marko"); - String peterId = name2Ids.get("peter"); - Response r = client().get(path, ImmutableMap.of("vertex", - id2Json(markoId), - "other", - id2Json(peterId))); - String content = assertResponseStatus(200, r); - Double jaccardSimilarity = assertJsonContains(content, - "jaccard_similarity"); - assertEquals(0.25, jaccardSimilarity.doubleValue(), 0.0001); - } - - @Test - public void testPost() { - Map name2Ids = listAllVertexName2Ids(); - String markoId = name2Ids.get("marko"); - String rippleId = name2Ids.get("ripple"); - String peterId = name2Ids.get("peter"); - String jsonId = name2Ids.get("josh"); - String reqBody = String.format("{ " - + "\"vertex\": \"%s\", " - + "\"step\": { " - + " \"direction\": \"BOTH\", " - + " \"labels\": [], " - + " \"degree\": 10000, " - + " \"skip_degree\": 100000 }, " - + "\"top\": 3}", markoId); - Response r = client().post(path, reqBody); - String respBody = assertResponseStatus(200, r); - Map entity = parseMap(respBody); - Double rippleJaccardSimilarity = assertMapContains(entity, rippleId); - Double peterJaccardSimilarity = assertMapContains(entity, peterId); - Double jsonJaccardSimilarity = assertMapContains(entity, jsonId); - assertEquals(0.3333, rippleJaccardSimilarity.doubleValue(), 0.0001); - assertEquals(0.25, peterJaccardSimilarity.doubleValue(), 0.0001); - assertEquals(0.3333, jsonJaccardSimilarity.doubleValue(), 0.0001); - } -} From 7165c0ce54b07ef8eda57f47657992521186ba9d Mon Sep 17 00:00:00 2001 From: zyxxoo <1318247699@qq.com> Date: Fri, 25 Jun 2021 17:59:00 +0800 Subject: [PATCH 07/11] chore: rename file --- .../traversers/AllShortestPathsApiTest.java | 55 +++++++++++ .../api/traversers/CountApiTest.java | 66 +++++++++++++ .../api/traversers/CrosspointsApiTest.java | 64 +++++++++++++ .../CustomizedCrosspointsApiTest.java | 68 ++++++++++++++ .../api/traversers/EdgesApiTest.java | 92 ++++++++++++++++++ .../traversers/FusiformSimilarityApiTest.java | 70 ++++++++++++++ .../traversers/JaccardSimilarityApiTest.java | 88 ++++++++++++++++++ .../api/traversers/KneighborApiTest.java | 86 +++++++++++++++++ .../hugegraph/api/traversers/KoutApiTest.java | 93 +++++++++++++++++++ .../MultiNodeShortestPathApiTest.java | 68 ++++++++++++++ .../api/traversers/NeighborRankApiTest.java | 61 ++++++++++++ .../api/traversers/PathsApiTest.java | 90 ++++++++++++++++++ .../api/traversers/PersonalRankApiTest.java | 60 ++++++++++++ .../hugegraph/api/traversers/RaysApiTest.java | 65 +++++++++++++ .../api/traversers/RingsApiTest.java | 60 ++++++++++++ .../api/traversers/SameNeighborsApiTest.java | 62 +++++++++++++ .../api/traversers/ShortestPathApiTest.java | 25 +++++ .../SingleSourceShortestPathApiTest.java | 25 +++++ .../api/traversers/TemplatePathsApiTest.java | 25 +++++ .../traversers/TraversersApiTestSuite.java | 60 +++++++----- 20 files changed, 1261 insertions(+), 22 deletions(-) create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/AllShortestPathsApiTest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CountApiTest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CrosspointsApiTest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CustomizedCrosspointsApiTest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesApiTest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/FusiformSimilarityApiTest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/JaccardSimilarityApiTest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/KneighborApiTest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/KoutApiTest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/MultiNodeShortestPathApiTest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/NeighborRankApiTest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/PathsApiTest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/PersonalRankApiTest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/RaysApiTest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/RingsApiTest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/SameNeighborsApiTest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/ShortestPathApiTest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/SingleSourceShortestPathApiTest.java create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/TemplatePathsApiTest.java diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/AllShortestPathsApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/AllShortestPathsApiTest.java new file mode 100644 index 0000000000..129c7b3f98 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/AllShortestPathsApiTest.java @@ -0,0 +1,55 @@ +/* + * Copyright 2017 HugeGraph Authors + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +package com.baidu.hugegraph.api.traversers; + +import java.util.Map; + +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; +import com.google.common.collect.ImmutableMap; + +public class AllShortestPathsApiTest extends BaseApiTest { + + public static String path = "graphs/hugegraph/traversers/allshortestpaths"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void testGet() { + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + String vadasId = name2Ids.get("vadas"); + Map entities = ImmutableMap.of("source", + id2Json(markoId), + "target", + id2Json(vadasId), + "max_depth", 100); + assertResponseStatus(200, client().get(path, entities)); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CountApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CountApiTest.java new file mode 100644 index 0000000000..a14dcb5dae --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CountApiTest.java @@ -0,0 +1,66 @@ +/* + * Copyright 2017 HugeGraph Authors + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +package com.baidu.hugegraph.api.traversers; + +import com.baidu.hugegraph.testutil.Assert; + +import javax.ws.rs.core.Response; + +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; + +public class CountApiTest extends BaseApiTest { + + public static String path = "graphs/hugegraph/traversers/count"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void testCount() { + String markoId = listAllVertexName2Ids().get("marko"); + String reqBody = String.format("{ " + + "\"source\": \"%s\", " + + "\"steps\": [{ " + + " \"labels\": []," + + " \"degree\": 100," + + " \"skip_degree\": 100}," + + " { " + + " \"labels\": []," + + " \"degree\": 100," + + " \"skip_degree\": 100}, " + + " { " + + " \"labels\": []," + + " \"degree\": 100," + + " \"skip_degree\": 100}]}", markoId); + Response r = client().post(path, reqBody); + String content = assertResponseStatus(200, r); + Integer count = assertJsonContains(content, "count"); + Assert.assertEquals(3, count); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CrosspointsApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CrosspointsApiTest.java new file mode 100644 index 0000000000..50cfb95c4b --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CrosspointsApiTest.java @@ -0,0 +1,64 @@ +/* + * Copyright 2017 HugeGraph Authors + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +package com.baidu.hugegraph.api.traversers; + +import com.baidu.hugegraph.testutil.Assert; + +import java.util.List; +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; +import com.google.common.collect.ImmutableMap; + +public class CrosspointsApiTest extends BaseApiTest { + + public static String path = "graphs/hugegraph/traversers/crosspoints"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void testGet() { + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + String vadasId = name2Ids.get("vadas"); + Map params = ImmutableMap.of("source", + id2Json(markoId), + "target", + id2Json(vadasId), + "max_depth", 1000); + Response r = client().get(path, params); + String respBody = assertResponseStatus(200, r); + List> crosspoints = assertJsonContains(respBody, + "crosspoints"); + Assert.assertEquals(2, crosspoints.size()); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CustomizedCrosspointsApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CustomizedCrosspointsApiTest.java new file mode 100644 index 0000000000..0a268d00fd --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CustomizedCrosspointsApiTest.java @@ -0,0 +1,68 @@ +/* + * Copyright 2017 HugeGraph Authors + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +package com.baidu.hugegraph.api.traversers; + +import org.junit.Assert; + +import java.util.List; +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; + +public class CustomizedCrosspointsApiTest extends BaseApiTest { + + public static String path = "graphs/hugegraph/traversers/customizedcrosspoints"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + @Test + public void testPost() { + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + String rippleId = name2Ids.get("ripple"); + String reqBody = String.format("{ " + + "\"sources\":{ " + + " \"ids\":[\"%s\",\"%s\"]}, " + + "\"path_patterns\":[{ " + + " \"steps\":[{ " + + " \"direction\":\"BOTH\"," + + " \"labels\":[], " + + " \"degree\":-1}]}], " + + "\"with_path\":true, " + + "\"with_vertex\":true, " + + "\"capacity\":-1, " + + "\"limit\":-1}", markoId, rippleId); + Response r = client().post(path, reqBody); + String respBody = assertResponseStatus(200, r); + List paths = assertJsonContains(respBody, "paths"); + Assert.assertEquals(2, paths.size()); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesApiTest.java new file mode 100644 index 0000000000..e1e3581e46 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesApiTest.java @@ -0,0 +1,92 @@ +/* + * Copyright 2017 HugeGraph Authors + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +package com.baidu.hugegraph.api.traversers; + +import org.junit.Assert; + +import java.util.List; +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableMultimap; + + +public class EdgesApiTest extends BaseApiTest { + + final static String EDGE_PATH = "graphs/hugegraph/traversers/edges"; + final static String SHARES_PATH = "graphs/hugegraph/traversers" + + "/edges/shards"; + final static String SCAN_PATH = "graphs/hugegraph/traversers/edges/scan"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void testList() { + Map name2Ids = listAllVertexName2Ids(); + final String edgeGetPath = "graphs/hugegraph/graph/edges"; + String vadasId = name2Ids.get("vadas"); + Map params = ImmutableMap.of("vertex_id", + id2Json(vadasId), + "direction", + "IN"); + Response r = client().get(edgeGetPath, params); + String respBody = assertResponseStatus(200, r); + List edges = assertJsonContains(respBody, "edges"); + Assert.assertNotNull(edges); + Assert.assertFalse(edges.isEmpty()); + String edgeId = assertMapContains(edges.get(0), "id"); + Assert.assertNotNull(edgeId); + + r = client().get(EDGE_PATH, + ImmutableMultimap.of("ids", edgeId)); + assertResponseStatus(200, r); + } + + @Test + public void testShareAndScan() { + Response r = client().get(SHARES_PATH, ImmutableMap.of("split_size", + 1048576)); + String respBody = assertResponseStatus(200, r); + List shards = assertJsonContains(respBody, "shards"); + Assert.assertNotNull(shards); + Assert.assertFalse(shards.isEmpty()); + String start = assertMapContains(shards.get(0), "start"); + String end = assertMapContains(shards.get(0), "end"); + r = client().get(SCAN_PATH, ImmutableMap.of("start", start, + "end", end)); + respBody = assertResponseStatus(200, r); + Map entity2 = parseMap(respBody); + Assert.assertNotNull(entity2); + Assert.assertFalse(entity2.isEmpty()); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/FusiformSimilarityApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/FusiformSimilarityApiTest.java new file mode 100644 index 0000000000..14b23ebb7d --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/FusiformSimilarityApiTest.java @@ -0,0 +1,70 @@ +/* + * Copyright 2017 HugeGraph Authors + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +package com.baidu.hugegraph.api.traversers; + +import org.junit.Assert; + +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; + +public class FusiformSimilarityApiTest extends BaseApiTest { + + final static String path = "graphs/hugegraph/traversers/fusiformsimilarity"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void testPost() { + Response r = client().post(path, "{ " + + "\"sources\":{ " + + " \"ids\":[], " + + " \"label\": \"person\", " + + " \"properties\": {}}, " + + "\"label\":\"created\", " + + "\"direction\":\"OUT\", " + + "\"min_neighbors\":1, " + + "\"alpha\":1, " + + "\"min_similars\":1, " + + "\"top\":0, " + + "\"group_property\":\"city\", " + + "\"min_groups\":2, " + + "\"max_degree\": 10000, " + + "\"capacity\": -1, " + + "\"limit\": -1, " + + "\"with_intermediary\": false, " + + "\"with_vertex\":true}"); + String respBody = assertResponseStatus(200, r); + Map entity = parseMap(respBody); + Assert.assertNotNull(entity); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/JaccardSimilarityApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/JaccardSimilarityApiTest.java new file mode 100644 index 0000000000..fa20848500 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/JaccardSimilarityApiTest.java @@ -0,0 +1,88 @@ +/* + * Copyright 2017 HugeGraph Authors + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +package com.baidu.hugegraph.api.traversers; + +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; +import com.google.common.collect.ImmutableMap; + +public class JaccardSimilarityApiTest extends BaseApiTest { + + final static String path = "graphs/hugegraph/traversers/jaccardsimilarity"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void testGet() { + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + String peterId = name2Ids.get("peter"); + Response r = client().get(path, ImmutableMap.of("vertex", + id2Json(markoId), + "other", + id2Json(peterId))); + String content = assertResponseStatus(200, r); + Double jaccardSimilarity = assertJsonContains(content, + "jaccard_similarity"); + Assert.assertEquals(0.25, jaccardSimilarity.doubleValue(), 0.0001); + } + + @Test + public void testPost() { + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + String rippleId = name2Ids.get("ripple"); + String peterId = name2Ids.get("peter"); + String jsonId = name2Ids.get("josh"); + String reqBody = String.format("{ " + + "\"vertex\": \"%s\", " + + "\"step\": { " + + " \"direction\": \"BOTH\", " + + " \"labels\": [], " + + " \"degree\": 10000, " + + " \"skip_degree\": 100000 }, " + + "\"top\": 3}", markoId); + Response r = client().post(path, reqBody); + String respBody = assertResponseStatus(200, r); + Map entity = parseMap(respBody); + Double rippleJaccardSimilarity = assertMapContains(entity, rippleId); + Double peterJaccardSimilarity = assertMapContains(entity, peterId); + Double jsonJaccardSimilarity = assertMapContains(entity, jsonId); + Assert.assertEquals(0.3333, rippleJaccardSimilarity.doubleValue(), + 0.0001); + Assert.assertEquals(0.25, peterJaccardSimilarity.doubleValue(), 0.0001); + Assert.assertEquals(0.3333, jsonJaccardSimilarity.doubleValue(), + 0.0001); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/KneighborApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/KneighborApiTest.java new file mode 100644 index 0000000000..1e979dc5c2 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/KneighborApiTest.java @@ -0,0 +1,86 @@ +/* + * Copyright 2017 HugeGraph Authors + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +package com.baidu.hugegraph.api.traversers; + +import java.util.List; +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; +import com.google.common.collect.ImmutableMap; + +public class KneighborApiTest extends BaseApiTest { + + final static String path = "graphs/hugegraph/traversers/kneighbor"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void testGet() { + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + Response r = client().get(path, + ImmutableMap.of("source", id2Json(markoId), + "max_depth", 2)); + String respBody = assertResponseStatus(200, r); + List vertices = assertJsonContains(respBody, "vertices"); + Assert.assertEquals(3, vertices.size()); + } + + @Test + public void testPost() { + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + String reqBody = String.format("{ " + + "\"source\": \"%s\", " + + "\"step\": { " + + " \"direction\": \"BOTH\", " + + + " \"labels\": [\"knows\", " + + "\"created\"], " + + " \"properties\": { " + + " \"weight\": \"P.gt(0.1)\"}, " + + " \"degree\": 10000, " + + " \"skip_degree\": 100000}, " + + "\"max_depth\": 3, " + + "\"limit\": 10000, " + + "\"with_vertex\": true, " + + "\"with_path\": true}", markoId); + Response r = client().post(path, reqBody); + String content = assertResponseStatus(200, r); + Map entity = parseMap(content); + Assert.assertNotNull(entity); + assertMapContains(entity, "kneighbor"); + assertMapContains(entity, "paths"); + assertMapContains(entity, "vertices"); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/KoutApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/KoutApiTest.java new file mode 100644 index 0000000000..f65be3a310 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/KoutApiTest.java @@ -0,0 +1,93 @@ +/* + * Copyright 2017 HugeGraph Authors + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +package com.baidu.hugegraph.api.traversers; + +import java.util.List; +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; + +public class KoutApiTest extends BaseApiTest { + + final static String path = "graphs/hugegraph/traversers/kout"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void testGet() { + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + String peterId = name2Ids.get("peter"); + String joshId = name2Ids.get("josh"); + Response r = client().get(path, + ImmutableMap.of("source", id2Json(markoId), + "max_depth", 2)); + String respBody = assertResponseStatus(200, r); + List vertices = assertJsonContains(respBody, "vertices"); + Assert.assertEquals(1, vertices.size()); + Assert.assertTrue(vertices.containsAll(ImmutableList.of(peterId, + joshId))); + } + + @Test + public void testPost() { + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + String reqBody = String.format("{ " + + "\"source\": \"%s\", " + + "\"step\": { " + + " \"direction\": \"BOTH\", " + + + " \"labels\": [\"knows\", " + + "\"created\"], " + + " \"properties\": { " + + " \"weight\": \"P.gt(0.1)\"}, " + + " \"degree\": 10000, " + + " \"skip_degree\": 100000}, " + + "\"max_depth\": 1, " + + "\"nearest\": true, " + + "\"limit\": 10000, " + + "\"with_vertex\": true, " + + "\"with_path\": true}", markoId); + Response resp = client().post(path, reqBody); + String respBody = assertResponseStatus(200, resp); + Map entity = parseMap(respBody); + assertMapContains(entity, "size"); + assertMapContains(entity, "kout"); + assertMapContains(entity, "paths"); + assertMapContains(entity, "vertices"); + Assert.assertEquals(2, entity.get("size")); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/MultiNodeShortestPathApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/MultiNodeShortestPathApiTest.java new file mode 100644 index 0000000000..511bc0e0e3 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/MultiNodeShortestPathApiTest.java @@ -0,0 +1,68 @@ +/* + * Copyright 2017 HugeGraph Authors + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +package com.baidu.hugegraph.api.traversers; + +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; + +public class MultiNodeShortestPathApiTest extends BaseApiTest { + + final String path = "graphs/hugegraph/traversers/multinodeshortestpath"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void testPost() { + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + String peterId = name2Ids.get("peter"); + String joshId = name2Ids.get("josh"); + String vadasId = name2Ids.get("vadas"); + String reqBody = String.format("{ " + + "\"vertices\": { " + + " \"ids\": [\"%s\", \"%s\", \"%s\", " + + " \"%s\"]}, " + + "\"step\": { " + + " \"direction\": \"BOTH\", " + + " \"properties\": {}}, " + + "\"max_depth\": 10, " + + "\"capacity\": 100000000, " + + "\"with_vertex\": true}", + markoId, peterId, joshId, vadasId); + Response r = client().post(path, reqBody); + String respJosn = assertResponseStatus(200, r); + Map entity = parseMap(respJosn); + assertMapContains(entity, "paths"); + assertMapContains(entity, "vertices"); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/NeighborRankApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/NeighborRankApiTest.java new file mode 100644 index 0000000000..6fe394920c --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/NeighborRankApiTest.java @@ -0,0 +1,61 @@ +/* + * Copyright 2017 HugeGraph Authors + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +package com.baidu.hugegraph.api.traversers; + +import org.junit.Assert; + +import java.util.List; +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; + +public class NeighborRankApiTest extends BaseApiTest { + + final static String path = "graphs/hugegraph/traversers/neighborrank"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void testNeighborRank() { + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + String reqBody = String.format("{" + + "\"source\":\"%s\"," + + "\"steps\": [{" + + " \"direction\": \"BOTH\"}]," + + "\"alpha\":%s}", markoId, 1); + Response r = client().post(path, reqBody); + String respBody = assertResponseStatus(200, r); + List ranks = assertJsonContains(respBody, "ranks"); + Assert.assertEquals(2, ranks.size()); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/PathsApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/PathsApiTest.java new file mode 100644 index 0000000000..71b14f2b17 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/PathsApiTest.java @@ -0,0 +1,90 @@ +/* + * Copyright 2017 HugeGraph Authors + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +package com.baidu.hugegraph.api.traversers; + +import java.util.List; +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; +import com.google.common.collect.ImmutableMap; + +public class PathsApiTest extends BaseApiTest { + + final static String path = "graphs/hugegraph/traversers/paths"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void testGet() { + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + String vadasId = name2Ids.get("vadas"); + Response r = client().get(path, ImmutableMap.of("source", + id2Json(markoId), + "target", + id2Json(vadasId), + "max_depth", 3)); + String respBody = assertResponseStatus(200, r); + Map entity = parseMap(respBody); + Assert.assertNotNull(entity); + assertMapContains(entity, "paths"); + List> paths = assertMapContains(entity, "paths"); + Assert.assertEquals(1, paths.size()); + } + + @Test + public void testPost() { + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + String joshId = name2Ids.get("josh"); + String reqBody = String.format("{ " + + "\"sources\": { " + + " \"ids\": [\"%s\"] " + + "}, " + + "\"targets\": { " + + " \"ids\": [\"%s\"]}, " + + "\"step\": { " + + " \"direction\": \"BOTH\", " + + " \"properties\": { " + + " \"weight\": \"P.gt(0.01)\"}}, " + + "\"max_depth\": 10, " + + "\"capacity\": 100000000, " + + "\"limit\": 10000000, " + + "\"with_vertex\": false}", + markoId, joshId); + Response r = client().post(path, reqBody); + String respBody = assertResponseStatus(200, r); + List> paths = assertJsonContains(respBody, "paths"); + Assert.assertFalse(paths.isEmpty()); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/PersonalRankApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/PersonalRankApiTest.java new file mode 100644 index 0000000000..3807e9401e --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/PersonalRankApiTest.java @@ -0,0 +1,60 @@ +/* + * Copyright 2017 HugeGraph Authors + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +package com.baidu.hugegraph.api.traversers; + +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; + +public class PersonalRankApiTest extends BaseApiTest { + + final static String path = "graphs/hugegraph/traversers/personalrank"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void testPersonalRank() { + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + String reqBody = String.format("{" + + "\"source\":\"%s\"," + + "\"max_depth\":\"%s\"," + + "\"label\":\"%s\"," + + "\"alpha\":\"%s\"}", + markoId, 3, "created", 1); + Response r = client().post(path, reqBody); + String respBody = assertResponseStatus(200, r); + Map entity = parseMap(respBody); + Assert.assertNotNull(entity); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/RaysApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/RaysApiTest.java new file mode 100644 index 0000000000..32d9bc70b0 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/RaysApiTest.java @@ -0,0 +1,65 @@ +/* + * Copyright 2017 HugeGraph Authors + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +package com.baidu.hugegraph.api.traversers; + +import java.util.List; +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; +import com.google.common.collect.ImmutableMap; + +public class RaysApiTest extends BaseApiTest { + + final static String path = "graphs/hugegraph/traversers/rays"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void testGet() { + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + String vadasId = name2Ids.get("vadas"); + Response r = client().get(path, ImmutableMap.of("source", + id2Json(markoId), + "max_depth", 10)); + String respBody = assertResponseStatus(200, r); + List>> rays = assertJsonContains(respBody, + "rays"); + Assert.assertNotNull(rays); + Assert.assertEquals(2, rays.size()); + Object[] valuesArray = rays.get(0).values().toArray(); + Assert.assertNotEquals(0, valuesArray.length); + List values = (List) valuesArray[0]; + Assert.assertTrue(values.contains(vadasId)); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/RingsApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/RingsApiTest.java new file mode 100644 index 0000000000..3a441f3902 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/RingsApiTest.java @@ -0,0 +1,60 @@ +/* + * Copyright 2017 HugeGraph Authors + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +package com.baidu.hugegraph.api.traversers; + +import java.util.List; +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; +import com.google.common.collect.ImmutableMap; + +public class RingsApiTest extends BaseApiTest { + + final static String path = "graphs/hugegraph/traversers/rings"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void testGet() { + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + Map params = ImmutableMap.of("source", + id2Json(markoId), + "max_depth", 10); + Response r = client().get(path, params); + String respJson = assertResponseStatus(200, r); + List>> rings = assertJsonContains(respJson, + "rings"); + Assert.assertFalse(rings.isEmpty()); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/SameNeighborsApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/SameNeighborsApiTest.java new file mode 100644 index 0000000000..80cc4f5ac9 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/SameNeighborsApiTest.java @@ -0,0 +1,62 @@ +/* + * Copyright 2017 HugeGraph Authors + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +package com.baidu.hugegraph.api.traversers; + +import java.util.List; +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; +import com.google.common.collect.ImmutableMap; + +public class SameNeighborsApiTest extends BaseApiTest { + + final static String path = "graphs/hugegraph/traversers/sameneighbors"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void testGet() { + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + String joshId = name2Ids.get("josh"); + String peterId = name2Ids.get("peter"); + Response r = client().get(path, + ImmutableMap.of("vertex", id2Json(markoId), + "other", id2Json(joshId))); + String respBody = assertResponseStatus(200, r); + List sameNeighbors = assertJsonContains(respBody, + "same_neighbors"); + Assert.assertFalse(sameNeighbors.isEmpty()); + Assert.assertTrue(sameNeighbors.contains(peterId)); + } +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/ShortestPathApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/ShortestPathApiTest.java new file mode 100644 index 0000000000..76f7539697 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/ShortestPathApiTest.java @@ -0,0 +1,25 @@ +/* + * Copyright 2017 HugeGraph Authors + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +package com.baidu.hugegraph.api.traversers; + +import com.baidu.hugegraph.api.BaseApiTest; + +public class ShortestPathApiTest extends BaseApiTest { +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/SingleSourceShortestPathApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/SingleSourceShortestPathApiTest.java new file mode 100644 index 0000000000..47cb1ad0f7 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/SingleSourceShortestPathApiTest.java @@ -0,0 +1,25 @@ +/* + * Copyright 2017 HugeGraph Authors + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +package com.baidu.hugegraph.api.traversers; + +import com.baidu.hugegraph.api.BaseApiTest; + +public class SingleSourceShortestPathApiTest extends BaseApiTest { +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/TemplatePathsApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/TemplatePathsApiTest.java new file mode 100644 index 0000000000..17f640dea2 --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/TemplatePathsApiTest.java @@ -0,0 +1,25 @@ +/* + * Copyright 2017 HugeGraph Authors + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +package com.baidu.hugegraph.api.traversers; + +import com.baidu.hugegraph.api.BaseApiTest; + +public class TemplatePathsApiTest extends BaseApiTest { +} diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/TraversersApiTestSuite.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/TraversersApiTestSuite.java index c67b34e32f..a671866d00 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/TraversersApiTestSuite.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/TraversersApiTestSuite.java @@ -1,32 +1,48 @@ +/* + * Copyright 2017 HugeGraph Authors + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + package com.baidu.hugegraph.api.traversers; -import org.junit.BeforeClass; import org.junit.runner.RunWith; import org.junit.runners.Suite; -import com.baidu.hugegraph.dist.RegisterUtil; - @RunWith(Suite.class) @Suite.SuiteClasses({ - AllShortestPathsAPITest.class, - CountAPITest.class, - CrosspointsAPITest.class, - CustomizedCrosspointsAPITest.class, - EdgesAPITest.class, - FusiformSimilarityAPITest.class, - JaccardSimilarityAPITest.class, - KneighborAPITest.class, - KoutAPITest.class, - MultiNodeShortestPathAPITest.class, - NeighborRankAPITest.class, - PathsAPITest.class, - PersonalRankAPITest.class, - RaysAPITest.class, - RingsAPITest.class, - SameNeighborsAPITest.class, - ShortestPathAPITest.class, - SingleSourceShortestPathAPITest.class, - TemplatePathsAPITest.class + AllShortestPathsApiTest.class, + CountApiTest.class, + CrosspointsApiTest.class, + CustomizedCrosspointsApiTest.class, + EdgesApiTest.class, + FusiformSimilarityApiTest.class, + JaccardSimilarityApiTest.class, + KneighborApiTest.class, + KoutApiTest.class, + MultiNodeShortestPathApiTest.class, + NeighborRankApiTest.class, + PathsApiTest.class, + PersonalRankApiTest.class, + RaysApiTest.class, + RingsApiTest.class, + SameNeighborsApiTest.class, + ShortestPathApiTest.class, + SingleSourceShortestPathApiTest.class, + TemplatePathsApiTest.class }) public class TraversersApiTestSuite { } From 98baab9319299b2ef2da87271824c62438e0e881 Mon Sep 17 00:00:00 2001 From: zyxxoo <1318247699@qq.com> Date: Tue, 29 Jun 2021 12:44:15 +0800 Subject: [PATCH 08/11] fix: unit test failed --- .../backend/store/memory/InMemoryDBTable.java | 8 +++++--- hugegraph-dist/pom.xml | 6 ++++++ hugegraph-hbase/pom.xml | 6 ++++++ .../hugegraph/api/traversers/CrosspointsApiTest.java | 2 +- .../baidu/hugegraph/api/traversers/EdgesApiTest.java | 1 + .../baidu/hugegraph/api/traversers/KoutApiTest.java | 12 ++++++++++++ .../api/traversers/ShortestPathApiTest.java | 7 +++++++ .../traversers/SingleSourceShortestPathApiTest.java | 7 +++++++ .../api/traversers/TemplatePathsApiTest.java | 7 +++++++ 9 files changed, 52 insertions(+), 4 deletions(-) diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/backend/store/memory/InMemoryDBTable.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/backend/store/memory/InMemoryDBTable.java index 2fdfcdc19a..c3afaa5734 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/backend/store/memory/InMemoryDBTable.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/backend/store/memory/InMemoryDBTable.java @@ -49,6 +49,7 @@ import com.baidu.hugegraph.util.E; import com.baidu.hugegraph.util.InsertionOrderUtil; import com.baidu.hugegraph.util.Log; +import com.google.common.base.Strings; public class InMemoryDBTable extends BackendTable { @@ -206,9 +207,10 @@ private Iterator queryByRange(ConditionQuery query) { "Invalid scan with multi conditions: %s", query); Condition.Relation scan = query.relations().iterator().next(); Shard shard = (Shard) scan.value(); - - int start = Long.valueOf(shard.start()).intValue(); - int end = Long.valueOf(shard.end()).intValue(); + int start = Strings.isNullOrEmpty(shard.start()) ? + 0 : Long.valueOf(shard.start()).intValue(); + int end = Strings.isNullOrEmpty(shard.end()) ? + 0 : Long.valueOf(shard.end()).intValue(); List rs = new ArrayList<>(end - start); diff --git a/hugegraph-dist/pom.xml b/hugegraph-dist/pom.xml index 60e770b3fa..198eee1b81 100644 --- a/hugegraph-dist/pom.xml +++ b/hugegraph-dist/pom.xml @@ -23,6 +23,12 @@ com.baidu.hugegraph hugegraph-core ${project.version} + + + com.google.protobuf + protobuf-java + + com.baidu.hugegraph diff --git a/hugegraph-hbase/pom.xml b/hugegraph-hbase/pom.xml index 9fd639474d..25562ed205 100644 --- a/hugegraph-hbase/pom.xml +++ b/hugegraph-hbase/pom.xml @@ -16,6 +16,12 @@ com.baidu.hugegraph hugegraph-core ${project.version} + + + com.google.protobuf + protobuf-java + + org.apache.hbase diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CrosspointsApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CrosspointsApiTest.java index 50cfb95c4b..6adba86c81 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CrosspointsApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CrosspointsApiTest.java @@ -54,7 +54,7 @@ public void testGet() { id2Json(markoId), "target", id2Json(vadasId), - "max_depth", 1000); + "max_depth", 10); Response r = client().get(path, params); String respBody = assertResponseStatus(200, r); List> crosspoints = assertJsonContains(respBody, diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesApiTest.java index e1e3581e46..9aa5b080d6 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesApiTest.java @@ -30,6 +30,7 @@ import org.junit.Test; import com.baidu.hugegraph.api.BaseApiTest; +import com.google.common.base.Strings; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMultimap; diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/KoutApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/KoutApiTest.java index f65be3a310..4e883b2960 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/KoutApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/KoutApiTest.java @@ -51,13 +51,25 @@ public void testGet() { String markoId = name2Ids.get("marko"); String peterId = name2Ids.get("peter"); String joshId = name2Ids.get("josh"); + String rippleId = name2Ids.get("ripple"); + // Test for nearest is true Response r = client().get(path, ImmutableMap.of("source", id2Json(markoId), "max_depth", 2)); String respBody = assertResponseStatus(200, r); List vertices = assertJsonContains(respBody, "vertices"); Assert.assertEquals(1, vertices.size()); + Assert.assertTrue(vertices.contains(joshId)); + // Test for nearest is false + r = client().get(path, + ImmutableMap.of("source", id2Json(markoId), + "max_depth", 2, + "nearest", "false")); + respBody = assertResponseStatus(200, r); + vertices = assertJsonContains(respBody, "vertices"); + Assert.assertEquals(3, vertices.size()); Assert.assertTrue(vertices.containsAll(ImmutableList.of(peterId, + rippleId, joshId))); } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/ShortestPathApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/ShortestPathApiTest.java index 76f7539697..07090fa0f7 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/ShortestPathApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/ShortestPathApiTest.java @@ -19,7 +19,14 @@ package com.baidu.hugegraph.api.traversers; +import org.junit.Test; + import com.baidu.hugegraph.api.BaseApiTest; public class ShortestPathApiTest extends BaseApiTest { + + @Test + public void testGet() { + // TODO + } } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/SingleSourceShortestPathApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/SingleSourceShortestPathApiTest.java index 47cb1ad0f7..08964f69d7 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/SingleSourceShortestPathApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/SingleSourceShortestPathApiTest.java @@ -19,7 +19,14 @@ package com.baidu.hugegraph.api.traversers; +import org.junit.Test; + import com.baidu.hugegraph.api.BaseApiTest; public class SingleSourceShortestPathApiTest extends BaseApiTest { + + @Test + public void testGet() { + // TODO + } } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/TemplatePathsApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/TemplatePathsApiTest.java index 17f640dea2..8abb318d69 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/TemplatePathsApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/TemplatePathsApiTest.java @@ -19,7 +19,14 @@ package com.baidu.hugegraph.api.traversers; +import org.junit.Test; + import com.baidu.hugegraph.api.BaseApiTest; public class TemplatePathsApiTest extends BaseApiTest { + + @Test + public void testGet() { + // TODO + } } From c18bac625a9a6f877bd1c25a15d4845aec1ff66e Mon Sep 17 00:00:00 2001 From: zyxxoo <1318247699@qq.com> Date: Mon, 12 Jul 2021 17:23:31 +0800 Subject: [PATCH 09/11] feat: add templatePath unit test --- .../com/baidu/hugegraph/api/BaseApiTest.java | 25 ++----- .../traversers/AllShortestPathsApiTest.java | 13 +++- .../api/traversers/CountApiTest.java | 29 ++++---- .../CustomizedCrosspointsApiTest.java | 27 ++++--- .../api/traversers/EdgesApiTest.java | 18 ++--- .../traversers/FusiformSimilarityApiTest.java | 47 +++++++------ .../traversers/JaccardSimilarityApiTest.java | 23 +++--- .../api/traversers/KneighborApiTest.java | 43 ++++++------ .../hugegraph/api/traversers/KoutApiTest.java | 59 ++++++++-------- .../MultiNodeShortestPathApiTest.java | 27 ++++--- .../api/traversers/NeighborRankApiTest.java | 13 ++-- .../api/traversers/PathsApiTest.java | 33 ++++----- .../api/traversers/PersonalRankApiTest.java | 15 ++-- .../api/traversers/SameNeighborsApiTest.java | 7 +- .../api/traversers/ShortestPathApiTest.java | 32 ++++++++- .../SingleSourceShortestPathApiTest.java | 29 +++++++- .../api/traversers/TemplatePathsApiTest.java | 60 +++++++++++++++- .../traversers/TraversersApiTestSuite.java | 3 +- .../WeightedShortestPathApiTest.java | 70 +++++++++++++++++++ 19 files changed, 369 insertions(+), 204 deletions(-) create mode 100644 hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/WeightedShortestPathApiTest.java diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/BaseApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/BaseApiTest.java index 8b20186590..bf4cd1b2eb 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/BaseApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/BaseApiTest.java @@ -325,9 +325,7 @@ protected static void initEdge() { + "\"inVLabel\": \"person\"," + "\"properties\": {" + " \"date\": \"2021-01-01\"," - + " \"weight\":0.5}" - + "}," - + "{" + + " \"weight\":0.5}},{" + "\"label\": \"knows\"," + "\"outV\": \"%s\"," + "\"inV\": \"%s\"," @@ -335,9 +333,7 @@ protected static void initEdge() { + "\"inVLabel\": \"person\"," + "\"properties\": {" + " \"date\": \"2021-01-01\"," - + " \"weight\":0.5}" - + "}," - + "{" + + " \"weight\":0.4}},{" + "\"label\": \"knows\"," + "\"outV\": \"%s\"," + "\"inV\": \"%s\"," @@ -345,9 +341,7 @@ protected static void initEdge() { + "\"inVLabel\": \"person\"," + "\"properties\": {" + " \"date\": \"2021-01-01\"," - + " \"weight\":0.5}" - + "}," - + "{" + + " \"weight\":0.3}},{" + "\"label\": \"created\"," + "\"outV\": \"%s\"," + "\"inV\": \"%s\"," @@ -355,9 +349,8 @@ protected static void initEdge() { + "\"inVLabel\": \"software\"," + "\"properties\": {" + " \"date\": \"2021-01-01\"," - + " \"weight\":0.5}" - + "}," - + "{" + + " \"weight\":0.2}" + + "},{" + "\"label\": \"created\"," + "\"outV\": \"%s\"," + "\"inV\": \"%s\"," @@ -365,8 +358,8 @@ protected static void initEdge() { + "\"inVLabel\": \"software\"," + "\"properties\": {" + " \"date\": \"2021-01-01\"," - + " \"weight\":0.5}" - + "}]", markoId, peterId, peterId, joshId, + + " \"weight\":0.1}}]", + markoId, peterId, peterId, joshId, joshId, vadasId, markoId, rippleId, peterId, rippleId); createAndAssert(path, body); @@ -602,10 +595,6 @@ protected static String assertResponseStatus(int status, return content; } - protected static Map parseMap(String json) { - return JsonUtil.fromJson(json, Map.class); - } - public static T assertJsonContains(String response, String key) { Map json = JsonUtil.fromJson(response, Map.class); return assertMapContains(json, key); diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/AllShortestPathsApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/AllShortestPathsApiTest.java index 129c7b3f98..db13f01663 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/AllShortestPathsApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/AllShortestPathsApiTest.java @@ -19,12 +19,15 @@ package com.baidu.hugegraph.api.traversers; +import java.util.List; import java.util.Map; +import org.junit.Assert; import org.junit.Before; import org.junit.Test; import com.baidu.hugegraph.api.BaseApiTest; +import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; public class AllShortestPathsApiTest extends BaseApiTest { @@ -45,11 +48,19 @@ public void testGet() { Map name2Ids = listAllVertexName2Ids(); String markoId = name2Ids.get("marko"); String vadasId = name2Ids.get("vadas"); + String peterId = name2Ids.get("peter"); + String joshId = name2Ids.get("josh"); Map entities = ImmutableMap.of("source", id2Json(markoId), "target", id2Json(vadasId), "max_depth", 100); - assertResponseStatus(200, client().get(path, entities)); + String respJson = assertResponseStatus(200, + client().get(path, entities)); + List paths = assertJsonContains(respJson, "paths"); + Assert.assertEquals(1, paths.size()); + List objects = assertMapContains((Map) paths.get(0), "objects"); + Assert.assertEquals(ImmutableList.of(markoId, peterId, joshId, + vadasId), objects); } } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CountApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CountApiTest.java index a14dcb5dae..8c219fb26a 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CountApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CountApiTest.java @@ -19,14 +19,13 @@ package com.baidu.hugegraph.api.traversers; -import com.baidu.hugegraph.testutil.Assert; - import javax.ws.rs.core.Response; import org.junit.Before; import org.junit.Test; import com.baidu.hugegraph.api.BaseApiTest; +import com.baidu.hugegraph.testutil.Assert; public class CountApiTest extends BaseApiTest { @@ -44,20 +43,18 @@ public void prepareSchema() { @Test public void testCount() { String markoId = listAllVertexName2Ids().get("marko"); - String reqBody = String.format("{ " - + "\"source\": \"%s\", " - + "\"steps\": [{ " - + " \"labels\": []," - + " \"degree\": 100," - + " \"skip_degree\": 100}," - + " { " - + " \"labels\": []," - + " \"degree\": 100," - + " \"skip_degree\": 100}, " - + " { " - + " \"labels\": []," - + " \"degree\": 100," - + " \"skip_degree\": 100}]}", markoId); + String reqBody = String.format("{ " + + "\"source\": \"%s\", " + + "\"steps\": [{ " + + " \"labels\": []," + + " \"degree\": 100," + + " \"skip_degree\": 100},{ " + + " \"labels\": []," + + " \"degree\": 100," + + " \"skip_degree\": 100},{ " + + " \"labels\": []," + + " \"degree\": 100," + + " \"skip_degree\": 100}]}", markoId); Response r = client().post(path, reqBody); String content = assertResponseStatus(200, r); Integer count = assertJsonContains(content, "count"); diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CustomizedCrosspointsApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CustomizedCrosspointsApiTest.java index 0a268d00fd..aec3abed75 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CustomizedCrosspointsApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CustomizedCrosspointsApiTest.java @@ -19,13 +19,12 @@ package com.baidu.hugegraph.api.traversers; -import org.junit.Assert; - import java.util.List; import java.util.Map; import javax.ws.rs.core.Response; +import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -48,18 +47,18 @@ public void testPost() { Map name2Ids = listAllVertexName2Ids(); String markoId = name2Ids.get("marko"); String rippleId = name2Ids.get("ripple"); - String reqBody = String.format("{ " - + "\"sources\":{ " - + " \"ids\":[\"%s\",\"%s\"]}, " - + "\"path_patterns\":[{ " - + " \"steps\":[{ " - + " \"direction\":\"BOTH\"," - + " \"labels\":[], " - + " \"degree\":-1}]}], " - + "\"with_path\":true, " - + "\"with_vertex\":true, " - + "\"capacity\":-1, " - + "\"limit\":-1}", markoId, rippleId); + String reqBody = String.format("{ " + + "\"sources\":{ " + + " \"ids\":[\"%s\",\"%s\"]}, " + + "\"path_patterns\":[{ " + + " \"steps\":[{ " + + " \"direction\":\"BOTH\"," + + " \"labels\":[], " + + " \"degree\":-1}]}], " + + "\"with_path\":true, " + + "\"with_vertex\":true, " + + "\"capacity\":-1, " + + "\"limit\":-1}", markoId, rippleId); Response r = client().post(path, reqBody); String respBody = assertResponseStatus(200, r); List paths = assertJsonContains(respBody, "paths"); diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesApiTest.java index 9aa5b080d6..ac2ea6e81a 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesApiTest.java @@ -19,18 +19,16 @@ package com.baidu.hugegraph.api.traversers; -import org.junit.Assert; - import java.util.List; import java.util.Map; import javax.ws.rs.core.Response; +import org.junit.Assert; import org.junit.Before; import org.junit.Test; import com.baidu.hugegraph.api.BaseApiTest; -import com.google.common.base.Strings; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMultimap; @@ -56,10 +54,8 @@ public void testList() { Map name2Ids = listAllVertexName2Ids(); final String edgeGetPath = "graphs/hugegraph/graph/edges"; String vadasId = name2Ids.get("vadas"); - Map params = ImmutableMap.of("vertex_id", - id2Json(vadasId), - "direction", - "IN"); + Map params = ImmutableMap.of("vertex_id", id2Json(vadasId), + "direction", "IN"); Response r = client().get(edgeGetPath, params); String respBody = assertResponseStatus(200, r); List edges = assertJsonContains(respBody, "edges"); @@ -68,8 +64,7 @@ public void testList() { String edgeId = assertMapContains(edges.get(0), "id"); Assert.assertNotNull(edgeId); - r = client().get(EDGE_PATH, - ImmutableMultimap.of("ids", edgeId)); + r = client().get(EDGE_PATH, ImmutableMultimap.of("ids", edgeId)); assertResponseStatus(200, r); } @@ -86,8 +81,7 @@ public void testShareAndScan() { r = client().get(SCAN_PATH, ImmutableMap.of("start", start, "end", end)); respBody = assertResponseStatus(200, r); - Map entity2 = parseMap(respBody); - Assert.assertNotNull(entity2); - Assert.assertFalse(entity2.isEmpty()); + List edges = assertJsonContains(respBody, "edges"); + Assert.assertFalse(edges.isEmpty()); } } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/FusiformSimilarityApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/FusiformSimilarityApiTest.java index 14b23ebb7d..fbff683fab 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/FusiformSimilarityApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/FusiformSimilarityApiTest.java @@ -19,8 +19,7 @@ package com.baidu.hugegraph.api.traversers; -import org.junit.Assert; - +import java.util.List; import java.util.Map; import javax.ws.rs.core.Response; @@ -45,26 +44,30 @@ public void prepareSchema() { @Test public void testPost() { - Response r = client().post(path, "{ " - + "\"sources\":{ " - + " \"ids\":[], " - + " \"label\": \"person\", " - + " \"properties\": {}}, " - + "\"label\":\"created\", " - + "\"direction\":\"OUT\", " - + "\"min_neighbors\":1, " - + "\"alpha\":1, " - + "\"min_similars\":1, " - + "\"top\":0, " - + "\"group_property\":\"city\", " - + "\"min_groups\":2, " - + "\"max_degree\": 10000, " - + "\"capacity\": -1, " - + "\"limit\": -1, " - + "\"with_intermediary\": false, " - + "\"with_vertex\":true}"); + Response r = client().post(path, "{ " + + "\"sources\":{ " + + " \"ids\":[], " + + " \"label\": \"person\", " + + " \"properties\": {}}, " + + "\"label\":\"created\", " + + "\"direction\":\"OUT\", " + + "\"min_neighbors\":1, " + + "\"alpha\":1, " + + "\"min_similars\":1, " + + "\"top\":0, " + + "\"group_property\":\"city\", " + + "\"min_groups\":2, " + + "\"max_degree\": 10000, " + + "\"capacity\": -1, " + + "\"limit\": -1, " + + "\"with_intermediary\": false, " + + "\"with_vertex\":true}"); String respBody = assertResponseStatus(200, r); - Map entity = parseMap(respBody); - Assert.assertNotNull(entity); + Map similars = assertJsonContains(respBody, "similars"); + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + String peterId = name2Ids.get("peter"); + assertMapContains(similars, markoId); + assertMapContains(similars, peterId); } } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/JaccardSimilarityApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/JaccardSimilarityApiTest.java index fa20848500..294869fa45 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/JaccardSimilarityApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/JaccardSimilarityApiTest.java @@ -65,20 +65,19 @@ public void testPost() { String rippleId = name2Ids.get("ripple"); String peterId = name2Ids.get("peter"); String jsonId = name2Ids.get("josh"); - String reqBody = String.format("{ " - + "\"vertex\": \"%s\", " - + "\"step\": { " - + " \"direction\": \"BOTH\", " - + " \"labels\": [], " - + " \"degree\": 10000, " - + " \"skip_degree\": 100000 }, " - + "\"top\": 3}", markoId); + String reqBody = String.format("{ " + + "\"vertex\": \"%s\", " + + "\"step\": { " + + " \"direction\": \"BOTH\", " + + " \"labels\": [], " + + " \"degree\": 10000, " + + " \"skip_degree\": 100000 }, " + + "\"top\": 3}", markoId); Response r = client().post(path, reqBody); String respBody = assertResponseStatus(200, r); - Map entity = parseMap(respBody); - Double rippleJaccardSimilarity = assertMapContains(entity, rippleId); - Double peterJaccardSimilarity = assertMapContains(entity, peterId); - Double jsonJaccardSimilarity = assertMapContains(entity, jsonId); + Double rippleJaccardSimilarity = assertJsonContains(respBody, rippleId); + Double peterJaccardSimilarity = assertJsonContains(respBody, peterId); + Double jsonJaccardSimilarity = assertJsonContains(respBody, jsonId); Assert.assertEquals(0.3333, rippleJaccardSimilarity.doubleValue(), 0.0001); Assert.assertEquals(0.25, peterJaccardSimilarity.doubleValue(), 0.0001); diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/KneighborApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/KneighborApiTest.java index 1e979dc5c2..aba7b4f400 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/KneighborApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/KneighborApiTest.java @@ -48,9 +48,9 @@ public void prepareSchema() { public void testGet() { Map name2Ids = listAllVertexName2Ids(); String markoId = name2Ids.get("marko"); - Response r = client().get(path, - ImmutableMap.of("source", id2Json(markoId), - "max_depth", 2)); + Response r = client().get(path, ImmutableMap.of("source", + id2Json(markoId), + "max_depth", 2)); String respBody = assertResponseStatus(200, r); List vertices = assertJsonContains(respBody, "vertices"); Assert.assertEquals(3, vertices.size()); @@ -60,27 +60,24 @@ public void testGet() { public void testPost() { Map name2Ids = listAllVertexName2Ids(); String markoId = name2Ids.get("marko"); - String reqBody = String.format("{ " - + "\"source\": \"%s\", " - + "\"step\": { " - + " \"direction\": \"BOTH\", " - + - " \"labels\": [\"knows\", " + - "\"created\"], " - + " \"properties\": { " - + " \"weight\": \"P.gt(0.1)\"}, " - + " \"degree\": 10000, " - + " \"skip_degree\": 100000}, " - + "\"max_depth\": 3, " - + "\"limit\": 10000, " - + "\"with_vertex\": true, " - + "\"with_path\": true}", markoId); + String reqBody = String.format("{ " + + "\"source\": \"%s\", " + + "\"step\": { " + + " \"direction\": \"BOTH\", " + + " \"labels\": [\"knows\", " + + " \"created\"], " + + "\"properties\": { " + + " \"weight\": \"P.gt(0.1)\"}, " + + " \"degree\": 10000, " + + " \"skip_degree\": 100000}, " + + "\"max_depth\": 3, " + + "\"limit\": 10000, " + + "\"with_vertex\": true, " + + "\"with_path\": true}", markoId); Response r = client().post(path, reqBody); String content = assertResponseStatus(200, r); - Map entity = parseMap(content); - Assert.assertNotNull(entity); - assertMapContains(entity, "kneighbor"); - assertMapContains(entity, "paths"); - assertMapContains(entity, "vertices"); + assertJsonContains(content, "kneighbor"); + assertJsonContains(content, "paths"); + assertJsonContains(content, "vertices"); } } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/KoutApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/KoutApiTest.java index 4e883b2960..b6b09ff4bb 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/KoutApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/KoutApiTest.java @@ -52,19 +52,18 @@ public void testGet() { String peterId = name2Ids.get("peter"); String joshId = name2Ids.get("josh"); String rippleId = name2Ids.get("ripple"); - // Test for nearest is true - Response r = client().get(path, - ImmutableMap.of("source", id2Json(markoId), - "max_depth", 2)); + // Test for nearest=true + Response r = client().get(path, ImmutableMap.of("source", + id2Json(markoId), + "max_depth", 2)); String respBody = assertResponseStatus(200, r); List vertices = assertJsonContains(respBody, "vertices"); Assert.assertEquals(1, vertices.size()); Assert.assertTrue(vertices.contains(joshId)); - // Test for nearest is false - r = client().get(path, - ImmutableMap.of("source", id2Json(markoId), - "max_depth", 2, - "nearest", "false")); + // Test for nearest=false + r = client().get(path, ImmutableMap.of("source", id2Json(markoId), + "max_depth", 2, + "nearest", "false")); respBody = assertResponseStatus(200, r); vertices = assertJsonContains(respBody, "vertices"); Assert.assertEquals(3, vertices.size()); @@ -77,29 +76,27 @@ public void testGet() { public void testPost() { Map name2Ids = listAllVertexName2Ids(); String markoId = name2Ids.get("marko"); - String reqBody = String.format("{ " - + "\"source\": \"%s\", " - + "\"step\": { " - + " \"direction\": \"BOTH\", " - + - " \"labels\": [\"knows\", " + - "\"created\"], " - + " \"properties\": { " - + " \"weight\": \"P.gt(0.1)\"}, " - + " \"degree\": 10000, " - + " \"skip_degree\": 100000}, " - + "\"max_depth\": 1, " - + "\"nearest\": true, " - + "\"limit\": 10000, " - + "\"with_vertex\": true, " - + "\"with_path\": true}", markoId); + String reqBody = String.format("{ " + + "\"source\": \"%s\", " + + "\"step\": { " + + " \"direction\": \"BOTH\", " + + " \"labels\": [\"knows\", " + + " \"created\"], " + + "\"properties\": { " + + " \"weight\": \"P.gt(0.1)\"}, " + + " \"degree\": 10000, " + + " \"skip_degree\": 100000}, " + + "\"max_depth\": 1, " + + "\"nearest\": true, " + + "\"limit\": 10000, " + + "\"with_vertex\": true, " + + "\"with_path\": true}", markoId); Response resp = client().post(path, reqBody); String respBody = assertResponseStatus(200, resp); - Map entity = parseMap(respBody); - assertMapContains(entity, "size"); - assertMapContains(entity, "kout"); - assertMapContains(entity, "paths"); - assertMapContains(entity, "vertices"); - Assert.assertEquals(2, entity.get("size")); + Object size = assertJsonContains(respBody, "size"); + Assert.assertEquals(2, size); + assertJsonContains(respBody, "kout"); + assertJsonContains(respBody, "paths"); + assertJsonContains(respBody, "vertices"); } } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/MultiNodeShortestPathApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/MultiNodeShortestPathApiTest.java index 511bc0e0e3..6bd69243c9 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/MultiNodeShortestPathApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/MultiNodeShortestPathApiTest.java @@ -48,21 +48,20 @@ public void testPost() { String peterId = name2Ids.get("peter"); String joshId = name2Ids.get("josh"); String vadasId = name2Ids.get("vadas"); - String reqBody = String.format("{ " - + "\"vertices\": { " - + " \"ids\": [\"%s\", \"%s\", \"%s\", " - + " \"%s\"]}, " - + "\"step\": { " - + " \"direction\": \"BOTH\", " - + " \"properties\": {}}, " - + "\"max_depth\": 10, " - + "\"capacity\": 100000000, " - + "\"with_vertex\": true}", + String reqBody = String.format("{ " + + "\"vertices\": { " + + " \"ids\": [\"%s\", \"%s\", \"%s\", " + + " \"%s\"]}, " + + "\"step\": { " + + " \"direction\": \"BOTH\", " + + " \"properties\": {}}, " + + "\"max_depth\": 10, " + + "\"capacity\": 100000000, " + + "\"with_vertex\": true}", markoId, peterId, joshId, vadasId); Response r = client().post(path, reqBody); - String respJosn = assertResponseStatus(200, r); - Map entity = parseMap(respJosn); - assertMapContains(entity, "paths"); - assertMapContains(entity, "vertices"); + String respJson = assertResponseStatus(200, r); + assertJsonContains(respJson, "paths"); + assertJsonContains(respJson, "vertices"); } } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/NeighborRankApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/NeighborRankApiTest.java index 6fe394920c..574ea47284 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/NeighborRankApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/NeighborRankApiTest.java @@ -19,13 +19,12 @@ package com.baidu.hugegraph.api.traversers; -import org.junit.Assert; - import java.util.List; import java.util.Map; import javax.ws.rs.core.Response; +import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -48,11 +47,11 @@ public void prepareSchema() { public void testNeighborRank() { Map name2Ids = listAllVertexName2Ids(); String markoId = name2Ids.get("marko"); - String reqBody = String.format("{" - + "\"source\":\"%s\"," - + "\"steps\": [{" - + " \"direction\": \"BOTH\"}]," - + "\"alpha\":%s}", markoId, 1); + String reqBody = String.format("{" + + "\"source\":\"%s\"," + + "\"steps\": [{" + + " \"direction\": \"BOTH\"}]," + + "\"alpha\":%s}", markoId, 1); Response r = client().post(path, reqBody); String respBody = assertResponseStatus(200, r); List ranks = assertJsonContains(respBody, "ranks"); diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/PathsApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/PathsApiTest.java index 71b14f2b17..c66a72a519 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/PathsApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/PathsApiTest.java @@ -55,10 +55,8 @@ public void testGet() { id2Json(vadasId), "max_depth", 3)); String respBody = assertResponseStatus(200, r); - Map entity = parseMap(respBody); - Assert.assertNotNull(entity); - assertMapContains(entity, "paths"); - List> paths = assertMapContains(entity, "paths"); + assertJsonContains(respBody, "paths"); + List> paths = assertJsonContains(respBody, "paths"); Assert.assertEquals(1, paths.size()); } @@ -67,20 +65,19 @@ public void testPost() { Map name2Ids = listAllVertexName2Ids(); String markoId = name2Ids.get("marko"); String joshId = name2Ids.get("josh"); - String reqBody = String.format("{ " - + "\"sources\": { " - + " \"ids\": [\"%s\"] " - + "}, " - + "\"targets\": { " - + " \"ids\": [\"%s\"]}, " - + "\"step\": { " - + " \"direction\": \"BOTH\", " - + " \"properties\": { " - + " \"weight\": \"P.gt(0.01)\"}}, " - + "\"max_depth\": 10, " - + "\"capacity\": 100000000, " - + "\"limit\": 10000000, " - + "\"with_vertex\": false}", + String reqBody = String.format("{ " + + "\"sources\": { " + + " \"ids\": [\"%s\"]}, " + + "\"targets\": { " + + " \"ids\": [\"%s\"]}, " + + "\"step\": { " + + " \"direction\": \"BOTH\", " + + " \"properties\": { " + + " \"weight\": \"P.gt(0.01)\"}}, " + + "\"max_depth\": 10, " + + "\"capacity\": 100000000, " + + "\"limit\": 10000000, " + + "\"with_vertex\": false}", markoId, joshId); Response r = client().post(path, reqBody); String respBody = assertResponseStatus(200, r); diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/PersonalRankApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/PersonalRankApiTest.java index 3807e9401e..1bd78731a6 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/PersonalRankApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/PersonalRankApiTest.java @@ -23,7 +23,6 @@ import javax.ws.rs.core.Response; -import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -46,15 +45,15 @@ public void prepareSchema() { public void testPersonalRank() { Map name2Ids = listAllVertexName2Ids(); String markoId = name2Ids.get("marko"); - String reqBody = String.format("{" - + "\"source\":\"%s\"," - + "\"max_depth\":\"%s\"," - + "\"label\":\"%s\"," - + "\"alpha\":\"%s\"}", + String peterId = name2Ids.get("peter"); + String reqBody = String.format("{" + + "\"source\":\"%s\"," + + "\"max_depth\":\"%s\"," + + "\"label\":\"%s\"," + + "\"alpha\":\"%s\"}", markoId, 3, "created", 1); Response r = client().post(path, reqBody); String respBody = assertResponseStatus(200, r); - Map entity = parseMap(respBody); - Assert.assertNotNull(entity); + assertJsonContains(respBody, peterId); } } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/SameNeighborsApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/SameNeighborsApiTest.java index 80cc4f5ac9..69f47bcc4d 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/SameNeighborsApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/SameNeighborsApiTest.java @@ -50,9 +50,10 @@ public void testGet() { String markoId = name2Ids.get("marko"); String joshId = name2Ids.get("josh"); String peterId = name2Ids.get("peter"); - Response r = client().get(path, - ImmutableMap.of("vertex", id2Json(markoId), - "other", id2Json(joshId))); + Response r = client().get(path, ImmutableMap.of("vertex", + id2Json(markoId), + "other", + id2Json(joshId))); String respBody = assertResponseStatus(200, r); List sameNeighbors = assertJsonContains(respBody, "same_neighbors"); diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/ShortestPathApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/ShortestPathApiTest.java index 07090fa0f7..0a5f12d932 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/ShortestPathApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/ShortestPathApiTest.java @@ -19,14 +19,44 @@ package com.baidu.hugegraph.api.traversers; +import java.util.List; +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Assert; +import org.junit.Before; import org.junit.Test; import com.baidu.hugegraph.api.BaseApiTest; +import com.google.common.collect.ImmutableMap; public class ShortestPathApiTest extends BaseApiTest { + final static String path = "graphs/hugegraph/traversers/shortestpath"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + @Test public void testGet() { - // TODO + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + String joshId = name2Ids.get("vadas"); + Response r = client().get(path, ImmutableMap.of("source", + id2Json(markoId), + "target", + id2Json(joshId), + "max_depth", + 100)); + String respBody = assertResponseStatus(200, r); + List paths = assertJsonContains(respBody, "path"); + Assert.assertFalse(paths.isEmpty()); } } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/SingleSourceShortestPathApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/SingleSourceShortestPathApiTest.java index 08964f69d7..7f160ec282 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/SingleSourceShortestPathApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/SingleSourceShortestPathApiTest.java @@ -19,14 +19,41 @@ package com.baidu.hugegraph.api.traversers; +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Assert; +import org.junit.Before; import org.junit.Test; import com.baidu.hugegraph.api.BaseApiTest; +import com.google.common.collect.ImmutableMap; public class SingleSourceShortestPathApiTest extends BaseApiTest { + final static String path = "graphs/hugegraph/traversers/" + + "singlesourceshortestpath"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + @Test public void testGet() { - // TODO + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + Response r = client().get(path, ImmutableMap.of("source", + id2Json(markoId), + "with_vertex", + true)); + String respBody = assertResponseStatus(200, r); + Map paths = assertJsonContains(respBody,"paths"); + Assert.assertFalse(paths.isEmpty()); } } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/TemplatePathsApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/TemplatePathsApiTest.java index 8abb318d69..a012e1d62b 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/TemplatePathsApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/TemplatePathsApiTest.java @@ -19,14 +19,70 @@ package com.baidu.hugegraph.api.traversers; +import java.util.List; +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Assert; +import org.junit.Before; import org.junit.Test; import com.baidu.hugegraph.api.BaseApiTest; +import com.google.common.collect.ImmutableList; public class TemplatePathsApiTest extends BaseApiTest { + final static String path = "graphs/hugegraph/traversers/templatepaths"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + @Test - public void testGet() { - // TODO + public void testPost() { + Map name2Ids = listAllVertexName2Ids(); + String vadasId = name2Ids.get("vadas"); + String joshId = name2Ids.get("josh"); + String peterId = name2Ids.get("peter"); + String rippleId = name2Ids.get("ripple"); + String template = "{" + + "\"sources\": {" + + " \"ids\": []," + + " \"label\": \"person\"," + + " \"properties\": {" + + " \"name\": \"vadas\"}}," + + "\"targets\": {" + + " \"ids\": []," + + " \"label\": \"software\"," + + " \"properties\": {" + + " \"name\": \"ripple\"}}," + + "\"steps\": [{" + + " \"direction\": \"IN\"," + + " \"labels\": [\"knows\"]," + + " \"properties\": {}," + + " \"max_degree\": 10000," + + " \"max_times\": 2," + + " \"skip_degree\": 100000},{" + + " \"direction\": \"OUT\"," + + " \"labels\": [\"created\"]," + + " \"properties\": {}," + + " \"max_degree\": 10000," + + " \"skip_degree\": 100000}]," + + " \"capacity\": 10000," + + " \"limit\": 10," + + " \"with_vertex\": true}"; + Response r = client().post(path, template); + String resp = assertResponseStatus(200, r); + List objects = assertJsonContains(resp, "paths"); + Assert.assertEquals(1, objects.size()); + List paths = assertMapContains(objects.get(0), "objects"); + Assert.assertEquals(ImmutableList.of(vadasId, joshId, peterId, rippleId), + paths); } } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/TraversersApiTestSuite.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/TraversersApiTestSuite.java index a671866d00..5ca1bef647 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/TraversersApiTestSuite.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/TraversersApiTestSuite.java @@ -42,7 +42,8 @@ SameNeighborsApiTest.class, ShortestPathApiTest.class, SingleSourceShortestPathApiTest.class, - TemplatePathsApiTest.class + TemplatePathsApiTest.class, + WeightedShortestPathApiTest.class }) public class TraversersApiTestSuite { } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/WeightedShortestPathApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/WeightedShortestPathApiTest.java new file mode 100644 index 0000000000..f511d691cd --- /dev/null +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/WeightedShortestPathApiTest.java @@ -0,0 +1,70 @@ +/* + * Copyright 2017 HugeGraph Authors + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +package com.baidu.hugegraph.api.traversers; + +import java.util.List; +import java.util.Map; + +import javax.ws.rs.core.Response; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import com.baidu.hugegraph.api.BaseApiTest; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; + +public class WeightedShortestPathApiTest extends BaseApiTest { + + final static String path = "graphs/hugegraph/traversers/" + + "weightedshortestpath"; + + @Before + public void prepareSchema() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void testGet() { + Map name2Ids = listAllVertexName2Ids(); + String markoId = name2Ids.get("marko"); + String joshId = name2Ids.get("josh"); + String peterId = name2Ids.get("peter"); + String rippleId = name2Ids.get("ripple"); + Response r = client().get(path, ImmutableMap.of("source", + id2Json(markoId), + "target", + id2Json(joshId), + "weight", "weight", + "with_vertex", true)); + String respBody = assertResponseStatus(200, r); + Map paths = assertJsonContains(respBody,"path"); + Assert.assertFalse(paths.isEmpty()); + List expectedVertices = ImmutableList.of(markoId, rippleId, + peterId, joshId); + List vertices = assertMapContains(paths, "vertices"); + Assert.assertEquals(expectedVertices, vertices); + } +} From 3203937166c88f7f98326300cd62ea274058218c Mon Sep 17 00:00:00 2001 From: zyxxoo <1318247699@qq.com> Date: Thu, 15 Jul 2021 19:05:29 +0800 Subject: [PATCH 10/11] feat: improve test result verify --- hugegraph-dist/pom.xml | 6 ---- hugegraph-hbase/pom.xml | 6 ---- .../com/baidu/hugegraph/api/BaseApiTest.java | 2 ++ .../traversers/AllShortestPathsApiTest.java | 8 ++--- .../api/traversers/CountApiTest.java | 20 ++++++------- .../api/traversers/CrosspointsApiTest.java | 11 ++++--- .../CustomizedCrosspointsApiTest.java | 6 ++-- .../api/traversers/EdgesApiTest.java | 29 +++++++++++-------- .../traversers/FusiformSimilarityApiTest.java | 8 +++-- .../traversers/JaccardSimilarityApiTest.java | 10 +++---- .../api/traversers/KneighborApiTest.java | 13 ++++++--- .../hugegraph/api/traversers/KoutApiTest.java | 20 ++++++------- .../MultiNodeShortestPathApiTest.java | 10 ++++--- .../api/traversers/NeighborRankApiTest.java | 6 ++-- .../api/traversers/PathsApiTest.java | 14 ++++----- .../api/traversers/PersonalRankApiTest.java | 6 ++-- .../hugegraph/api/traversers/RaysApiTest.java | 6 ++-- .../api/traversers/RingsApiTest.java | 8 ++--- .../api/traversers/SameNeighborsApiTest.java | 6 ++-- .../api/traversers/ShortestPathApiTest.java | 12 ++++---- .../SingleSourceShortestPathApiTest.java | 9 +++--- .../api/traversers/TemplatePathsApiTest.java | 6 ++-- .../WeightedShortestPathApiTest.java | 7 ++--- 23 files changed, 116 insertions(+), 113 deletions(-) diff --git a/hugegraph-dist/pom.xml b/hugegraph-dist/pom.xml index 198eee1b81..60e770b3fa 100644 --- a/hugegraph-dist/pom.xml +++ b/hugegraph-dist/pom.xml @@ -23,12 +23,6 @@ com.baidu.hugegraph hugegraph-core ${project.version} - - - com.google.protobuf - protobuf-java - - com.baidu.hugegraph diff --git a/hugegraph-hbase/pom.xml b/hugegraph-hbase/pom.xml index 25562ed205..9fd639474d 100644 --- a/hugegraph-hbase/pom.xml +++ b/hugegraph-hbase/pom.xml @@ -16,12 +16,6 @@ com.baidu.hugegraph hugegraph-core ${project.version} - - - com.google.protobuf - protobuf-java - - org.apache.hbase diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/BaseApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/BaseApiTest.java index bf4cd1b2eb..68e328237a 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/BaseApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/BaseApiTest.java @@ -69,6 +69,8 @@ public class BaseApiTest { private static final String GRAPH_EDGE = "/graph/edges"; private static final String BATCH = "/batch"; + protected static final String TRAVERSERS_API = URL_PREFIX + "/traversers"; + private static RestClient client; private static final ObjectMapper mapper = new ObjectMapper(); diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/AllShortestPathsApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/AllShortestPathsApiTest.java index db13f01663..dcbdf3d523 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/AllShortestPathsApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/AllShortestPathsApiTest.java @@ -32,7 +32,7 @@ public class AllShortestPathsApiTest extends BaseApiTest { - public static String path = "graphs/hugegraph/traversers/allshortestpaths"; + public static String path = TRAVERSERS_API + "/allshortestpaths"; @Before public void prepareSchema() { @@ -55,9 +55,9 @@ public void testGet() { "target", id2Json(vadasId), "max_depth", 100); - String respJson = assertResponseStatus(200, - client().get(path, entities)); - List paths = assertJsonContains(respJson, "paths"); + String content = assertResponseStatus(200, + client().get(path, entities)); + List paths = assertJsonContains(content, "paths"); Assert.assertEquals(1, paths.size()); List objects = assertMapContains((Map) paths.get(0), "objects"); Assert.assertEquals(ImmutableList.of(markoId, peterId, joshId, diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CountApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CountApiTest.java index 8c219fb26a..26e83f2e01 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CountApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CountApiTest.java @@ -29,7 +29,7 @@ public class CountApiTest extends BaseApiTest { - public static String path = "graphs/hugegraph/traversers/count"; + public static String path = TRAVERSERS_API + "/count"; @Before public void prepareSchema() { @@ -46,15 +46,15 @@ public void testCount() { String reqBody = String.format("{ " + "\"source\": \"%s\", " + "\"steps\": [{ " + - " \"labels\": []," + - " \"degree\": 100," + - " \"skip_degree\": 100},{ " + - " \"labels\": []," + - " \"degree\": 100," + - " \"skip_degree\": 100},{ " + - " \"labels\": []," + - " \"degree\": 100," + - " \"skip_degree\": 100}]}", markoId); + " \"labels\": []," + + " \"degree\": 100," + + " \"skip_degree\": 100},{ " + + " \"labels\": []," + + " \"degree\": 100," + + " \"skip_degree\": 100},{ " + + " \"labels\": []," + + " \"degree\": 100," + + " \"skip_degree\": 100}]}", markoId); Response r = client().post(path, reqBody); String content = assertResponseStatus(200, r); Integer count = assertJsonContains(content, "count"); diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CrosspointsApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CrosspointsApiTest.java index 6adba86c81..e29bd46ddc 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CrosspointsApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CrosspointsApiTest.java @@ -19,8 +19,6 @@ package com.baidu.hugegraph.api.traversers; -import com.baidu.hugegraph.testutil.Assert; - import java.util.List; import java.util.Map; @@ -30,11 +28,12 @@ import org.junit.Test; import com.baidu.hugegraph.api.BaseApiTest; +import com.baidu.hugegraph.testutil.Assert; import com.google.common.collect.ImmutableMap; public class CrosspointsApiTest extends BaseApiTest { - public static String path = "graphs/hugegraph/traversers/crosspoints"; + public static String path = TRAVERSERS_API + "/crosspoints"; @Before public void prepareSchema() { @@ -56,9 +55,9 @@ public void testGet() { id2Json(vadasId), "max_depth", 10); Response r = client().get(path, params); - String respBody = assertResponseStatus(200, r); - List> crosspoints = assertJsonContains(respBody, - "crosspoints"); + String content = assertResponseStatus(200, r); + List> crosspoints = assertJsonContains( + content, "crosspoints"); Assert.assertEquals(2, crosspoints.size()); } } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CustomizedCrosspointsApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CustomizedCrosspointsApiTest.java index aec3abed75..27bd4de139 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CustomizedCrosspointsApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/CustomizedCrosspointsApiTest.java @@ -32,7 +32,7 @@ public class CustomizedCrosspointsApiTest extends BaseApiTest { - public static String path = "graphs/hugegraph/traversers/customizedcrosspoints"; + public static String path = TRAVERSERS_API + "/customizedcrosspoints"; @Before public void prepareSchema() { @@ -60,8 +60,8 @@ public void testPost() { "\"capacity\":-1, " + "\"limit\":-1}", markoId, rippleId); Response r = client().post(path, reqBody); - String respBody = assertResponseStatus(200, r); - List paths = assertJsonContains(respBody, "paths"); + String content = assertResponseStatus(200, r); + List paths = assertJsonContains(content, "paths"); Assert.assertEquals(2, paths.size()); } } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesApiTest.java index ac2ea6e81a..5572306487 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/EdgesApiTest.java @@ -35,10 +35,9 @@ public class EdgesApiTest extends BaseApiTest { - final static String EDGE_PATH = "graphs/hugegraph/traversers/edges"; - final static String SHARES_PATH = "graphs/hugegraph/traversers" + - "/edges/shards"; - final static String SCAN_PATH = "graphs/hugegraph/traversers/edges/scan"; + final static String EDGE_PATH = TRAVERSERS_API + "/edges"; + final static String SHARES_PATH = TRAVERSERS_API + "/edges/shards"; + final static String SCAN_PATH = TRAVERSERS_API + "/edges/scan"; @Before public void prepareSchema() { @@ -57,31 +56,37 @@ public void testList() { Map params = ImmutableMap.of("vertex_id", id2Json(vadasId), "direction", "IN"); Response r = client().get(edgeGetPath, params); - String respBody = assertResponseStatus(200, r); - List edges = assertJsonContains(respBody, "edges"); + String content = assertResponseStatus(200, r); + List edges = assertJsonContains(content, "edges"); Assert.assertNotNull(edges); Assert.assertFalse(edges.isEmpty()); String edgeId = assertMapContains(edges.get(0), "id"); Assert.assertNotNull(edgeId); r = client().get(EDGE_PATH, ImmutableMultimap.of("ids", edgeId)); - assertResponseStatus(200, r); + content = assertResponseStatus(200, r); + List edges2 = assertJsonContains(content, "edges"); + Assert.assertEquals(1, edges.size()); + Assert.assertEquals(edges.get(0), edges2.get(0)); } @Test public void testShareAndScan() { Response r = client().get(SHARES_PATH, ImmutableMap.of("split_size", 1048576)); - String respBody = assertResponseStatus(200, r); - List shards = assertJsonContains(respBody, "shards"); + String content = assertResponseStatus(200, r); + List shards = assertJsonContains(content, "shards"); Assert.assertNotNull(shards); Assert.assertFalse(shards.isEmpty()); String start = assertMapContains(shards.get(0), "start"); String end = assertMapContains(shards.get(0), "end"); r = client().get(SCAN_PATH, ImmutableMap.of("start", start, "end", end)); - respBody = assertResponseStatus(200, r); - List edges = assertJsonContains(respBody, "edges"); - Assert.assertFalse(edges.isEmpty()); + content = assertResponseStatus(200, r); + /* + * Different storage backends return differently, so the return is + * not checked + */ + assertJsonContains(content, "edges"); } } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/FusiformSimilarityApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/FusiformSimilarityApiTest.java index fbff683fab..a29f991a19 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/FusiformSimilarityApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/FusiformSimilarityApiTest.java @@ -24,6 +24,7 @@ import javax.ws.rs.core.Response; +import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -31,7 +32,7 @@ public class FusiformSimilarityApiTest extends BaseApiTest { - final static String path = "graphs/hugegraph/traversers/fusiformsimilarity"; + final static String path = TRAVERSERS_API + "/fusiformsimilarity"; @Before public void prepareSchema() { @@ -62,11 +63,12 @@ public void testPost() { "\"limit\": -1, " + "\"with_intermediary\": false, " + "\"with_vertex\":true}"); - String respBody = assertResponseStatus(200, r); - Map similars = assertJsonContains(respBody, "similars"); + String content = assertResponseStatus(200, r); + Map similars = assertJsonContains(content, "similars"); Map name2Ids = listAllVertexName2Ids(); String markoId = name2Ids.get("marko"); String peterId = name2Ids.get("peter"); + Assert.assertEquals(2, similars.size()); assertMapContains(similars, markoId); assertMapContains(similars, peterId); } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/JaccardSimilarityApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/JaccardSimilarityApiTest.java index 294869fa45..e69f3ad738 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/JaccardSimilarityApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/JaccardSimilarityApiTest.java @@ -32,7 +32,7 @@ public class JaccardSimilarityApiTest extends BaseApiTest { - final static String path = "graphs/hugegraph/traversers/jaccardsimilarity"; + final static String path = TRAVERSERS_API + "/jaccardsimilarity"; @Before public void prepareSchema() { @@ -74,10 +74,10 @@ public void testPost() { " \"skip_degree\": 100000 }, " + "\"top\": 3}", markoId); Response r = client().post(path, reqBody); - String respBody = assertResponseStatus(200, r); - Double rippleJaccardSimilarity = assertJsonContains(respBody, rippleId); - Double peterJaccardSimilarity = assertJsonContains(respBody, peterId); - Double jsonJaccardSimilarity = assertJsonContains(respBody, jsonId); + String content = assertResponseStatus(200, r); + Double rippleJaccardSimilarity = assertJsonContains(content, rippleId); + Double peterJaccardSimilarity = assertJsonContains(content, peterId); + Double jsonJaccardSimilarity = assertJsonContains(content, jsonId); Assert.assertEquals(0.3333, rippleJaccardSimilarity.doubleValue(), 0.0001); Assert.assertEquals(0.25, peterJaccardSimilarity.doubleValue(), 0.0001); diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/KneighborApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/KneighborApiTest.java index aba7b4f400..158d7c37ae 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/KneighborApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/KneighborApiTest.java @@ -30,10 +30,11 @@ import com.baidu.hugegraph.api.BaseApiTest; import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; public class KneighborApiTest extends BaseApiTest { - final static String path = "graphs/hugegraph/traversers/kneighbor"; + final static String path = TRAVERSERS_API + "/kneighbor"; @Before public void prepareSchema() { @@ -48,12 +49,16 @@ public void prepareSchema() { public void testGet() { Map name2Ids = listAllVertexName2Ids(); String markoId = name2Ids.get("marko"); + String rippleId = name2Ids.get("ripple"); + String peterId = name2Ids.get("peter"); + String joshId = name2Ids.get("josh"); Response r = client().get(path, ImmutableMap.of("source", id2Json(markoId), "max_depth", 2)); - String respBody = assertResponseStatus(200, r); - List vertices = assertJsonContains(respBody, "vertices"); - Assert.assertEquals(3, vertices.size()); + String content = assertResponseStatus(200, r); + List vertices = assertJsonContains(content, "vertices"); + Assert.assertEquals(ImmutableSet.of(rippleId, joshId, peterId), + ImmutableSet.copyOf(vertices)); } @Test diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/KoutApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/KoutApiTest.java index b6b09ff4bb..00a43ba44d 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/KoutApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/KoutApiTest.java @@ -34,7 +34,7 @@ public class KoutApiTest extends BaseApiTest { - final static String path = "graphs/hugegraph/traversers/kout"; + final static String path = TRAVERSERS_API + "/kout"; @Before public void prepareSchema() { @@ -56,16 +56,16 @@ public void testGet() { Response r = client().get(path, ImmutableMap.of("source", id2Json(markoId), "max_depth", 2)); - String respBody = assertResponseStatus(200, r); - List vertices = assertJsonContains(respBody, "vertices"); + String content = assertResponseStatus(200, r); + List vertices = assertJsonContains(content, "vertices"); Assert.assertEquals(1, vertices.size()); Assert.assertTrue(vertices.contains(joshId)); // Test for nearest=false r = client().get(path, ImmutableMap.of("source", id2Json(markoId), "max_depth", 2, "nearest", "false")); - respBody = assertResponseStatus(200, r); - vertices = assertJsonContains(respBody, "vertices"); + content = assertResponseStatus(200, r); + vertices = assertJsonContains(content, "vertices"); Assert.assertEquals(3, vertices.size()); Assert.assertTrue(vertices.containsAll(ImmutableList.of(peterId, rippleId, @@ -92,11 +92,11 @@ public void testPost() { "\"with_vertex\": true, " + "\"with_path\": true}", markoId); Response resp = client().post(path, reqBody); - String respBody = assertResponseStatus(200, resp); - Object size = assertJsonContains(respBody, "size"); + String content = assertResponseStatus(200, resp); + Object size = assertJsonContains(content, "size"); Assert.assertEquals(2, size); - assertJsonContains(respBody, "kout"); - assertJsonContains(respBody, "paths"); - assertJsonContains(respBody, "vertices"); + assertJsonContains(content, "kout"); + assertJsonContains(content, "paths"); + assertJsonContains(content, "vertices"); } } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/MultiNodeShortestPathApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/MultiNodeShortestPathApiTest.java index 6bd69243c9..4a4342b024 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/MultiNodeShortestPathApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/MultiNodeShortestPathApiTest.java @@ -19,10 +19,12 @@ package com.baidu.hugegraph.api.traversers; +import java.util.List; import java.util.Map; import javax.ws.rs.core.Response; +import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -30,7 +32,7 @@ public class MultiNodeShortestPathApiTest extends BaseApiTest { - final String path = "graphs/hugegraph/traversers/multinodeshortestpath"; + final String path = TRAVERSERS_API + "/multinodeshortestpath"; @Before public void prepareSchema() { @@ -60,8 +62,8 @@ public void testPost() { "\"with_vertex\": true}", markoId, peterId, joshId, vadasId); Response r = client().post(path, reqBody); - String respJson = assertResponseStatus(200, r); - assertJsonContains(respJson, "paths"); - assertJsonContains(respJson, "vertices"); + String content = assertResponseStatus(200, r); + List paths = assertJsonContains(content, "paths"); + Assert.assertEquals(6, paths.size()); } } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/NeighborRankApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/NeighborRankApiTest.java index 574ea47284..a803dfd041 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/NeighborRankApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/NeighborRankApiTest.java @@ -32,7 +32,7 @@ public class NeighborRankApiTest extends BaseApiTest { - final static String path = "graphs/hugegraph/traversers/neighborrank"; + final static String path = TRAVERSERS_API + "/neighborrank"; @Before public void prepareSchema() { @@ -53,8 +53,8 @@ public void testNeighborRank() { " \"direction\": \"BOTH\"}]," + "\"alpha\":%s}", markoId, 1); Response r = client().post(path, reqBody); - String respBody = assertResponseStatus(200, r); - List ranks = assertJsonContains(respBody, "ranks"); + String content = assertResponseStatus(200, r); + List ranks = assertJsonContains(content, "ranks"); Assert.assertEquals(2, ranks.size()); } } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/PathsApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/PathsApiTest.java index c66a72a519..a9181d875d 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/PathsApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/PathsApiTest.java @@ -33,7 +33,7 @@ public class PathsApiTest extends BaseApiTest { - final static String path = "graphs/hugegraph/traversers/paths"; + final static String path = TRAVERSERS_API + "/paths"; @Before public void prepareSchema() { @@ -54,9 +54,9 @@ public void testGet() { "target", id2Json(vadasId), "max_depth", 3)); - String respBody = assertResponseStatus(200, r); - assertJsonContains(respBody, "paths"); - List> paths = assertJsonContains(respBody, "paths"); + String content = assertResponseStatus(200, r); + assertJsonContains(content, "paths"); + List> paths = assertJsonContains(content, "paths"); Assert.assertEquals(1, paths.size()); } @@ -80,8 +80,8 @@ public void testPost() { "\"with_vertex\": false}", markoId, joshId); Response r = client().post(path, reqBody); - String respBody = assertResponseStatus(200, r); - List> paths = assertJsonContains(respBody, "paths"); - Assert.assertFalse(paths.isEmpty()); + String content = assertResponseStatus(200, r); + List> paths = assertJsonContains(content, "paths"); + Assert.assertEquals(2, paths.size()); } } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/PersonalRankApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/PersonalRankApiTest.java index 1bd78731a6..3d81f64d8c 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/PersonalRankApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/PersonalRankApiTest.java @@ -30,7 +30,7 @@ public class PersonalRankApiTest extends BaseApiTest { - final static String path = "graphs/hugegraph/traversers/personalrank"; + final static String path = TRAVERSERS_API + "/personalrank"; @Before public void prepareSchema() { @@ -53,7 +53,7 @@ public void testPersonalRank() { "\"alpha\":\"%s\"}", markoId, 3, "created", 1); Response r = client().post(path, reqBody); - String respBody = assertResponseStatus(200, r); - assertJsonContains(respBody, peterId); + String content = assertResponseStatus(200, r); + assertJsonContains(content, peterId); } } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/RaysApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/RaysApiTest.java index 32d9bc70b0..bd2facd79d 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/RaysApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/RaysApiTest.java @@ -33,7 +33,7 @@ public class RaysApiTest extends BaseApiTest { - final static String path = "graphs/hugegraph/traversers/rays"; + final static String path = TRAVERSERS_API + "/rays"; @Before public void prepareSchema() { @@ -52,8 +52,8 @@ public void testGet() { Response r = client().get(path, ImmutableMap.of("source", id2Json(markoId), "max_depth", 10)); - String respBody = assertResponseStatus(200, r); - List>> rays = assertJsonContains(respBody, + String content = assertResponseStatus(200, r); + List>> rays = assertJsonContains(content, "rays"); Assert.assertNotNull(rays); Assert.assertEquals(2, rays.size()); diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/RingsApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/RingsApiTest.java index 3a441f3902..468e1f0287 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/RingsApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/RingsApiTest.java @@ -33,7 +33,7 @@ public class RingsApiTest extends BaseApiTest { - final static String path = "graphs/hugegraph/traversers/rings"; + final static String path = TRAVERSERS_API + "/rings"; @Before public void prepareSchema() { @@ -52,9 +52,9 @@ public void testGet() { id2Json(markoId), "max_depth", 10); Response r = client().get(path, params); - String respJson = assertResponseStatus(200, r); - List>> rings = assertJsonContains(respJson, + String content = assertResponseStatus(200, r); + List>> rings = assertJsonContains(content, "rings"); - Assert.assertFalse(rings.isEmpty()); + Assert.assertEquals(1, rings.size()); } } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/SameNeighborsApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/SameNeighborsApiTest.java index 69f47bcc4d..8b0c8a9dd5 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/SameNeighborsApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/SameNeighborsApiTest.java @@ -33,7 +33,7 @@ public class SameNeighborsApiTest extends BaseApiTest { - final static String path = "graphs/hugegraph/traversers/sameneighbors"; + final static String path = TRAVERSERS_API + "/sameneighbors"; @Before public void prepareSchema() { @@ -54,8 +54,8 @@ public void testGet() { id2Json(markoId), "other", id2Json(joshId))); - String respBody = assertResponseStatus(200, r); - List sameNeighbors = assertJsonContains(respBody, + String content = assertResponseStatus(200, r); + List sameNeighbors = assertJsonContains(content, "same_neighbors"); Assert.assertFalse(sameNeighbors.isEmpty()); Assert.assertTrue(sameNeighbors.contains(peterId)); diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/ShortestPathApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/ShortestPathApiTest.java index 0a5f12d932..e5d783dadf 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/ShortestPathApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/ShortestPathApiTest.java @@ -29,11 +29,12 @@ import org.junit.Test; import com.baidu.hugegraph.api.BaseApiTest; +import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; public class ShortestPathApiTest extends BaseApiTest { - final static String path = "graphs/hugegraph/traversers/shortestpath"; + final static String path = TRAVERSERS_API + "/shortestpath"; @Before public void prepareSchema() { @@ -48,15 +49,16 @@ public void prepareSchema() { public void testGet() { Map name2Ids = listAllVertexName2Ids(); String markoId = name2Ids.get("marko"); - String joshId = name2Ids.get("vadas"); + String joshId = name2Ids.get("josh"); + String peterId = name2Ids.get("peter"); Response r = client().get(path, ImmutableMap.of("source", id2Json(markoId), "target", id2Json(joshId), "max_depth", 100)); - String respBody = assertResponseStatus(200, r); - List paths = assertJsonContains(respBody, "path"); - Assert.assertFalse(paths.isEmpty()); + String content = assertResponseStatus(200, r); + List paths = assertJsonContains(content, "path"); + Assert.assertEquals(ImmutableList.of(markoId, peterId, joshId), paths); } } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/SingleSourceShortestPathApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/SingleSourceShortestPathApiTest.java index 7f160ec282..a5864632f7 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/SingleSourceShortestPathApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/SingleSourceShortestPathApiTest.java @@ -32,8 +32,7 @@ public class SingleSourceShortestPathApiTest extends BaseApiTest { - final static String path = "graphs/hugegraph/traversers/" + - "singlesourceshortestpath"; + final static String path = TRAVERSERS_API + "/singlesourceshortestpath"; @Before public void prepareSchema() { @@ -52,8 +51,8 @@ public void testGet() { id2Json(markoId), "with_vertex", true)); - String respBody = assertResponseStatus(200, r); - Map paths = assertJsonContains(respBody,"paths"); - Assert.assertFalse(paths.isEmpty()); + String content = assertResponseStatus(200, r); + Map paths = assertJsonContains(content, "paths"); + Assert.assertEquals(4, paths.size()); } } diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/TemplatePathsApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/TemplatePathsApiTest.java index a012e1d62b..af4c6609c1 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/TemplatePathsApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/TemplatePathsApiTest.java @@ -33,7 +33,7 @@ public class TemplatePathsApiTest extends BaseApiTest { - final static String path = "graphs/hugegraph/traversers/templatepaths"; + final static String path = TRAVERSERS_API + "/templatepaths"; @Before public void prepareSchema() { @@ -78,8 +78,8 @@ public void testPost() { " \"limit\": 10," + " \"with_vertex\": true}"; Response r = client().post(path, template); - String resp = assertResponseStatus(200, r); - List objects = assertJsonContains(resp, "paths"); + String content = assertResponseStatus(200, r); + List objects = assertJsonContains(content, "paths"); Assert.assertEquals(1, objects.size()); List paths = assertMapContains(objects.get(0), "objects"); Assert.assertEquals(ImmutableList.of(vadasId, joshId, peterId, rippleId), diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/WeightedShortestPathApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/WeightedShortestPathApiTest.java index f511d691cd..34893a6b1c 100644 --- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/WeightedShortestPathApiTest.java +++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/traversers/WeightedShortestPathApiTest.java @@ -34,8 +34,7 @@ public class WeightedShortestPathApiTest extends BaseApiTest { - final static String path = "graphs/hugegraph/traversers/" + - "weightedshortestpath"; + final static String path = TRAVERSERS_API + "/weightedshortestpath"; @Before public void prepareSchema() { @@ -59,8 +58,8 @@ public void testGet() { id2Json(joshId), "weight", "weight", "with_vertex", true)); - String respBody = assertResponseStatus(200, r); - Map paths = assertJsonContains(respBody,"path"); + String content = assertResponseStatus(200, r); + Map paths = assertJsonContains(content, "path"); Assert.assertFalse(paths.isEmpty()); List expectedVertices = ImmutableList.of(markoId, rippleId, peterId, joshId); From 228953e37c91905cfc7a8ec66d6eb5568618876e Mon Sep 17 00:00:00 2001 From: zyxxoo <1318247699@qq.com> Date: Mon, 2 Aug 2021 18:03:34 +0800 Subject: [PATCH 11/11] feat: add shade hugegraph-endpoint --- hugegraph-hbase/pom.xml | 86 +---------------------------------------- 1 file changed, 2 insertions(+), 84 deletions(-) diff --git a/hugegraph-hbase/pom.xml b/hugegraph-hbase/pom.xml index 9fd639474d..a68c0cbf80 100644 --- a/hugegraph-hbase/pom.xml +++ b/hugegraph-hbase/pom.xml @@ -18,91 +18,9 @@ ${project.version} - org.apache.hbase - hbase-endpoint + com.baidu.hugegraph + hbase-shaded-endpoint 2.0.6 - - - org.apache.hbase - hbase-server - - - org.apache.hbase - hbase-hadoop2-compat - - - org.apache.hadoop - hadoop-hdfs - - - org.apache.hadoop - hadoop-yarn-api - - - org.apache.hadoop - hadoop-client - - - org.apache.hadoop - hadoop-mapreduce-client-core - - - org.apache.hadoop - hadoop-mapreduce-client-jobclient - - - org.apache.hadoop - hadoop-client - - - com.sun.jersey - jersey-core - - - com.sun.jersey - jersey-server - - - com.sun.jersey - jersey-json - - - com.sun.jersey - jersey-client - - - com.sun.jersey.contribs - jersey-guice - - - javax.servlet - servlet-api - - - javax.servlet.jsp - jsp-api - - - com.fasterxml.jackson.core - jackson-databind - - - org.slf4j - slf4j-api - - - org.slf4j - slf4j-log4j12 - - - log4j - log4j - - - commons-logging - commons-logging - -