diff options
| author | doufenghu <[email protected]> | 2023-12-03 14:22:32 +0800 |
|---|---|---|
| committer | doufenghu <[email protected]> | 2023-12-03 14:22:32 +0800 |
| commit | ffa3ed3dded18d086e72046e89b72b7a0dd60e7f (patch) | |
| tree | 59a97f1bfa5cb75e28cc1071e35b9a7fc15f4d7e /groot-tests | |
| parent | 5f21adf326bd9c1db7f1bb9faf65d63643c596b9 (diff) | |
[feature][docs] add readme.md for groot stream platform
Diffstat (limited to 'groot-tests')
4 files changed, 20 insertions, 209 deletions
diff --git a/groot-tests/pom.xml b/groot-tests/pom.xml new file mode 100644 index 0000000..2c39a58 --- /dev/null +++ b/groot-tests/pom.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>com.geedgenetworks</groupId> + <artifactId>groot-stream</artifactId> + <version>${revision}</version> + </parent> + + <artifactId>groot-tests</artifactId> + <name>Groot : Tests </name> + <properties> + <maven.compiler.source>8</maven.compiler.source> + <maven.compiler.target>8</maven.compiler.target> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + </properties> + +</project>
\ No newline at end of file diff --git a/groot-tests/src/test/java/com/geedgenetworks/core/udf/expressions/EvalExpressionResolverTest.java b/groot-tests/src/test/java/com/geedgenetworks/core/udf/expressions/EvalExpressionResolverTest.java deleted file mode 100644 index e6b8ff2..0000000 --- a/groot-tests/src/test/java/com/geedgenetworks/core/udf/expressions/EvalExpressionResolverTest.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.geedgenetworks.core.udf.test; - -import com.geedgenetworks.core.expressions.*; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; - -import java.math.BigDecimal; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -class EvalExpressionResolverTest { - - private static EvalExpressionResolver resolver; - - @BeforeAll - static void setUp() { - resolver = new EvalExpressionResolver(); - } - - @Test - void testValueExpression() { - // constant - assertEquals(resolver.resolve("'name'"), new ValueExpression.StringConstantExpression("name")); - assertEquals(resolver.resolve("5"), new ValueExpression.NumberConstantExpression(5)); - assertEquals(resolver.resolve("5L"), new ValueExpression.NumberConstantExpression(5L)); - assertEquals(resolver.resolve("5D"), new ValueExpression.NumberConstantExpression((double) 5L)); - assertEquals(resolver.resolve("5BD"), new ValueExpression.NumberConstantExpression(BigDecimal.valueOf(5))); - assertEquals(resolver.resolve("TRUE"), new ValueExpression.BooleanConstantExpression(true)); - assertEquals(resolver.resolve("FALSE"), new ValueExpression.BooleanConstantExpression(false)); - - // variable - assertEquals(resolver.resolve("common_client_ip"), - new ValueExpression.FieldRefExpression("common_client_ip")); - assertEquals(resolver.resolve("common_client_port"), - new ValueExpression.FieldRefExpression("common_client_port")); - } - - @Test - void testConditionExpression() { - - assertEquals( - resolver.resolve("common_client_port > common_server_port ? common_c2s_pkt_num : common_s2c_pkt_num"), - new ValueExpression.TernaryExpression( - new BooleanExpression.ComparisonExpression(ComparisonOperator.GT, - new ValueExpression.FieldRefExpression("common_client_port"), - new ValueExpression.FieldRefExpression("common_server_port")), - new ValueExpression.FieldRefExpression("common_c2s_pkt_num"), - new ValueExpression.FieldRefExpression("common_s2c_pkt_num")) - ); - assertEquals( - resolver.resolve("common_client_port > common_server_port " + - "? 'C2S:' + common_c2s_pkt_num : 'S2C:' + common_s2c_pkt_num"), - new ValueExpression.TernaryExpression( - new BooleanExpression.ComparisonExpression(ComparisonOperator.GT, - new ValueExpression.FieldRefExpression("common_client_port"), - new ValueExpression.FieldRefExpression("common_server_port")), - new ValueExpression.ArithmeticExpression(ArithmeticOperator.PLUS, - new ValueExpression.StringConstantExpression("C2S:"), - new ValueExpression.FieldRefExpression("common_c2s_pkt_num")), - new ValueExpression.ArithmeticExpression(ArithmeticOperator.PLUS, - new ValueExpression.StringConstantExpression("S2C:"), - new ValueExpression.FieldRefExpression("common_s2c_pkt_num"))) - ); - assertEquals( - resolver.resolve("common_c2s_pkt_num > common_s2c_pkt_num " + - "& common_c2s_byte_num > common_s2c_byte_num ? common_client_port : common_server_port"), - new ValueExpression.TernaryExpression( - new BooleanExpression.PredicateExpression(PredicateOperator.AND, - new BooleanExpression.ComparisonExpression(ComparisonOperator.GT, - new ValueExpression.FieldRefExpression("common_c2s_pkt_num"), - new ValueExpression.FieldRefExpression("common_s2c_pkt_num")), - new BooleanExpression.ComparisonExpression(ComparisonOperator.GT, - new ValueExpression.FieldRefExpression("common_c2s_byte_num"), - new ValueExpression.FieldRefExpression("common_s2c_byte_num"))), - new ValueExpression.FieldRefExpression("common_client_port"), - new ValueExpression.FieldRefExpression("common_server_port")) - ); - } - - -}
\ No newline at end of file diff --git a/groot-tests/src/test/java/com/geedgenetworks/core/udf/expressions/codegen/CalcCodeConvertorTest.java b/groot-tests/src/test/java/com/geedgenetworks/core/udf/expressions/codegen/CalcCodeConvertorTest.java deleted file mode 100644 index fc842e7..0000000 --- a/groot-tests/src/test/java/com/geedgenetworks/core/udf/expressions/codegen/CalcCodeConvertorTest.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.geedgenetworks.core.udf.test.codegen; - - -import com.geedgenetworks.core.expressions.InvalidProgramException; -import com.geedgenetworks.core.expressions.SyntaxErrorException; -import com.geedgenetworks.core.expressions.codegen.CalcCodeConvertor; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; - -import java.math.BigDecimal; -import java.util.HashMap; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertThrows; - -class CalcCodeConvertorTest { - - private static Map<String, Object> origin; - - @BeforeAll - static void setUp() { - origin = new HashMap<>(); - origin.put("common_schema_type", "RTP"); - origin.put("common_sessions", 1); - origin.put("common_stream_dir", 3); - origin.put("common_vsys_id", 24); - - origin.put("common_server_ip", "172.17.200.50"); - origin.put("common_server_port", 36682); - origin.put("common_s2c_byte_num", 7570); - origin.put("common_s2c_pkt_num", 5); - - origin.put("common_client_ip", "172.17.201.16"); - origin.put("common_client_port", 42924); - origin.put("common_c2s_byte_num", 1834); - origin.put("common_c2s_pkt_num", 6); - - origin.put("common_out_dest_mac", "02:fc:08:dc:92:d7"); - origin.put("common_out_src_mac", "02:fc:08:dc:91:c3"); - } - - @Test - void testValueExpression() throws Exception { - // constant - assertEquals(CalcCodeConvertor.convert("'name'").eval(origin), "name"); - assertEquals(CalcCodeConvertor.convert("5").eval(origin), 5); - assertEquals(CalcCodeConvertor.convert("5L").eval(origin), 5L); - assertEquals(CalcCodeConvertor.convert("5D").eval(origin), (double) 5L); - assertEquals(CalcCodeConvertor.convert("5BD").eval(origin), BigDecimal.valueOf(5)); - assertEquals(CalcCodeConvertor.convert("TRUE").eval(origin), true); - assertEquals(CalcCodeConvertor.convert("FALSE").eval(origin), false); - - // variable - assertEquals(CalcCodeConvertor.convert("common_client_ip").eval(origin), - origin.get("common_client_ip")); - assertEquals(CalcCodeConvertor.convert("common_client_port").eval(origin), - origin.get("common_client_port")); - } - - @Test - void testConditionExpression() throws Exception { - int commonClientPort = (int) origin.get("common_client_port"); - int commonServerPort = (int) origin.get("common_server_port"); - int commonC2sPktNum = (int) origin.get("common_c2s_pkt_num"); - int commonS2cPktNum = (int) origin.get("common_s2c_pkt_num"); - int commonC2sByteNum = (int) origin.get("common_c2s_byte_num"); - int commonS2cByteNum = (int) origin.get("common_s2c_byte_num"); - assertEquals( - CalcCodeConvertor.convert("common_client_port > common_server_port " + - "? common_c2s_pkt_num : common_s2c_pkt_num").eval(origin), - commonClientPort > commonServerPort ? commonC2sPktNum : commonS2cPktNum); - assertEquals( - CalcCodeConvertor.convert("common_client_port > common_server_port " + - "? 'C2S:' + common_c2s_pkt_num : 'S2C:' + common_s2c_pkt_num").eval(origin), - commonClientPort > commonServerPort ? "C2S:" + commonC2sPktNum : "S2C:" + commonS2cPktNum); - assertEquals( - CalcCodeConvertor.convert("common_c2s_pkt_num > common_s2c_pkt_num " + - "& common_c2s_byte_num > common_s2c_byte_num ? common_client_port : common_server_port").eval(origin), - commonC2sPktNum > commonS2cPktNum - && commonC2sByteNum > commonS2cByteNum ? commonClientPort : commonServerPort - ); - } - - @Test - void testError() { - assertThrows(SyntaxErrorException.class, - () -> CalcCodeConvertor.convert("common_c2s_pkt_num > common_s2c_pkt_num")); - assertThrows(SyntaxErrorException.class, - () -> CalcCodeConvertor.convert("2 = 3")); - assertThrows(InvalidProgramException.class, - () -> CalcCodeConvertor.convert("common_client_ip - 10")); - } -}
\ No newline at end of file diff --git a/groot-tests/src/test/java/com/geedgenetworks/core/udf/expressions/codegen/EvalCodeGeneratorTest.java b/groot-tests/src/test/java/com/geedgenetworks/core/udf/expressions/codegen/EvalCodeGeneratorTest.java deleted file mode 100644 index 6a0d4d2..0000000 --- a/groot-tests/src/test/java/com/geedgenetworks/core/udf/expressions/codegen/EvalCodeGeneratorTest.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.geedgenetworks.core.udf.test.codegen; - - -import com.geedgenetworks.core.expressions.EvalExpressionResolver; -import com.geedgenetworks.core.expressions.Expression; -import com.geedgenetworks.core.expressions.codegen.CodeGeneratorContext; -import com.geedgenetworks.core.expressions.codegen.EvalCodeGenerator; -import org.apache.commons.lang3.StringUtils; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertTrue; - -class EvalCodeGeneratorTest { - - private static EvalExpressionResolver resolver; - - @BeforeAll - static void setUp() { - resolver = new EvalExpressionResolver(); - } - - @Test - void testCodeGen() { - Expression expression = resolver.resolve("common_client_port > common_server_port " + - " ? 'C2S:' + common_c2s_pkt_num : 'S2C:' + common_s2c_pkt_num"); - CodeGeneratorContext context = new CodeGeneratorContext(); - expression.accept(new EvalCodeGenerator(context)); - String memberCode = context.reuseMemberCode(); - assertTrue(StringUtils.contains(memberCode, "C2S:")); - assertTrue(StringUtils.contains(memberCode, "S2C:")); - } - -} |
