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 cab77841116 Add unit for 
MetaDataPersistService.persistTransactionRule(final Properties props, final 
boolean isOverwrit)  #16091 (#17714)
cab77841116 is described below

commit cab77841116cf3269892f0e9bd224ab2859fdd6c
Author: yangsen <73088519+yangse...@users.noreply.github.com>
AuthorDate: Tue May 17 00:07:27 2022 +0800

    Add unit for MetaDataPersistService.persistTransactionRule(final Properties 
props, final boolean isOverwrit)  #16091 (#17714)
    
    * Add unit for MetaDataPersistService.persistTransactionRule(final 
Properties props, final boolean isOverwrit) (#16091)
    
    Co-authored-by: yangsen <73088519+baoliesho...@users.noreply.github.com>
    Co-authored-by: sen4.yang <sen4.y...@ly.com>
---
 .../persist/MetaDataPersistServiceTest.java        | 35 +++++++++++++++++++++-
 1 file changed, 34 insertions(+), 1 deletion(-)

diff --git 
a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/MetaDataPersistServiceTest.java
 
b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/MetaDataPersistServiceTest.java
index f272a8ac943..48c0b7ac2e2 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/MetaDataPersistServiceTest.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/MetaDataPersistServiceTest.java
@@ -33,6 +33,8 @@ import 
org.apache.shardingsphere.mode.metadata.persist.service.impl.PropertiesPe
 import 
org.apache.shardingsphere.mode.metadata.persist.service.impl.DatabaseRulePersistService;
 import org.apache.shardingsphere.mode.persist.PersistRepository;
 import org.apache.shardingsphere.test.mock.MockedDataSource;
+import 
org.apache.shardingsphere.transaction.config.TransactionRuleConfiguration;
+import org.apache.shardingsphere.transaction.core.TransactionType;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -50,12 +52,16 @@ import java.util.Collections;
 import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.Map.Entry;
-import java.util.Properties;
 import java.util.stream.Collectors;
+import java.util.Properties;
+import java.util.Optional;
 
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 @RunWith(MockitoJUnitRunner.class)
 public final class MetaDataPersistServiceTest {
@@ -164,4 +170,31 @@ public final class MetaDataPersistServiceTest {
         Map<String, DataSource> resultEffectiveDataSources = 
metaDataPersistService.getEffectiveDataSources("foo_db", databaseConfigs);
         assertTrue(resultEffectiveDataSources.isEmpty());
     }
+    
+    @Test
+    public void assertPersistTransactionRule() {
+        mockGlobalRulePersistServiceForLoad();
+        Properties properties = createTransactionProperties();
+        metaDataPersistService.persistTransactionRule(properties, true);
+        Collection<RuleConfiguration> ruleConfigs = globalRuleService.load();
+        Optional<RuleConfiguration> ruleConfig = 
ruleConfigs.stream().filter(each -> each instanceof 
TransactionRuleConfiguration).findFirst();
+        assertThat(ruleConfig.get(), 
is(createAssertTransactionRuleConfiguration()));
+    }
+    
+    private Properties createTransactionProperties() {
+        Properties result = new Properties();
+        result.setProperty("type", TransactionType.LOCAL.name());
+        return result;
+    }
+    
+    private void mockGlobalRulePersistServiceForLoad() {
+        RuleConfiguration ruleConfiguration = new 
TransactionRuleConfiguration(TransactionType.LOCAL.name(), null, new 
Properties());
+        
when(globalRuleService.load()).thenReturn(Collections.singleton(ruleConfiguration));
+    }
+    
+    private RuleConfiguration createAssertTransactionRuleConfiguration() {
+        RuleConfiguration result = new 
TransactionRuleConfiguration(TransactionType.LOCAL.name(), null, 
createTransactionProperties());
+        return result;
+    }
+    
 }

Reply via email to