You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2023/02/28 03:35:56 UTC
[shardingsphere] branch master updated: Use MockResourceAutoReleaseExtension on agent modules (#24367)
This is an automated email from the ASF dual-hosted git repository.
panjuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new a57e477722c Use MockResourceAutoReleaseExtension on agent modules (#24367)
a57e477722c is described below
commit a57e477722c27982b8610e744ce737c69ad7b546
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Tue Feb 28 11:35:47 2023 +0800
Use MockResourceAutoReleaseExtension on agent modules (#24367)
---
agent/plugins/metrics/core/pom.xml | 6 +++
.../impl/proxy/ProxyMetaDataInfoExporterTest.java | 23 +++++-----
.../impl/proxy/ProxyStateExporterTest.java | 26 +++++------
.../PrometheusPluginLifecycleServiceTest.java | 19 ++++----
agent/plugins/tracing/test/pom.xml | 7 +++
.../AbstractCommandExecutorTaskAdviceTest.java | 53 ----------------------
...OpenTelemetryCommandExecutorTaskAdviceTest.java | 34 +++++++++++---
.../OpenTracingCommandExecutorTaskAdviceTest.java | 26 +++++++++--
8 files changed, 97 insertions(+), 97 deletions(-)
diff --git a/agent/plugins/metrics/core/pom.xml b/agent/plugins/metrics/core/pom.xml
index 06def0fbf58..2616393d42b 100644
--- a/agent/plugins/metrics/core/pom.xml
+++ b/agent/plugins/metrics/core/pom.xml
@@ -87,6 +87,12 @@
</exclusions>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-test-util</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-data-pipeline-distsql-statement</artifactId>
diff --git a/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/exporter/impl/proxy/ProxyMetaDataInfoExporterTest.java b/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/exporter/impl/proxy/ProxyMetaDataInfoExporterTest.java
index 12377fa6a1f..ef0611e9440 100644
--- a/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/exporter/impl/proxy/ProxyMetaDataInfoExporterTest.java
+++ b/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/exporter/impl/proxy/ProxyMetaDataInfoExporterTest.java
@@ -28,9 +28,11 @@ import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
+import org.apache.shardingsphere.test.mock.MockResourceAutoReleaseExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Test;
-import org.mockito.MockedStatic;
+import org.junit.jupiter.api.extension.ExtendWith;
import javax.sql.DataSource;
import java.util.Collections;
@@ -42,9 +44,10 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.mockStatic;
import static org.mockito.Mockito.when;
+@ExtendWith(MockResourceAutoReleaseExtension.class)
+@StaticMockSettings(ProxyContext.class)
public final class ProxyMetaDataInfoExporterTest {
@AfterEach
@@ -55,21 +58,17 @@ public final class ProxyMetaDataInfoExporterTest {
@Test
public void assertExportWithoutContextManager() {
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(null);
- assertFalse(new ProxyMetaDataInfoExporter().export("FIXTURE").isPresent());
- }
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(null);
+ assertFalse(new ProxyMetaDataInfoExporter().export("FIXTURE").isPresent());
}
@Test
public void assertExportWithContextManager() {
ContextManager contextManager = mockContextManager();
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- Optional<GaugeMetricFamilyMetricsCollector> collector = new ProxyMetaDataInfoExporter().export("FIXTURE");
- assertTrue(collector.isPresent());
- assertThat(collector.get().toString(), is("database_count=1, storage_unit_count=1"));
- }
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ Optional<GaugeMetricFamilyMetricsCollector> collector = new ProxyMetaDataInfoExporter().export("FIXTURE");
+ assertTrue(collector.isPresent());
+ assertThat(collector.get().toString(), is("database_count=1, storage_unit_count=1"));
}
private ContextManager mockContextManager() {
diff --git a/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/exporter/impl/proxy/ProxyStateExporterTest.java b/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/exporter/impl/proxy/ProxyStateExporterTest.java
index 0eb2d95456b..330b50281ef 100644
--- a/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/exporter/impl/proxy/ProxyStateExporterTest.java
+++ b/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/exporter/impl/proxy/ProxyStateExporterTest.java
@@ -36,9 +36,11 @@ import org.apache.shardingsphere.mode.manager.standalone.workerid.generator.Stan
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
+import org.apache.shardingsphere.test.mock.MockResourceAutoReleaseExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Test;
-import org.mockito.MockedStatic;
+import org.junit.jupiter.api.extension.ExtendWith;
import java.util.Collections;
import java.util.Optional;
@@ -49,8 +51,10 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.mockStatic;
+import static org.mockito.Mockito.when;
+@ExtendWith(MockResourceAutoReleaseExtension.class)
+@StaticMockSettings(ProxyContext.class)
public final class ProxyStateExporterTest {
@AfterEach
@@ -61,22 +65,18 @@ public final class ProxyStateExporterTest {
@Test
public void assertExportWithoutContextManager() {
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(null);
- assertFalse(new ProxyStateExporter().export("FIXTURE").isPresent());
- }
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(null);
+ assertFalse(new ProxyStateExporter().export("FIXTURE").isPresent());
}
@Test
public void assertExportWithContextManager() {
ContextManager contextManager = mockContextManager();
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- proxyContext.when(() -> ProxyContext.getInstance().getStateContext()).thenReturn(Optional.of(mock(StateContext.class, RETURNS_DEEP_STUBS)));
- Optional<GaugeMetricFamilyMetricsCollector> collector = new ProxyStateExporter().export("FIXTURE");
- assertTrue(collector.isPresent());
- assertThat(collector.get().toString(), is("0"));
- }
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ when(ProxyContext.getInstance().getStateContext()).thenReturn(Optional.of(mock(StateContext.class, RETURNS_DEEP_STUBS)));
+ Optional<GaugeMetricFamilyMetricsCollector> collector = new ProxyStateExporter().export("FIXTURE");
+ assertTrue(collector.isPresent());
+ assertThat(collector.get().toString(), is("0"));
}
private ContextManager mockContextManager() {
diff --git a/agent/plugins/metrics/type/prometheus/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/prometheus/PrometheusPluginLifecycleServiceTest.java b/agent/plugins/metrics/type/prometheus/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/prometheus/PrometheusPluginLifecycleServiceTest.java
index 01bb5fe3582..8667f9e02a2 100644
--- a/agent/plugins/metrics/type/prometheus/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/prometheus/PrometheusPluginLifecycleServiceTest.java
+++ b/agent/plugins/metrics/type/prometheus/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/prometheus/PrometheusPluginLifecycleServiceTest.java
@@ -31,20 +31,23 @@ import org.apache.shardingsphere.mode.manager.standalone.workerid.generator.Stan
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
+import org.apache.shardingsphere.test.mock.MockResourceAutoReleaseExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
import org.apache.shardingsphere.test.util.PropertiesBuilder;
import org.apache.shardingsphere.test.util.PropertiesBuilder.Property;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Test;
-import org.mockito.MockedStatic;
+import org.junit.jupiter.api.extension.ExtendWith;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Socket;
-import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.mockStatic;
+import static org.mockito.Mockito.when;
+@ExtendWith(MockResourceAutoReleaseExtension.class)
+@StaticMockSettings(ProxyContext.class)
public final class PrometheusPluginLifecycleServiceTest {
private final PrometheusPluginLifecycleService pluginLifecycleService = new PrometheusPluginLifecycleService();
@@ -57,12 +60,10 @@ public final class PrometheusPluginLifecycleServiceTest {
@Test
public void assertStart() throws IOException {
ContextManager contextManager = mockContextManager();
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- pluginLifecycleService.start(new PluginConfiguration("localhost", 8090, "", PropertiesBuilder.build(new Property("JVM_INFORMATION_COLLECTOR_ENABLED", Boolean.TRUE.toString()))), true);
- try (Socket socket = new Socket()) {
- socket.connect(new InetSocketAddress("localhost", 8090));
- }
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ pluginLifecycleService.start(new PluginConfiguration("localhost", 8090, "", PropertiesBuilder.build(new Property("JVM_INFORMATION_COLLECTOR_ENABLED", Boolean.TRUE.toString()))), true);
+ try (Socket socket = new Socket()) {
+ socket.connect(new InetSocketAddress("localhost", 8090));
}
}
diff --git a/agent/plugins/tracing/test/pom.xml b/agent/plugins/tracing/test/pom.xml
index 930ab64c195..405679e1939 100644
--- a/agent/plugins/tracing/test/pom.xml
+++ b/agent/plugins/tracing/test/pom.xml
@@ -45,6 +45,13 @@
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-test-util</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+ </dependency>
+
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
diff --git a/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/advice/AbstractCommandExecutorTaskAdviceTest.java b/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/advice/AbstractCommandExecutorTaskAdviceTest.java
deleted file mode 100644
index 91ebf3fdc7b..00000000000
--- a/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/advice/AbstractCommandExecutorTaskAdviceTest.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * 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 org.apache.shardingsphere.agent.plugin.tracing.advice;
-
-import io.netty.util.DefaultAttributeMap;
-import lombok.Getter;
-import org.apache.shardingsphere.agent.api.advice.TargetAdviceObject;
-import org.apache.shardingsphere.agent.plugin.tracing.AgentExtension;
-import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
-import org.apache.shardingsphere.mode.manager.ContextManager;
-import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
-import org.apache.shardingsphere.proxy.frontend.command.CommandExecutorTask;
-import org.apache.shardingsphere.transaction.api.TransactionType;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.mockito.MockedStatic;
-
-import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.mockStatic;
-
-@ExtendWith(AgentExtension.class)
-public abstract class AbstractCommandExecutorTaskAdviceTest implements AdviceTestBase {
-
- @Getter
- private TargetAdviceObject targetObject;
-
- @SuppressWarnings("ConstantConditions")
- @Override
- public final void prepare() {
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(mock(ContextManager.class, RETURNS_DEEP_STUBS));
- ConnectionSession connectionSession = new ConnectionSession(mock(MySQLDatabaseType.class), TransactionType.BASE, new DefaultAttributeMap());
- Object executorTask = new CommandExecutorTask(null, connectionSession, null, null);
- targetObject = (TargetAdviceObject) executorTask;
- }
- }
-}
diff --git a/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryCommandExecutorTaskAdviceTest.java b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryCommandExecutorTaskAdviceTest.java
index 979168b81a6..b61460b391f 100644
--- a/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryCommandExecutorTaskAdviceTest.java
+++ b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryCommandExecutorTaskAdviceTest.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.advice;
+import io.netty.util.DefaultAttributeMap;
import io.opentelemetry.api.GlobalOpenTelemetry;
import io.opentelemetry.api.common.AttributeKey;
import io.opentelemetry.api.trace.StatusCode;
@@ -25,27 +26,48 @@ import io.opentelemetry.sdk.testing.exporter.InMemorySpanExporter;
import io.opentelemetry.sdk.trace.SdkTracerProvider;
import io.opentelemetry.sdk.trace.data.SpanData;
import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
-import org.apache.shardingsphere.agent.plugin.tracing.advice.AbstractCommandExecutorTaskAdviceTest;
+import org.apache.shardingsphere.agent.api.advice.TargetAdviceObject;
+import org.apache.shardingsphere.agent.plugin.tracing.AgentExtension;
import org.apache.shardingsphere.agent.plugin.tracing.core.constant.AttributeConstants;
import org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.constant.OpenTelemetryConstants;
+import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
+import org.apache.shardingsphere.mode.manager.ContextManager;
+import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
+import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
+import org.apache.shardingsphere.proxy.frontend.command.CommandExecutorTask;
+import org.apache.shardingsphere.test.mock.MockResourceAutoReleaseExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.apache.shardingsphere.transaction.api.TransactionType;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import java.io.IOException;
import java.util.List;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
-public final class OpenTelemetryCommandExecutorTaskAdviceTest extends AbstractCommandExecutorTaskAdviceTest {
+@ExtendWith({AgentExtension.class, MockResourceAutoReleaseExtension.class})
+@StaticMockSettings(ProxyContext.class)
+public final class OpenTelemetryCommandExecutorTaskAdviceTest {
private final InMemorySpanExporter testExporter = InMemorySpanExporter.create();
+ private TargetAdviceObject targetObject;
+
@BeforeEach
public void setup() {
SdkTracerProvider tracerProvider = SdkTracerProvider.builder().addSpanProcessor(SimpleSpanProcessor.create(testExporter)).build();
OpenTelemetrySdk.builder().setTracerProvider(tracerProvider).buildAndRegisterGlobal().getTracer(OpenTelemetryConstants.TRACER_NAME);
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(mock(ContextManager.class, RETURNS_DEEP_STUBS));
+ ConnectionSession connectionSession = new ConnectionSession(mock(MySQLDatabaseType.class), TransactionType.BASE, new DefaultAttributeMap());
+ Object executorTask = new CommandExecutorTask(null, connectionSession, null, null);
+ targetObject = (TargetAdviceObject) executorTask;
}
@AfterEach
@@ -57,8 +79,8 @@ public final class OpenTelemetryCommandExecutorTaskAdviceTest extends AbstractCo
@Test
public void assertMethod() {
OpenTelemetryCommandExecutorTaskAdvice advice = new OpenTelemetryCommandExecutorTaskAdvice();
- advice.beforeMethod(getTargetObject(), null, new Object[]{}, "OpenTelemetry");
- advice.afterMethod(getTargetObject(), null, new Object[]{}, null, "OpenTelemetry");
+ advice.beforeMethod(targetObject, null, new Object[]{}, "OpenTelemetry");
+ advice.afterMethod(targetObject, null, new Object[]{}, null, "OpenTelemetry");
List<SpanData> spanItems = testExporter.getFinishedSpanItems();
assertThat(spanItems.size(), is(1));
SpanData spanData = spanItems.get(0);
@@ -70,8 +92,8 @@ public final class OpenTelemetryCommandExecutorTaskAdviceTest extends AbstractCo
@Test
public void assertExceptionHandle() {
OpenTelemetryCommandExecutorTaskAdvice advice = new OpenTelemetryCommandExecutorTaskAdvice();
- advice.beforeMethod(getTargetObject(), null, new Object[]{}, "OpenTelemetry");
- advice.onThrowing(getTargetObject(), null, new Object[]{}, new IOException(), "OpenTelemetry");
+ advice.beforeMethod(targetObject, null, new Object[]{}, "OpenTelemetry");
+ advice.onThrowing(targetObject, null, new Object[]{}, new IOException(), "OpenTelemetry");
List<SpanData> spanItems = testExporter.getFinishedSpanItems();
assertThat(spanItems.size(), is(1));
SpanData spanData = spanItems.get(0);
diff --git a/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingCommandExecutorTaskAdviceTest.java b/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingCommandExecutorTaskAdviceTest.java
index dc905b92387..3ab477c8d48 100644
--- a/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingCommandExecutorTaskAdviceTest.java
+++ b/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingCommandExecutorTaskAdviceTest.java
@@ -18,18 +18,27 @@
package org.apache.shardingsphere.agent.plugin.tracing.opentracing.advice;
import io.netty.channel.ChannelHandlerContext;
+import io.netty.util.DefaultAttributeMap;
import io.opentracing.mock.MockSpan;
import io.opentracing.mock.MockSpan.LogEntry;
import io.opentracing.mock.MockTracer;
import io.opentracing.util.GlobalTracer;
import org.apache.shardingsphere.agent.api.advice.TargetAdviceObject;
-import org.apache.shardingsphere.agent.plugin.tracing.advice.AbstractCommandExecutorTaskAdviceTest;
+import org.apache.shardingsphere.agent.plugin.tracing.AgentExtension;
import org.apache.shardingsphere.agent.plugin.tracing.core.constant.AttributeConstants;
import org.apache.shardingsphere.db.protocol.payload.PacketPayload;
+import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
+import org.apache.shardingsphere.mode.manager.ContextManager;
+import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
+import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.frontend.command.CommandExecutorTask;
+import org.apache.shardingsphere.test.mock.MockResourceAutoReleaseExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.apache.shardingsphere.transaction.api.TransactionType;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.internal.configuration.plugins.Plugins;
import java.io.IOException;
@@ -41,8 +50,13 @@ import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
-public final class OpenTracingCommandExecutorTaskAdviceTest extends AbstractCommandExecutorTaskAdviceTest {
+@ExtendWith({AgentExtension.class, MockResourceAutoReleaseExtension.class})
+@StaticMockSettings(ProxyContext.class)
+public final class OpenTracingCommandExecutorTaskAdviceTest {
private static final OpenTracingCommandExecutorTaskAdvice ADVICE = new OpenTracingCommandExecutorTaskAdvice();
@@ -50,6 +64,8 @@ public final class OpenTracingCommandExecutorTaskAdviceTest extends AbstractComm
private static Method executeCommandMethod;
+ private TargetAdviceObject targetObject;
+
@BeforeAll
public static void setup() throws ReflectiveOperationException {
if (!GlobalTracer.isRegistered()) {
@@ -62,11 +78,14 @@ public final class OpenTracingCommandExecutorTaskAdviceTest extends AbstractComm
@BeforeEach
public void reset() {
tracer.reset();
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(mock(ContextManager.class, RETURNS_DEEP_STUBS));
+ ConnectionSession connectionSession = new ConnectionSession(mock(MySQLDatabaseType.class), TransactionType.BASE, new DefaultAttributeMap());
+ Object executorTask = new CommandExecutorTask(null, connectionSession, null, null);
+ targetObject = (TargetAdviceObject) executorTask;
}
@Test
public void assertMethod() {
- TargetAdviceObject targetObject = getTargetObject();
ADVICE.beforeMethod(targetObject, executeCommandMethod, new Object[]{}, "OpenTracing");
ADVICE.afterMethod(targetObject, executeCommandMethod, new Object[]{}, null, "OpenTracing");
List<MockSpan> spans = tracer.finishedSpans();
@@ -79,7 +98,6 @@ public final class OpenTracingCommandExecutorTaskAdviceTest extends AbstractComm
@Test
public void assertExceptionHandle() {
- TargetAdviceObject targetObject = getTargetObject();
ADVICE.beforeMethod(targetObject, executeCommandMethod, new Object[]{}, "OpenTracing");
ADVICE.onThrowing(targetObject, executeCommandMethod, new Object[]{}, new IOException(), "OpenTracing");
List<MockSpan> spans = tracer.finishedSpans();