From 2c1c443b3e68fafab07703eaf03116ca5fe08962 Mon Sep 17 00:00:00 2001 From: lexluo09 <39718951+lexluo09@users.noreply.github.com> Date: Wed, 31 Jan 2024 14:28:40 +0800 Subject: [PATCH] [improvement][Headless] Remove headless build.xml and add tag query testing. (#706) --- launchers/headless/pom.xml | 2 +- launchers/headless/src/main/build/build.xml | 39 ------------------- .../tencent/supersonic/headless/BaseTest.java | 8 ++-- .../supersonic/headless/ExplainTest.java | 1 + .../supersonic/headless/QueryBySqlTest.java | 15 ++++++- .../headless/QueryByStructTest.java | 19 ++++++++- 6 files changed, 39 insertions(+), 45 deletions(-) delete mode 100644 launchers/headless/src/main/build/build.xml diff --git a/launchers/headless/pom.xml b/launchers/headless/pom.xml index 0b3128316..494184c17 100644 --- a/launchers/headless/pom.xml +++ b/launchers/headless/pom.xml @@ -90,7 +90,7 @@ - /src/main/build/build.xml + ../../assembly/build/build.xml diff --git a/launchers/headless/src/main/build/build.xml b/launchers/headless/src/main/build/build.xml deleted file mode 100644 index 7165bcc00..000000000 --- a/launchers/headless/src/main/build/build.xml +++ /dev/null @@ -1,39 +0,0 @@ - - bin - - tar.gz - - - - - ${project.basedir}/src/main/bin - bin - 0777 - 0755 - - - - ${project.basedir}/src/main/resources - conf - 0777 - 0755 - - - - ${project.build.directory} - lib - - *.jar - - - - - - - lib - false - - - \ No newline at end of file diff --git a/launchers/standalone/src/test/java/com/tencent/supersonic/headless/BaseTest.java b/launchers/standalone/src/test/java/com/tencent/supersonic/headless/BaseTest.java index a15c10619..3c9d17258 100644 --- a/launchers/standalone/src/test/java/com/tencent/supersonic/headless/BaseTest.java +++ b/launchers/standalone/src/test/java/com/tencent/supersonic/headless/BaseTest.java @@ -43,11 +43,15 @@ public class BaseTest extends BaseApplication { } protected QueryStructReq buildQueryStructReq(List groups) { + return buildQueryStructReq(groups, QueryType.METRIC); + } + + protected QueryStructReq buildQueryStructReq(List groups, QueryType queryType) { QueryStructReq queryStructReq = new QueryStructReq(); for (Long modelId : DataUtils.getMetricAgentIModelIds()) { queryStructReq.addModelId(modelId); } - queryStructReq.setQueryType(QueryType.METRIC); + queryStructReq.setQueryType(queryType); Aggregator aggregator = new Aggregator(); aggregator.setFunc(AggOperatorEnum.SUM); aggregator.setColumn("pv"); @@ -55,7 +59,6 @@ public class BaseTest extends BaseApplication { if (CollectionUtils.isNotEmpty(groups)) { queryStructReq.setGroups(groups); - queryStructReq.setGroups(Arrays.asList("department")); } DateConf dateConf = new DateConf(); @@ -71,5 +74,4 @@ public class BaseTest extends BaseApplication { queryStructReq.setOrders(orders); return queryStructReq; } - } diff --git a/launchers/standalone/src/test/java/com/tencent/supersonic/headless/ExplainTest.java b/launchers/standalone/src/test/java/com/tencent/supersonic/headless/ExplainTest.java index af28a96dd..9f232407d 100644 --- a/launchers/standalone/src/test/java/com/tencent/supersonic/headless/ExplainTest.java +++ b/launchers/standalone/src/test/java/com/tencent/supersonic/headless/ExplainTest.java @@ -45,4 +45,5 @@ public class ExplainTest extends BaseTest { assertTrue(explain.getSql().contains("department")); assertTrue(explain.getSql().contains("pv")); } + } diff --git a/launchers/standalone/src/test/java/com/tencent/supersonic/headless/QueryBySqlTest.java b/launchers/standalone/src/test/java/com/tencent/supersonic/headless/QueryBySqlTest.java index 4a2a3a819..7045fc640 100644 --- a/launchers/standalone/src/test/java/com/tencent/supersonic/headless/QueryBySqlTest.java +++ b/launchers/standalone/src/test/java/com/tencent/supersonic/headless/QueryBySqlTest.java @@ -3,6 +3,7 @@ package com.tencent.supersonic.headless; import static java.time.LocalDate.now; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThrows; +import static org.junit.Assert.assertTrue; import com.tencent.supersonic.auth.api.authentication.pojo.User; import com.tencent.supersonic.common.pojo.QueryColumn; @@ -12,6 +13,18 @@ import org.junit.jupiter.api.Test; public class QueryBySqlTest extends BaseTest { + @Test + public void testDetailQuery() throws Exception { + SemanticQueryResp semanticQueryResp = queryBySql("SELECT 用户,访问次数 FROM 超音数PVUV统计 WHERE 用户='alice' "); + + assertEquals(2, semanticQueryResp.getColumns().size()); + QueryColumn firstColumn = semanticQueryResp.getColumns().get(0); + assertEquals("用户", firstColumn.getName()); + QueryColumn secondColumn = semanticQueryResp.getColumns().get(1); + assertEquals("访问次数", secondColumn.getName()); + assertTrue(semanticQueryResp.getResultList().size() > 0); + } + @Test public void testSumQuery() throws Exception { SemanticQueryResp semanticQueryResp = queryBySql("SELECT SUM(访问次数) AS 访问次数 FROM 超音数PVUV统计 "); @@ -62,7 +75,7 @@ public class QueryBySqlTest extends BaseTest { public void testCacheQuery() throws Exception { SemanticQueryResp result1 = queryBySql("SELECT 部门, SUM(访问次数) AS 访问次数 FROM 超音数PVUV统计 GROUP BY 部门 "); SemanticQueryResp result2 = queryBySql("SELECT 部门, SUM(访问次数) AS 访问次数 FROM 超音数PVUV统计 GROUP BY 部门 "); - assertEquals(result1, result2); + assertTrue(result1 == result2); } @Test diff --git a/launchers/standalone/src/test/java/com/tencent/supersonic/headless/QueryByStructTest.java b/launchers/standalone/src/test/java/com/tencent/supersonic/headless/QueryByStructTest.java index eceb42887..4efb811d2 100644 --- a/launchers/standalone/src/test/java/com/tencent/supersonic/headless/QueryByStructTest.java +++ b/launchers/standalone/src/test/java/com/tencent/supersonic/headless/QueryByStructTest.java @@ -3,11 +3,13 @@ package com.tencent.supersonic.headless; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertThrows; +import static org.junit.Assert.assertTrue; import com.tencent.supersonic.auth.api.authentication.pojo.User; import com.tencent.supersonic.common.pojo.Filter; import com.tencent.supersonic.common.pojo.QueryColumn; import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum; +import com.tencent.supersonic.common.pojo.enums.QueryType; import com.tencent.supersonic.common.pojo.exception.InvalidPermissionException; import com.tencent.supersonic.headless.api.pojo.request.QueryStructReq; import com.tencent.supersonic.headless.api.pojo.response.SemanticQueryResp; @@ -18,6 +20,21 @@ import org.junit.jupiter.api.Test; public class QueryByStructTest extends BaseTest { + @Test + public void testDetailQuery() throws Exception { + QueryStructReq queryStructReq = buildQueryStructReq(Arrays.asList("user_name", "department"), + QueryType.TAG); + SemanticQueryResp semanticQueryResp = queryService.queryByReq(queryStructReq, User.getFakeUser()); + assertEquals(3, semanticQueryResp.getColumns().size()); + QueryColumn firstColumn = semanticQueryResp.getColumns().get(0); + assertEquals("用户", firstColumn.getName()); + QueryColumn secondColumn = semanticQueryResp.getColumns().get(1); + assertEquals("部门", secondColumn.getName()); + QueryColumn thirdColumn = semanticQueryResp.getColumns().get(2); + assertEquals("访问次数", thirdColumn.getName()); + assertTrue(semanticQueryResp.getResultList().size() > 0); + } + @Test public void testSumQuery() throws Exception { QueryStructReq queryStructReq = buildQueryStructReq(null); @@ -68,7 +85,7 @@ public class QueryByStructTest extends BaseTest { QueryStructReq queryStructReq2 = buildQueryStructReq(Arrays.asList("department")); SemanticQueryResp result1 = queryService.queryByReq(queryStructReq1, User.getFakeUser()); SemanticQueryResp result2 = queryService.queryByReq(queryStructReq2, User.getFakeUser()); - assertEquals(result1, result2); + assertTrue(result1 == result2); } @Test