소스 검색

Convert couchbase-2-common javaagent unit tests from groovy to java (#9426)

Jay DeLuca 1 년 전
부모
커밋
590e352fcf

+ 0 - 3
instrumentation/couchbase/couchbase-2-common/javaagent-unit-tests/build.gradle.kts

@@ -3,9 +3,6 @@ plugins {
 }
 
 dependencies {
-  testImplementation("org.apache.groovy:groovy")
-  testImplementation("org.spockframework:spock-core")
-
   testImplementation(project(":instrumentation-api-semconv"))
   testImplementation(project(":javaagent-extension-api"))
   testImplementation(project(":instrumentation:couchbase:couchbase-2-common:javaagent"))

+ 0 - 36
instrumentation/couchbase/couchbase-2-common/javaagent-unit-tests/src/test/groovy/io/opentelemetry/javaagent/instrumentation/couchbase/v2_0/CouchbaseQuerySanitizerTest.groovy

@@ -1,36 +0,0 @@
-/*
- * Copyright The OpenTelemetry Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package io.opentelemetry.javaagent.instrumentation.couchbase.v2_0
-
-import com.couchbase.client.java.analytics.AnalyticsQuery
-import com.couchbase.client.java.query.N1qlQuery
-import com.couchbase.client.java.query.Select
-import com.couchbase.client.java.query.dsl.Expression
-import com.couchbase.client.java.view.SpatialViewQuery
-import com.couchbase.client.java.view.ViewQuery
-import spock.lang.Specification
-import spock.lang.Unroll
-
-class CouchbaseQuerySanitizerTest extends Specification {
-  @Unroll
-  def "should normalize #desc query"() {
-    when:
-    def normalized = CouchbaseQuerySanitizer.sanitize(query).getFullStatement()
-
-    then:
-    // the analytics query ends up with trailing ';' in earlier couchbase version, but no trailing ';' in later couchbase version
-    normalized.replaceFirst(';$', '') == expected
-
-    where:
-    desc           | query                                                                                          | expected
-    "plain string" | "SELECT field1 FROM `test` WHERE field2 = 'asdf'"                                              | "SELECT field1 FROM `test` WHERE field2 = ?"
-    "Statement"    | Select.select("field1").from("test").where(Expression.path("field2").eq(Expression.s("asdf"))) | "SELECT field1 FROM test WHERE field2 = ?"
-    "N1QL"         | N1qlQuery.simple("SELECT field1 FROM `test` WHERE field2 = 'asdf'")                            | "SELECT field1 FROM `test` WHERE field2 = ?"
-    "Analytics"    | AnalyticsQuery.simple("SELECT field1 FROM `test` WHERE field2 = 'asdf'")                       | "SELECT field1 FROM `test` WHERE field2 = ?"
-    "View"         | ViewQuery.from("design", "view").skip(10)                                                      | 'ViewQuery(design/view){params="skip=10"}'
-    "SpatialView"  | SpatialViewQuery.from("design", "view").skip(10)                                               | 'skip=10'
-  }
-}

+ 83 - 0
instrumentation/couchbase/couchbase-2-common/javaagent-unit-tests/src/test/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_0/CouchbaseQuerySanitizerTest.java

@@ -0,0 +1,83 @@
+/*
+ * Copyright The OpenTelemetry Authors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package io.opentelemetry.javaagent.instrumentation.couchbase.v2_0;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.jupiter.api.Named.named;
+
+import com.couchbase.client.java.analytics.AnalyticsQuery;
+import com.couchbase.client.java.query.N1qlQuery;
+import com.couchbase.client.java.query.Select;
+import com.couchbase.client.java.query.dsl.Expression;
+import com.couchbase.client.java.view.SpatialViewQuery;
+import com.couchbase.client.java.view.ViewQuery;
+import java.util.stream.Stream;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
+
+class CouchbaseQuerySanitizerTest {
+
+  @ParameterizedTest
+  @MethodSource("providesArguments")
+  void testShouldNormalizeStringQuery(Parameter parameter) {
+    String normalized = CouchbaseQuerySanitizer.sanitize(parameter.query).getFullStatement();
+    assertThat(normalized).isNotNull();
+    // the analytics query ends up with trailing ';' in earlier couchbase version, but no trailing
+    // ';' in later couchbase version
+    assertThat(normalized.replaceFirst(";$", "")).isEqualTo(parameter.expected);
+  }
+
+  private static Stream<Arguments> providesArguments() {
+    return Stream.of(
+        Arguments.of(
+            named(
+                "plain string",
+                new Parameter(
+                    "SELECT field1 FROM `test` WHERE field2 = 'asdf'",
+                    "SELECT field1 FROM `test` WHERE field2 = ?"))),
+        Arguments.of(
+            named(
+                "Statement",
+                new Parameter(
+                    Select.select("field1")
+                        .from("test")
+                        .where(Expression.path("field2").eq(Expression.s("asdf"))),
+                    "SELECT field1 FROM test WHERE field2 = ?"))),
+        Arguments.of(
+            named(
+                "N1QL",
+                new Parameter(
+                    N1qlQuery.simple("SELECT field1 FROM `test` WHERE field2 = 'asdf'"),
+                    "SELECT field1 FROM `test` WHERE field2 = ?"))),
+        Arguments.of(
+            named(
+                "Analytics",
+                new Parameter(
+                    AnalyticsQuery.simple("SELECT field1 FROM `test` WHERE field2 = 'asdf'"),
+                    "SELECT field1 FROM `test` WHERE field2 = ?"))),
+        Arguments.of(
+            named(
+                "View",
+                new Parameter(
+                    ViewQuery.from("design", "view").skip(10),
+                    "ViewQuery(design/view){params=\"skip=10\"}"))),
+        Arguments.of(
+            named(
+                "SpatialView",
+                new Parameter(SpatialViewQuery.from("design", "view").skip(10), "skip=10"))));
+  }
+
+  private static class Parameter {
+    public final Object query;
+    public final String expected;
+
+    public Parameter(Object query, String expected) {
+      this.query = query;
+      this.expected = expected;
+    }
+  }
+}