Skip to content

Commit 16a8f8f

Browse files
Unit test
Signed-off-by: Andy Kwok <[email protected]>
1 parent 50f000a commit 16a8f8f

File tree

1 file changed

+28
-27
lines changed

1 file changed

+28
-27
lines changed

opensearch/src/test/java/org/opensearch/sql/opensearch/planner/physical/OpenSearchEvalOperatorTest.java

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -5,62 +5,41 @@
55

66
package org.opensearch.sql.opensearch.planner.physical;
77

8-
import com.google.common.collect.ImmutableMap;
98
import org.apache.commons.lang3.tuple.ImmutablePair;
109
import org.apache.commons.lang3.tuple.Pair;
1110
import org.junit.jupiter.api.Test;
1211
import org.junit.jupiter.api.extension.ExtendWith;
1312
import org.junit.runner.RunWith;
1413
import org.mockito.Answers;
1514
import org.mockito.Mock;
16-
import org.mockito.MockedStatic;
17-
import org.mockito.Mockito;
1815
import org.mockito.junit.MockitoJUnitRunner;
1916
import org.mockito.junit.jupiter.MockitoExtension;
2017
import org.mockito.junit.jupiter.MockitoSettings;
2118
import org.mockito.quality.Strictness;
22-
import org.opensearch.action.support.PlainActionFuture;
2319
import org.opensearch.client.node.NodeClient;
24-
import org.opensearch.ml.client.MachineLearningNodeClient;
25-
import org.opensearch.ml.common.dataframe.DataFrame;
26-
import org.opensearch.ml.common.dataframe.DataFrameBuilder;
27-
import org.opensearch.ml.common.input.MLInput;
28-
import org.opensearch.ml.common.output.MLOutput;
29-
import org.opensearch.ml.common.output.MLPredictionOutput;
30-
import org.opensearch.ml.common.output.MLTrainingOutput;
31-
import org.opensearch.sql.ast.dsl.AstDSL;
32-
import org.opensearch.sql.ast.expression.Literal;
33-
import org.opensearch.sql.data.model.ExprIntegerValue;
3420
import org.opensearch.sql.data.model.ExprNullValue;
35-
import org.opensearch.sql.data.model.ExprTupleValue;
36-
import org.opensearch.sql.data.model.ExprValue;
21+
import org.opensearch.sql.data.type.ExprCoreType;
3722
import org.opensearch.sql.expression.Expression;
3823
import org.opensearch.sql.expression.LiteralExpression;
24+
import org.opensearch.sql.expression.NamedExpression;
3925
import org.opensearch.sql.expression.ReferenceExpression;
40-
import org.opensearch.sql.opensearch.client.MLClient;
4126
import org.opensearch.sql.opensearch.data.type.OpenSearchTextType;
27+
import org.opensearch.sql.opensearch.data.value.OpenSearchExprTextValue;
28+
import org.opensearch.sql.opensearch.executor.protector.OpenSearchExecutionProtector;
29+
import org.opensearch.sql.planner.physical.EvalOperator;
4230
import org.opensearch.sql.planner.physical.PhysicalPlan;
4331
import org.opensearch.sql.planner.physical.PhysicalPlanNodeVisitor;
32+
import org.opensearch.sql.planner.physical.ProjectOperator;
4433

4534
import java.util.Collections;
46-
import java.util.HashMap;
4735
import java.util.List;
48-
import java.util.Map;
49-
import java.util.concurrent.TimeUnit;
5036

5137
import static org.junit.jupiter.api.Assertions.assertFalse;
5238
import static org.junit.jupiter.api.Assertions.assertNotNull;
5339
import static org.junit.jupiter.api.Assertions.assertNull;
5440
import static org.junit.jupiter.api.Assertions.assertTrue;
5541
import static org.mockito.ArgumentMatchers.any;
56-
import static org.mockito.ArgumentMatchers.anyLong;
5742
import static org.mockito.ArgumentMatchers.eq;
58-
import static org.mockito.Mockito.when;
59-
import static org.opensearch.sql.utils.MLCommonsConstants.ACTION;
60-
import static org.opensearch.sql.utils.MLCommonsConstants.ALGO;
61-
import static org.opensearch.sql.utils.MLCommonsConstants.KMEANS;
62-
import static org.opensearch.sql.utils.MLCommonsConstants.PREDICT;
63-
import static org.opensearch.sql.utils.MLCommonsConstants.TRAIN;
6443

6544
/**
6645
* To assert the original bahviour of eval operator.
@@ -84,4 +63,26 @@ public void testOpenSearchEvalAccept() {
8463
OpenSearchEvalOperator evalOperator = new OpenSearchEvalOperator(input, ipAddress, nodeClient);
8564
assertNull(evalOperator.accept(physicalPlanNodeVisitor, null));
8665
}
66+
67+
// Test-case: Make sure the original eval works
68+
// Test-case: Make sure geoIpClient being called and assert the same mocked value being returned.
69+
70+
// To have some expression like a+2 == c to make sure the original eval behaviour stay.
71+
@Test
72+
public void testEvalOperatorOnGenericOperations() {
73+
74+
ProjectOperator projectOperator = new ProjectOperator(input,
75+
List.of(
76+
new NamedExpression("firstname", new ReferenceExpression("firstname", List.of("firstname"), OpenSearchTextType.of())),
77+
new NamedExpression("age", new ReferenceExpression("age", List.of("age"), ExprCoreType.LONG)),
78+
new NamedExpression("firstname", new ReferenceExpression("email", List.of("email"), OpenSearchTextType.of()))),
79+
Collections.emptyList());
80+
81+
List<Pair<ReferenceExpression, Expression>> ipAddress = List.of(ImmutablePair.of(
82+
new ReferenceExpression("ipAddress", OpenSearchTextType.of()),
83+
new LiteralExpression(ExprNullValue.of())));
84+
OpenSearchEvalOperator evalOperator = new OpenSearchEvalOperator(projectOperator, ipAddress, nodeClient);
85+
assertNull(evalOperator.next());
86+
87+
}
8788
}

0 commit comments

Comments
 (0)