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 06:52:16 UTC
[shardingsphere] branch master updated: Use MockResourceAutoReleaseExtension on infra modules (#24372)
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 c62c35a0ee4 Use MockResourceAutoReleaseExtension on infra modules (#24372)
c62c35a0ee4 is described below
commit c62c35a0ee4756aeaa46ad51ead28d391ae04df8
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Tue Feb 28 14:52:00 2023 +0800
Use MockResourceAutoReleaseExtension on infra modules (#24372)
---
.../infra/metadata/ShardingSphereMetaDataTest.java | 43 ++++++++---------
.../schema/builder/GenericSchemaBuilderTest.java | 37 +++++++--------
infra/executor/pom.xml | 6 +++
.../sql/process/ExecuteProcessReporterTest.java | 54 ++++++++--------------
4 files changed, 64 insertions(+), 76 deletions(-)
diff --git a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaDataTest.java b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaDataTest.java
index 20c1c32a12a..b9f891fc95a 100644
--- a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaDataTest.java
+++ b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaDataTest.java
@@ -28,8 +28,12 @@ import org.apache.shardingsphere.infra.metadata.database.resource.ShardingSphere
import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
import org.apache.shardingsphere.infra.rule.identifier.type.ResourceHeldRule;
import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.apache.shardingsphere.test.mock.MockResourceAutoReleaseExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.junit.jupiter.MockitoSettings;
+import org.mockito.quality.Strictness;
import javax.sql.DataSource;
import java.sql.SQLException;
@@ -40,34 +44,31 @@ import java.util.Properties;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.mockStatic;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+@ExtendWith(MockResourceAutoReleaseExtension.class)
+@StaticMockSettings(ShardingSphereDatabase.class)
+@MockitoSettings(strictness = Strictness.LENIENT)
public final class ShardingSphereMetaDataTest {
@Test
public void assertAddDatabase() {
- ShardingSphereResourceMetaData resourceMetaData = mock(ShardingSphereResourceMetaData.class);
- DataSource dataSource = new MockedDataSource();
- ResourceHeldRule<?> databaseResourceHeldRule = mock(ResourceHeldRule.class);
ResourceHeldRule<?> globalResourceHeldRule = mock(ResourceHeldRule.class);
- ShardingSphereDatabase database = mockDatabase(resourceMetaData, dataSource, databaseResourceHeldRule);
- try (MockedStatic<ShardingSphereDatabase> mockedStatic = mockStatic(ShardingSphereDatabase.class)) {
- DatabaseType databaseType = mock(DatabaseType.class);
- mockedStatic.when(() -> ShardingSphereDatabase.create("foo_db", databaseType)).thenReturn(database);
- Map<String, ShardingSphereDatabase> databases = new HashMap<>(Collections.singletonMap("foo_db", database));
- ShardingSphereMetaData metaData = new ShardingSphereMetaData(
- databases, new ShardingSphereRuleMetaData(Collections.singleton(globalResourceHeldRule)), new ConfigurationProperties(new Properties()));
- metaData.addDatabase("foo_db", databaseType);
- assertThat(metaData.getDatabases(), is(databases));
- verify(globalResourceHeldRule).addResource(database);
- }
+ ShardingSphereDatabase database = mockDatabase(mock(ShardingSphereResourceMetaData.class), new MockedDataSource(), mock(ResourceHeldRule.class));
+ DatabaseType databaseType = mock(DatabaseType.class);
+ when(ShardingSphereDatabase.create("foo_db", databaseType)).thenReturn(database);
+ Map<String, ShardingSphereDatabase> databases = new HashMap<>(Collections.singletonMap("foo_db", database));
+ ShardingSphereMetaData metaData = new ShardingSphereMetaData(
+ databases, new ShardingSphereRuleMetaData(Collections.singleton(globalResourceHeldRule)), new ConfigurationProperties(new Properties()));
+ metaData.addDatabase("foo_db", databaseType);
+ assertThat(metaData.getDatabases(), is(databases));
+ verify(globalResourceHeldRule).addResource(database);
}
@Test
diff --git a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilderTest.java b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilderTest.java
index a6a176ddb35..5e69c6927f3 100644
--- a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilderTest.java
+++ b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilderTest.java
@@ -20,16 +20,17 @@ package org.apache.shardingsphere.infra.metadata.database.schema.builder;
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
import org.apache.shardingsphere.infra.database.DefaultDatabase;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
-import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
import org.apache.shardingsphere.infra.metadata.database.schema.fixture.rule.TableContainedFixtureRule;
import org.apache.shardingsphere.infra.metadata.database.schema.loader.metadata.SchemaMetaDataLoaderEngine;
import org.apache.shardingsphere.infra.metadata.database.schema.loader.model.SchemaMetaData;
import org.apache.shardingsphere.infra.metadata.database.schema.loader.model.TableMetaData;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
+import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
+import org.apache.shardingsphere.test.mock.MockResourceAutoReleaseExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import javax.sql.DataSource;
import java.sql.SQLException;
@@ -42,49 +43,43 @@ import java.util.stream.Collectors;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.mockStatic;
+import static org.mockito.Mockito.when;
+@ExtendWith(MockResourceAutoReleaseExtension.class)
+@StaticMockSettings(SchemaMetaDataLoaderEngine.class)
public final class GenericSchemaBuilderTest {
private GenericSchemaBuilderMaterial material;
- private MockedStatic<SchemaMetaDataLoaderEngine> engine;
-
- @Before
+ @BeforeEach
public void setUp() {
DatabaseType databaseType = mock(DatabaseType.class);
material = new GenericSchemaBuilderMaterial(databaseType, Collections.emptyMap(), Collections.singletonMap(DefaultDatabase.LOGIC_NAME, mock(DataSource.class)),
Collections.singleton(new TableContainedFixtureRule()), new ConfigurationProperties(new Properties()), DefaultDatabase.LOGIC_NAME);
- engine = mockStatic(SchemaMetaDataLoaderEngine.class);
- }
-
- @After
- public void cleanUp() {
- engine.close();
}
@Test
public void assertLoadWithExistedTableName() throws SQLException {
Collection<String> tableNames = Collections.singletonList("data_node_routed_table1");
- engine.when(() -> SchemaMetaDataLoaderEngine.load(any())).thenReturn(createSchemaMetaDataMap(tableNames, material));
+ when(SchemaMetaDataLoaderEngine.load(any())).thenReturn(createSchemaMetaDataMap(tableNames, material));
assertFalse(GenericSchemaBuilder.build(tableNames, material).get(DefaultDatabase.LOGIC_NAME).getTables().isEmpty());
}
@Test
public void assertLoadWithNotExistedTableName() throws SQLException {
Collection<String> tableNames = Collections.singletonList("invalid_table");
- engine.when(() -> SchemaMetaDataLoaderEngine.load(any())).thenReturn(createSchemaMetaDataMap(tableNames, material));
+ when(SchemaMetaDataLoaderEngine.load(any())).thenReturn(createSchemaMetaDataMap(tableNames, material));
assertTrue(GenericSchemaBuilder.build(tableNames, material).get(DefaultDatabase.LOGIC_NAME).getTables().isEmpty());
}
@Test
public void assertLoadAllTables() throws SQLException {
Collection<String> tableNames = Arrays.asList("data_node_routed_table1", "data_node_routed_table2");
- engine.when(() -> SchemaMetaDataLoaderEngine.load(any())).thenReturn(createSchemaMetaDataMap(tableNames, material));
+ when(SchemaMetaDataLoaderEngine.load(any())).thenReturn(createSchemaMetaDataMap(tableNames, material));
Map<String, ShardingSphereSchema> actual = GenericSchemaBuilder.build(tableNames, material);
assertThat(actual.size(), is(1));
assertTables(new ShardingSphereSchema(actual.values().iterator().next().getTables(), Collections.emptyMap()).getTables());
diff --git a/infra/executor/pom.xml b/infra/executor/pom.xml
index c9893c548c3..21d65e26785 100644
--- a/infra/executor/pom.xml
+++ b/infra/executor/pom.xml
@@ -45,6 +45,12 @@
<version>${project.version}</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-test-util</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>com.alibaba</groupId>
diff --git a/infra/executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/process/ExecuteProcessReporterTest.java b/infra/executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/process/ExecuteProcessReporterTest.java
index 9f4264fb3f5..1d0c643ba63 100644
--- a/infra/executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/process/ExecuteProcessReporterTest.java
+++ b/infra/executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/process/ExecuteProcessReporterTest.java
@@ -24,43 +24,38 @@ import org.apache.shardingsphere.infra.executor.sql.context.ExecutionUnit;
import org.apache.shardingsphere.infra.executor.sql.execute.engine.SQLExecutionUnit;
import org.apache.shardingsphere.infra.executor.sql.process.model.ExecuteProcessContext;
import org.apache.shardingsphere.infra.executor.sql.process.model.ExecuteProcessStatusEnum;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.apache.shardingsphere.test.mock.MockResourceAutoReleaseExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
-import java.util.Collections;
import java.util.UUID;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.mockStatic;
-import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+@ExtendWith(MockResourceAutoReleaseExtension.class)
+@StaticMockSettings(ShowProcessListManager.class)
public final class ExecuteProcessReporterTest {
- private MockedStatic<ShowProcessListManager> mockedStatic;
-
+ @Mock
private ShowProcessListManager showProcessListManager;
- private final ExecuteProcessReporter reporter = new ExecuteProcessReporter();
-
- @Before
+ @BeforeEach
public void setUp() {
- mockedStatic = mockStatic(ShowProcessListManager.class);
- showProcessListManager = mock(ShowProcessListManager.class);
- mockedStatic.when(ShowProcessListManager::getInstance).thenReturn(showProcessListManager);
+ when(ShowProcessListManager.getInstance()).thenReturn(showProcessListManager);
}
@Test
public void assertReport() {
- QueryContext queryContext = new QueryContext(null, null, null);
ExecutionGroupContext<? extends SQLExecutionUnit> executionGroupContext = mockExecutionGroupContext();
- reporter.report(queryContext, executionGroupContext, ExecuteProcessStatusEnum.START);
- verify(showProcessListManager, times(1)).putProcessContext(eq(executionGroupContext.getReportContext().getExecutionID()), any());
+ new ExecuteProcessReporter().report(new QueryContext(null, null, null), executionGroupContext, ExecuteProcessStatusEnum.START);
+ verify(showProcessListManager).putProcessContext(eq(executionGroupContext.getReportContext().getExecutionID()), any());
}
@SuppressWarnings("unchecked")
@@ -75,25 +70,16 @@ public final class ExecuteProcessReporterTest {
@Test
public void assertReportUnit() {
SQLExecutionUnit sqlExecutionUnit = mock(SQLExecutionUnit.class);
- ExecutionUnit executionUnit = mock(ExecutionUnit.class);
- when(sqlExecutionUnit.getExecutionUnit()).thenReturn(executionUnit);
- ExecuteProcessContext executeProcessContext = mock(ExecuteProcessContext.class);
- when(executeProcessContext.getProcessUnits()).thenReturn(Collections.emptyMap());
- when(showProcessListManager.getProcessContext("foo_id")).thenReturn(executeProcessContext);
- reporter.report("foo_id", sqlExecutionUnit, ExecuteProcessStatusEnum.DONE);
- verify(showProcessListManager, times(1)).getProcessContext(eq("foo_id"));
+ when(sqlExecutionUnit.getExecutionUnit()).thenReturn(mock(ExecutionUnit.class));
+ when(showProcessListManager.getProcessContext("foo_id")).thenReturn(mock(ExecuteProcessContext.class));
+ new ExecuteProcessReporter().report("foo_id", sqlExecutionUnit, ExecuteProcessStatusEnum.DONE);
+ verify(showProcessListManager).getProcessContext("foo_id");
}
@Test
public void assertReportClean() {
- ExecuteProcessContext executeProcessContext = mock(ExecuteProcessContext.class);
- when(showProcessListManager.getProcessContext("foo_id")).thenReturn(executeProcessContext);
- reporter.reportClean("foo_id");
- verify(showProcessListManager, times(1)).removeProcessStatement(eq("foo_id"));
- }
-
- @After
- public void tearDown() {
- mockedStatic.close();
+ when(showProcessListManager.getProcessContext("foo_id")).thenReturn(mock(ExecuteProcessContext.class));
+ new ExecuteProcessReporter().reportClean("foo_id");
+ verify(showProcessListManager).removeProcessStatement("foo_id");
}
}