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 <[email protected]>
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")));
+
     }
 }

Reply via email to