Skip to content

Commit 635b890

Browse files
committed
Refactor StandaloneMetaDataManagerPersistService
1 parent 129928f commit 635b890

File tree

2 files changed

+14
-25
lines changed

2 files changed

+14
-25
lines changed

mode/type/standalone/core/pom.xml

+6
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,12 @@
4949
<version>${project.version}</version>
5050
<scope>test</scope>
5151
</dependency>
52+
<dependency>
53+
<groupId>org.apache.shardingsphere</groupId>
54+
<artifactId>shardingsphere-test-fixture-infra</artifactId>
55+
<version>${project.version}</version>
56+
<scope>test</scope>
57+
</dependency>
5258
<dependency>
5359
<groupId>org.apache.shardingsphere</groupId>
5460
<artifactId>shardingsphere-test-fixture-database</artifactId>

mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistServiceTest.java

+8-25
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
3030
import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
3131
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
32-
import org.apache.shardingsphere.mode.metadata.changed.RuleItemChangedNodePathBuilder;
3332
import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
3433
import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistFacade;
3534
import org.apache.shardingsphere.mode.metadata.persist.metadata.DatabaseMetaDataPersistFacade;
@@ -48,9 +47,9 @@
4847

4948
import java.sql.SQLException;
5049
import java.util.Collections;
51-
import java.util.Optional;
5250
import java.util.Properties;
5351

52+
import static org.apache.shardingsphere.test.matcher.ShardingSphereArgumentVerifyMatchers.deepEq;
5453
import static org.mockito.ArgumentMatchers.any;
5554
import static org.mockito.ArgumentMatchers.anyCollection;
5655
import static org.mockito.ArgumentMatchers.eq;
@@ -173,16 +172,11 @@ void assertAlterRuleConfiguration() throws SQLException {
173172
ShardingSphereMetaData metaData = new ShardingSphereMetaData(Collections.singleton(database), mock(), mock(), new ConfigurationProperties(new Properties()));
174173
when(metaDataContextManager.getMetaDataContexts().getMetaData()).thenReturn(metaData);
175174
RuleConfiguration ruleConfig = mock(RuleConfiguration.class, RETURNS_DEEP_STUBS);
176-
MetaDataVersion metaDataVersion = mock(MetaDataVersion.class);
177-
DatabaseRuleNodePath databaseRuleNodePath = new DatabaseRuleNodePath("foo_db", "fixture", new DatabaseRuleItem("foo_type"));
178-
when(metaDataVersion.getNodePath()).thenReturn(databaseRuleNodePath);
179-
when(metaDataPersistFacade.getDatabaseRuleService().persist("foo_db", Collections.singleton(ruleConfig))).thenReturn(Collections.singleton(metaDataVersion));
180-
RuleItemChangedNodePathBuilder ruleItemChangedNodePathBuilder = mock(RuleItemChangedNodePathBuilder.class);
181-
when(ruleItemChangedNodePathBuilder.build(eq("foo_db"), any())).thenReturn(Optional.of(databaseRuleNodePath));
182-
setRuleItemChangedBuildExecutor(ruleItemChangedNodePathBuilder);
183-
when(metaDataPersistFacade.getRepository().query("/metadata/foo_db/rules/fixture/foo_type/active_version")).thenReturn("0");
175+
DatabaseRuleNodePath databaseRuleNodePath = new DatabaseRuleNodePath("foo_db", "fixture", new DatabaseRuleItem("unique"));
176+
when(metaDataPersistFacade.getDatabaseRuleService().persist("foo_db", Collections.singleton(ruleConfig))).thenReturn(Collections.singleton(new MetaDataVersion(databaseRuleNodePath)));
177+
when(metaDataPersistFacade.getRepository().query("/metadata/foo_db/rules/fixture/unique/active_version")).thenReturn("0");
184178
metaDataManagerPersistService.alterRuleConfiguration(database, ruleConfig);
185-
verify(metaDataContextManager.getDatabaseRuleItemManager()).alter(databaseRuleNodePath);
179+
verify(metaDataContextManager.getDatabaseRuleItemManager()).alter(deepEq(databaseRuleNodePath));
186180
}
187181

188182
@Test
@@ -201,15 +195,10 @@ void assertRemoveRuleConfigurationItem() throws SQLException {
201195
ShardingSphereMetaData metaData = new ShardingSphereMetaData(Collections.singleton(database), mock(), mock(), new ConfigurationProperties(new Properties()));
202196
when(metaDataContextManager.getMetaDataContexts().getMetaData()).thenReturn(metaData);
203197
RuleConfiguration ruleConfig = mock(RuleConfiguration.class, RETURNS_DEEP_STUBS);
204-
MetaDataVersion metaDataVersion = mock(MetaDataVersion.class);
205-
when(metaDataPersistFacade.getDatabaseRuleService().delete("foo_db", Collections.singleton(ruleConfig))).thenReturn(Collections.singleton(metaDataVersion));
206-
RuleItemChangedNodePathBuilder ruleItemChangedNodePathBuilder = mock(RuleItemChangedNodePathBuilder.class);
207-
DatabaseRuleNodePath databaseRuleNodePath = mock(DatabaseRuleNodePath.class);
208-
when(metaDataVersion.getNodePath()).thenReturn(databaseRuleNodePath);
209-
when(ruleItemChangedNodePathBuilder.build(eq("foo_db"), any())).thenReturn(Optional.of(databaseRuleNodePath));
210-
setRuleItemChangedBuildExecutor(ruleItemChangedNodePathBuilder);
198+
DatabaseRuleNodePath databaseRuleNodePath = new DatabaseRuleNodePath("foo_db", "fixture", new DatabaseRuleItem("unique"));
199+
when(metaDataPersistFacade.getDatabaseRuleService().delete("foo_db", Collections.singleton(ruleConfig))).thenReturn(Collections.singleton(new MetaDataVersion(databaseRuleNodePath)));
211200
metaDataManagerPersistService.removeRuleConfigurationItem(database, ruleConfig);
212-
verify(metaDataContextManager.getDatabaseRuleItemManager()).drop(databaseRuleNodePath);
201+
verify(metaDataContextManager.getDatabaseRuleItemManager()).drop(deepEq(databaseRuleNodePath));
213202
}
214203

215204
@Test
@@ -247,10 +236,4 @@ void assertDropTables() throws SQLException {
247236
"foo_db", mock(), mock(), mock(), Collections.emptyList()), "foo_schema", Collections.singleton("foo_tbl"));
248237
verify(metaDataPersistFacade.getDatabaseMetaDataFacade().getTable()).drop("foo_db", "foo_schema", "foo_tbl");
249238
}
250-
251-
@SneakyThrows(ReflectiveOperationException.class)
252-
private void setRuleItemChangedBuildExecutor(final RuleItemChangedNodePathBuilder ruleItemChangedNodePathBuilder) {
253-
Plugins.getMemberAccessor().set(
254-
StandaloneMetaDataManagerPersistService.class.getDeclaredField("ruleItemChangedNodePathBuilder"), metaDataManagerPersistService, ruleItemChangedNodePathBuilder);
255-
}
256239
}

0 commit comments

Comments
 (0)