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 8b0b0e6  Refactor ParameterizedArrayFactory (#8857)
8b0b0e6 is described below

commit 8b0b0e64f8f2191cc941f47986fddf0c4b8a18f6
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Jan 1 22:38:08 2021 +0800

    Refactor ParameterizedArrayFactory (#8857)
    
    * Refactor ParameterizedArrayFactory
    
    * Refactor ParameterizedArrayFactory
    
    * Refactor ParameterizedArrayFactory
    
    * Refactor ParameterizedArrayFactory
    
    * Refactor ParameterizedArrayFactory
    
    * Refactor ParameterizedArrayFactory
---
 .../engine/param/ParameterizedArrayFactory.java    | 105 ++++++---------------
 1 file changed, 29 insertions(+), 76 deletions(-)

diff --git 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/param/ParameterizedArrayFactory.java
 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/param/ParameterizedArrayFactory.java
index bb9afe5..2eaa1bb 100644
--- 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/param/ParameterizedArrayFactory.java
+++ 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/param/ParameterizedArrayFactory.java
@@ -17,12 +17,10 @@
 
 package org.apache.shardingsphere.test.integration.engine.param;
 
-import com.google.common.base.Joiner;
 import com.google.common.base.Splitter;
 import com.google.common.base.Strings;
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
-import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
 import org.apache.shardingsphere.infra.database.type.DatabaseTypeRegistry;
@@ -34,15 +32,10 @@ import 
org.apache.shardingsphere.test.integration.engine.param.domain.AssertionP
 import 
org.apache.shardingsphere.test.integration.engine.param.domain.CaseParameterizedArray;
 import 
org.apache.shardingsphere.test.integration.engine.param.domain.ParameterizedArray;
 import org.apache.shardingsphere.test.integration.env.IntegrateTestEnvironment;
-import org.junit.Test;
 
-import java.util.Arrays;
 import java.util.Collection;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
 import java.util.LinkedList;
-import java.util.Map;
-import java.util.Map.Entry;
+import java.util.List;
 import java.util.stream.Collectors;
 
 /**
@@ -63,33 +56,19 @@ public final class ParameterizedArrayFactory {
      * @return assertion parameterized array
      */
     public static Collection<Object[]> getAssertionParameterizedArray(final 
SQLCommandType sqlCommandType) {
-        Map<DatabaseType, Collection<ParameterizedArray>> assertionParameters 
= new LinkedHashMap<>(10, 1);
+        Collection<ParameterizedArray> result = new LinkedList<>();
         for (IntegrateTestCaseContext each : 
INTEGRATE_TEST_CASES_LOADER.getTestCaseContexts(sqlCommandType)) {
-            Map<DatabaseType, Collection<ParameterizedArray>> 
eachAssertionParameters = getAssertionParameterizedArray(each);
-            for (Entry<DatabaseType, Collection<ParameterizedArray>> entry : 
eachAssertionParameters.entrySet()) {
-                assertionParameters.putIfAbsent(entry.getKey(), new 
LinkedList<>());
-                
assertionParameters.get(entry.getKey()).addAll(entry.getValue());
-            }
-        }
-        Map<DatabaseType, Collection<ParameterizedArray>> 
availableAssertionParameters = new LinkedHashMap<>(assertionParameters.size(), 
1);
-        Map<DatabaseType, Collection<ParameterizedArray>> 
disabledAssertionParameters = new LinkedHashMap<>(assertionParameters.size(), 
1);
-        for (Entry<DatabaseType, Collection<ParameterizedArray>> entry : 
assertionParameters.entrySet()) {
-            if 
(IntegrateTestEnvironment.getInstance().getDatabaseEnvironments().containsKey(entry.getKey()))
 {
-                availableAssertionParameters.put(entry.getKey(), 
entry.getValue());
-            } else {
-                disabledAssertionParameters.put(entry.getKey(), 
entry.getValue());
-            }
+            result.addAll(getAssertionParameterizedArray(each));
         }
-        printTestPlan(availableAssertionParameters, 
disabledAssertionParameters, calculateRunnableTestAnnotation());
-        return 
availableAssertionParameters.values().stream().flatMap(Collection::stream).map(ParameterizedArray::toArrays).collect(Collectors.toList());
+        return toArrays(result);
     }
     
-    private static Map<DatabaseType, Collection<ParameterizedArray>> 
getAssertionParameterizedArray(final IntegrateTestCaseContext testCaseContext) {
-        Collection<DatabaseType> databaseTypes = 
getDatabaseTypes(testCaseContext.getTestCase().getDbTypes());
-        Map<DatabaseType, Collection<ParameterizedArray>> result = new 
HashMap<>(databaseTypes.size(), 1);
-        for (DatabaseType each : databaseTypes) {
-            result.putIfAbsent(each, new LinkedList<>());
-            
result.get(each).addAll(getAssertionParameterizedArray(testCaseContext, each));
+    private static Collection<ParameterizedArray> 
getAssertionParameterizedArray(final IntegrateTestCaseContext testCaseContext) {
+        Collection<ParameterizedArray> result = new LinkedList<>();
+        for (DatabaseType each : 
getDatabaseTypes(testCaseContext.getTestCase().getDbTypes())) {
+            if 
(IntegrateTestEnvironment.getInstance().getDatabaseEnvironments().containsKey(each))
 {
+                result.addAll(getAssertionParameterizedArray(testCaseContext, 
each));
+            }
         }
         return result;
     }
@@ -102,12 +81,9 @@ public final class ParameterizedArrayFactory {
         return result;
     }
     
-    private static Collection<ParameterizedArray> 
getAssertionParameterizedArray(final IntegrateTestCaseContext testCaseContext, 
final DatabaseType databaseType, final SQLExecuteType sqlExecuteType) {
+    private static Collection<ParameterizedArray> 
getAssertionParameterizedArray(final IntegrateTestCaseContext testCaseContext,
+                                                                               
  final DatabaseType databaseType, final SQLExecuteType sqlExecuteType) {
         Collection<ParameterizedArray> result = new LinkedList<>();
-        if (testCaseContext.getTestCase().getAssertions().isEmpty()) {
-            result.addAll(getAssertionParameterizedArray(testCaseContext, 
null, databaseType, sqlExecuteType));
-            return result;
-        }
         for (IntegrateTestCaseAssertion each : 
testCaseContext.getTestCase().getAssertions()) {
             result.addAll(getAssertionParameterizedArray(testCaseContext, 
each, databaseType, sqlExecuteType));
         }
@@ -127,22 +103,24 @@ public final class ParameterizedArrayFactory {
      * @return case parameterized array
      */
     public static Collection<Object[]> getCaseParameterizedArray(final 
SQLCommandType sqlCommandType) {
-        Map<DatabaseType, Collection<ParameterizedArray>> availableCases = new 
LinkedHashMap<>();
-        Map<DatabaseType, Collection<ParameterizedArray>> disabledCases = new 
LinkedHashMap<>();
-        
INTEGRATE_TEST_CASES_LOADER.getTestCaseContexts(sqlCommandType).forEach(testCaseContext
 -> 
getDatabaseTypes(testCaseContext.getTestCase().getDbTypes()).forEach(databaseType
 -> {
-            if 
(IntegrateTestEnvironment.getInstance().getDatabaseEnvironments().containsKey(databaseType))
 {
-                availableCases.putIfAbsent(databaseType, new LinkedList<>());
-                
availableCases.get(databaseType).addAll(getCaseParameterizedArray(databaseType, 
testCaseContext));
-            } else {
-                disabledCases.putIfAbsent(databaseType, new LinkedList<>());
-                
disabledCases.get(databaseType).addAll(getCaseParameterizedArray(databaseType, 
testCaseContext));
+        Collection<ParameterizedArray> result = new LinkedList<>();
+        for (IntegrateTestCaseContext each : 
INTEGRATE_TEST_CASES_LOADER.getTestCaseContexts(sqlCommandType)) {
+            result.addAll(getCaseParameterizedArray(each));
+        }
+        return toArrays(result);
+    }
+    
+    private static Collection<ParameterizedArray> 
getCaseParameterizedArray(final IntegrateTestCaseContext testCaseContext) {
+        Collection<ParameterizedArray> result = new LinkedList<>();
+        for (DatabaseType each : 
getDatabaseTypes(testCaseContext.getTestCase().getDbTypes())) {
+            if 
(IntegrateTestEnvironment.getInstance().getDatabaseEnvironments().containsKey(each))
 {
+                result.addAll(getCaseParameterizedArray(testCaseContext, 
each));
             }
-        }));
-        printTestPlan(availableCases, disabledCases, 
calculateRunnableTestAnnotation());
-        return 
availableCases.values().stream().flatMap(Collection::stream).map(ParameterizedArray::toArrays).collect(Collectors.toList());
+        }
+        return result;
     }
     
-    private static Collection<ParameterizedArray> 
getCaseParameterizedArray(final DatabaseType databaseType, final 
IntegrateTestCaseContext testCaseContext) {
+    private static Collection<ParameterizedArray> 
getCaseParameterizedArray(final IntegrateTestCaseContext testCaseContext, final 
DatabaseType databaseType) {
         return INTEGRATE_TEST_ENVIRONMENT.getScenarios().stream().map(each -> 
new CaseParameterizedArray(testCaseContext, each, 
databaseType)).collect(Collectors.toList());
     }
     
@@ -151,32 +129,7 @@ public final class ParameterizedArrayFactory {
         return 
Splitter.on(',').trimResults().splitToList(candidates).stream().map(DatabaseTypeRegistry::getActualDatabaseType).collect(Collectors.toList());
     }
     
-    private static void printTestPlan(final Map<DatabaseType, 
-            Collection<ParameterizedArray>> availableCaseParameters, final 
Map<DatabaseType, Collection<ParameterizedArray>> disabledCaseParameters, final 
long factor) {
-        Collection<String> activePlan = new LinkedList<>();
-        for (Entry<DatabaseType, Collection<ParameterizedArray>> entry : 
availableCaseParameters.entrySet()) {
-            activePlan.add(String.format("%s(%s)", entry.getKey().getName(), 
entry.getValue().size() * factor));
-        }
-        Collection<String> disabledPlan = new LinkedList<>();
-        for (Entry<DatabaseType, Collection<ParameterizedArray>> entry : 
disabledCaseParameters.entrySet()) {
-            disabledPlan.add(String.format("%s(%s)", entry.getKey().getName(), 
entry.getValue().size() * factor));
-        }
-        log.info("[INFO] ======= Test Plan =======");
-        String summary = String.format("[%s] Total: %s, Active: %s, Disabled: 
%s %s",
-            disabledPlan.isEmpty() ? "INFO" : "WARN",
-            
(availableCaseParameters.values().stream().mapToLong(Collection::size).sum() + 
disabledCaseParameters.values().stream().mapToLong(Collection::size).sum()) * 
factor,
-            activePlan.isEmpty() ? 0 : Joiner.on(", ").join(activePlan), 
disabledPlan.isEmpty() ? 0 : Joiner.on(", ").join(disabledPlan), 
System.lineSeparator());
-        log.info(summary);
-    }
-    
-    @SneakyThrows(ReflectiveOperationException.class)
-    private static long calculateRunnableTestAnnotation() {
-        long result = 0;
-        StackTraceElement[] stackTraceElements = 
Thread.currentThread().getStackTrace();
-        for (int i = 3; i < stackTraceElements.length; i++) {
-            Class<?> callerClazz = 
Class.forName(stackTraceElements[i].getClassName());
-            result += Arrays.stream(callerClazz.getMethods()).filter(method -> 
method.isAnnotationPresent(Test.class)).count();
-        }
-        return result;
+    private static List<Object[]> toArrays(final 
Collection<ParameterizedArray> parameterizedArrays) {
+        return 
parameterizedArrays.stream().map(ParameterizedArray::toArrays).collect(Collectors.toList());
     }
 }

Reply via email to