You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2022/06/27 14:51:41 UTC
[shardingsphere] branch master updated: Add assertion for assertUpdate method (#18637)
This is an automated email from the ASF dual-hosted git repository.
zhangliang 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 f26b9bfed7c Add assertion for assertUpdate method (#18637)
f26b9bfed7c is described below
commit f26b9bfed7c4654b5ec5331c721906b26c98a4fa
Author: DaneBrown <ta...@163.com>
AuthorDate: Mon Jun 27 22:51:32 2022 +0800
Add assertion for assertUpdate method (#18637)
* 1:add assert for assertUpdate test method
---
.../updatable/AlterTransactionRuleHandlerTest.java | 32 ++++++++++++++--------
1 file changed, 21 insertions(+), 11 deletions(-)
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterTransactionRuleHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterTransactionRuleHandlerTest.java
index ddbd90a7d25..967db4381b9 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterTransactionRuleHandlerTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterTransactionRuleHandlerTest.java
@@ -18,6 +18,11 @@
package org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.updatable;
import com.atomikos.jdbc.AtomikosDataSourceBean;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.Properties;
+import java.util.stream.Collectors;
import org.apache.shardingsphere.distsql.parser.segment.TransactionProviderSegment;
import org.apache.shardingsphere.distsql.parser.statement.ral.common.updatable.AlterTransactionRuleStatement;
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
@@ -27,6 +32,7 @@ import org.apache.shardingsphere.infra.instance.InstanceContext;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
+import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
@@ -43,51 +49,55 @@ import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.Properties;
-
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public final class AlterTransactionRuleHandlerTest extends ProxyContextRestorer {
-
+
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private ContextManager contextManager;
-
+
@Before
public void before() {
MetaDataContexts metaDataContexts = new MetaDataContexts(mock(MetaDataPersistService.class, RETURNS_DEEP_STUBS), createMetaData(), mock(OptimizerContext.class, RETURNS_DEEP_STUBS));
when(contextManager.getMetaDataContexts()).thenReturn(metaDataContexts);
ProxyContext.init(contextManager);
}
-
+
private ShardingSphereMetaData createMetaData() {
ShardingSphereRuleMetaData ruleMetaData = mock(ShardingSphereRuleMetaData.class);
when(ruleMetaData.getRules()).thenReturn(new LinkedList<>(Collections.singleton(createTransactionRule())));
return new ShardingSphereMetaData(Collections.singletonMap("foo_db", mockDatabase()), ruleMetaData, new ConfigurationProperties(new Properties()));
}
-
+
private TransactionRule createTransactionRule() {
TransactionRule result = new TransactionRule(new TransactionRuleConfiguration("LOCAL", null, new Properties()), Collections.emptyMap());
result.setInstanceContext(mock(InstanceContext.class));
result.getResources().put(DefaultDatabase.LOGIC_NAME, new ShardingSphereTransactionManagerEngine());
return result;
}
-
+
private ShardingSphereDatabase mockDatabase() {
ShardingSphereDatabase result = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
when(result.getResource().getDataSources()).thenReturn(Collections.singletonMap("foo_ds", mock(AtomikosDataSourceBean.class, RETURNS_DEEP_STUBS)));
return result;
}
-
+
@Test
public void assertUpdate() {
AlterTransactionRuleHandler handler = new AlterTransactionRuleHandler();
handler.init(new AlterTransactionRuleStatement("LOCAL", new TransactionProviderSegment(null, new Properties())), mock(ConnectionSession.class, RETURNS_DEEP_STUBS));
handler.update(contextManager);
- // TODO assert update result
+ Collection<ShardingSphereRule> collection = contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getRules();
+ Collection<TransactionRule> transactionRules = collection.stream().map(item -> (TransactionRule) item).collect(Collectors.toList());
+ assertNotNull(transactionRules);
+ assertTrue(!transactionRules.isEmpty());
+ assertTrue(transactionRules.stream().anyMatch(item -> item.getConfiguration().getDefaultType().equals("LOCAL")));
+ assertTrue(transactionRules.stream().anyMatch(item -> item.getDatabases().containsKey("foo_db")));
+
}
}