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 2022/02/05 07:26:00 UTC
[shardingsphere] branch master updated: Added tests for ClusterContextManagerCoordinator (#15216)
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 178ca31 Added tests for ClusterContextManagerCoordinator (#15216)
178ca31 is described below
commit 178ca31f34cc780c40079b1bd3c369a34d36a9c3
Author: Shankeerthan Kasilingam <33...@users.noreply.github.com>
AuthorDate: Sat Feb 5 12:54:54 2022 +0530
Added tests for ClusterContextManagerCoordinator (#15216)
* Added tests for the following methods(Git issue : 15185)
*renew(final PrimaryStateChangedEvent event)
*renew(final StateEvent event)
*renew(final WorkerIdEvent event)
*renew(final LabelsEvent event)
* Changed the code as per the comments(Git issue : 15185)
* Changed the code as per the suggestion(Git issue : 15185)
---
.../ClusterContextManagerCoordinatorTest.java | 52 +++++++++++++++++++++-
1 file changed, 51 insertions(+), 1 deletion(-)
diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinatorTest.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinatorTest.java
index f69a236..158548c 100644
--- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinatorTest.java
+++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinatorTest.java
@@ -40,6 +40,8 @@ import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
import org.apache.shardingsphere.infra.metadata.user.ShardingSphereUser;
import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
+import org.apache.shardingsphere.infra.rule.identifier.type.StatusContainedRule;
+import org.apache.shardingsphere.infra.state.StateType;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.manager.ContextManagerBuilderParameter;
import org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder;
@@ -51,7 +53,11 @@ import org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.confi
import org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.config.event.schema.SchemaChangedEvent;
import org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.metadata.event.SchemaAddedEvent;
import org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.metadata.event.SchemaDeletedEvent;
+import org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.status.compute.event.LabelsEvent;
+import org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.status.compute.event.StateEvent;
+import org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.status.compute.event.WorkerIdEvent;
import org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.status.storage.event.DisabledStateChangedEvent;
+import org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.status.storage.event.PrimaryStateChangedEvent;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
import org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepositoryConfiguration;
@@ -82,6 +88,7 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
@@ -112,7 +119,7 @@ public final class ClusterContextManagerCoordinatorTest {
contextManager = builder.build(ContextManagerBuilderParameter.builder().modeConfig(modeConfig).schemaConfigs(new HashMap<>())
.globalRuleConfigs(new LinkedList<>()).props(new Properties()).instanceDefinition(new InstanceDefinition(InstanceType.PROXY, 3307)).build());
assertTrue(contextManager.getMetaDataContexts().getMetaDataPersistService().isPresent());
- contextManager.renewMetaDataContexts(new MetaDataContexts(contextManager.getMetaDataContexts().getMetaDataPersistService().get(), createMetaDataMap(), globalRuleMetaData,
+ contextManager.renewMetaDataContexts(new MetaDataContexts(contextManager.getMetaDataContexts().getMetaDataPersistService().get(), createMetaDataMap(), globalRuleMetaData,
mock(ExecutorEngine.class), createOptimizerContext(), new ConfigurationProperties(new Properties())));
contextManager.renewTransactionContexts(mock(TransactionContexts.class, RETURNS_DEEP_STUBS));
coordinator = new ClusterContextManagerCoordinator(metaDataPersistService, contextManager, mock(RegistryCenter.class));
@@ -250,4 +257,47 @@ public final class ClusterContextManagerCoordinatorTest {
when(result.getFederationMetaData().getSchemas()).thenReturn(schemas);
return result;
}
+
+ @Test
+ public void assertRenewPrimaryDataSourceName() {
+ Collection<ShardingSphereRule> rules = new LinkedList<>();
+ StatusContainedRule mockStatusContainedRule = mock(StatusContainedRule.class);
+ rules.add(mockStatusContainedRule);
+ ShardingSphereRuleMetaData mockShardingSphereRuleMetaData = new ShardingSphereRuleMetaData(new LinkedList<>(), rules);
+ ShardingSphereMetaData mockShardingSphereMetaData = mock(ShardingSphereMetaData.class);
+ when(mockShardingSphereMetaData.getRuleMetaData()).thenReturn(mockShardingSphereRuleMetaData);
+ contextManager.getMetaDataContexts().getMetaDataMap().put("schema", mockShardingSphereMetaData);
+ PrimaryStateChangedEvent mockPrimaryStateChangedEvent = new PrimaryStateChangedEvent(new QualifiedSchema("schema.test_ds"), "test_ds");
+ coordinator.renew(mockPrimaryStateChangedEvent);
+ verify(mockStatusContainedRule).updateStatus(any());
+ }
+
+ @Test
+ public void assertRenewInstanceStatus() {
+ Collection<String> testStates = new LinkedList<>();
+ testStates.add(StateType.OK.name());
+ testStates.add(StateType.LOCK.name());
+ StateEvent mockStateEvent = new StateEvent(contextManager.getInstanceContext().getInstance().getInstanceDefinition().getInstanceId().getId(), testStates);
+ coordinator.renew(mockStateEvent);
+ assertThat(contextManager.getInstanceContext().getInstance().getStatus(), is(testStates));
+ testStates.add(StateType.CIRCUIT_BREAK.name());
+ coordinator.renew(mockStateEvent);
+ assertThat(contextManager.getInstanceContext().getState().getCurrentState(), is(StateType.CIRCUIT_BREAK));
+ }
+
+ @Test
+ public void assertRenewWorkerIdChange() {
+ WorkerIdEvent mockWorkerIdEvent = new WorkerIdEvent(contextManager.getInstanceContext().getInstance().getInstanceDefinition().getInstanceId().getId(), 12223L);
+ coordinator.renew(mockWorkerIdEvent);
+ assertThat(contextManager.getInstanceContext().getWorkerId(), is(12223L));
+ }
+
+ @Test
+ public void assertRenewInstanceLabels() {
+ Collection<String> labels = new LinkedList<>();
+ labels.add("test");
+ LabelsEvent mockLabelsEvent = new LabelsEvent(contextManager.getInstanceContext().getInstance().getInstanceDefinition().getInstanceId().getId(), labels);
+ coordinator.renew(mockLabelsEvent);
+ assertThat(contextManager.getInstanceContext().getInstance().getLabels(), is(labels));
+ }
}