Michael Blow has submitted this change and it was merged.

Change subject: [NO ISSUE] Minor config usage test refactoring
......................................................................


[NO ISSUE] Minor config usage test refactoring

Change-Id: I5c4a0a9face0f044353c187e311a9105ed14d7ca
Reviewed-on: https://asterix-gerrit.ics.uci.edu/1981
Sonar-Qube: Jenkins <[email protected]>
Tested-by: Jenkins <[email protected]>
Contrib: Jenkins <[email protected]>
Integration-Tests: Jenkins <[email protected]>
Reviewed-by: Murtadha Hubail <[email protected]>
---
M 
asterixdb/asterix-app/src/test/java/org/apache/asterix/common/config/ConfigUsageTest.java
M 
asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java
2 files changed, 58 insertions(+), 28 deletions(-)

Approvals:
  Jenkins: Verified; No violations found; ; Verified
  Murtadha Hubail: Looks good to me, approved



diff --git 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/common/config/ConfigUsageTest.java
 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/common/config/ConfigUsageTest.java
index 2018e5a..b1b0d1d 100644
--- 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/common/config/ConfigUsageTest.java
+++ 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/common/config/ConfigUsageTest.java
@@ -28,10 +28,12 @@
 import java.util.List;
 import java.util.Set;
 import java.util.TreeSet;
+import java.util.function.Function;
 import java.util.function.Predicate;
 import java.util.stream.Collectors;
 
 import org.apache.asterix.hyracks.bootstrap.CCApplication;
+import org.apache.asterix.hyracks.bootstrap.NCApplication;
 import org.apache.commons.lang3.StringEscapeUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.hyracks.api.config.IOption;
@@ -49,10 +51,10 @@
     private ConfigManager configManager;
     final EnumMap<Column, Integer> maxWidths = new EnumMap<>(Column.class);
 
-    enum Column {
+    protected enum Column {
         SECTION,
         PARAMETER,
-        MEANING,
+        DESCRIPTION,
         DEFAULT
     }
 
@@ -64,38 +66,52 @@
     }
 
     @Test
-    public void generateUsage() {
+    public void generateCcUsage() {
+        generateUsage(Section.CC);
+    }
+
+    @Test
+    public void generateNcUsage() {
+        generateUsage(Section.NC);
+    }
+
+    @Test
+    public void generateCommonUsage() {
+        generateUsage(Section.COMMON);
+    }
+
+    protected void generateUsage(Section... sections) {
         final EnumMap<Column, Boolean> align = new EnumMap<>(Column.class);
         align.put(Column.SECTION, true);
         align.put(Column.PARAMETER, true);
         System.err.println();
-        generateUsage("| ", " | ", " |", align, System.err);
+        generateUsage("| ", " | ", " |", align, System.err, sections);
     }
 
     @Test
     public void generateUsageCSV() throws IOException {
         new File(CSV_FILE).getParentFile().mkdirs();
         try (final PrintStream output = new PrintStream(new 
FileOutputStream(CSV_FILE))) {
-            generateUsage("\"", "\",\"", "\"", new EnumMap<>(Column.class), 
output);
+            generateUsage("\"", "\",\"", "\"", new EnumMap<>(Column.class), 
output, getSections(configManager));
             // TODO(mblow): add some validation (in addition to just ensuring 
no exceptions...)
         }
     }
 
     protected ConfigManager getConfigManager() {
         ConfigManager configManager = new ConfigManager();
-        CCApplication application = new CCApplication();
-        application.registerConfig(configManager);
+        new CCApplication().registerConfig(configManager);
+        new NCApplication().registerConfig(configManager);
         ControllerConfig.Option.DEFAULT_DIR
                 .setDefaultValue(((String) 
ControllerConfig.Option.DEFAULT_DIR.defaultValue())
                         .replace(System.getProperty("java.io.tmpdir"), 
"${java.io.tmpdir}/"));
         return configManager;
     }
 
-    protected Set<Section> getSections(ConfigManager configManager) {
+    protected Section[] getSections(ConfigManager configManager) {
         TreeSet<Section> sections = new 
TreeSet<>(Comparator.comparing(Section::sectionName));
         sections.addAll(configManager.getSections());
         sections.remove(Section.LOCALNC);
-        return sections;
+        return sections.toArray(new Section[0]);
     }
 
     protected Predicate<IOption> optionSelector() {
@@ -108,7 +124,7 @@
     }
 
     public void generateUsage(String startDelim, String midDelim, String 
endDelim, EnumMap<Column, Boolean> align,
-            PrintStream output) {
+            PrintStream output, Section... sections) {
         ConfigManager configManager = getConfigManager();
         StringBuilder buf = new StringBuilder();
 
@@ -125,7 +141,7 @@
         // output header
         for (Column column : columns) {
             buf.append(column.ordinal() == 0 ? startDelim : midDelim);
-            pad(buf, StringUtils.capitalize(column.name().toLowerCase()),
+            pad(buf, getColumnDisplayFunction().apply(column),
                     align.computeIfAbsent(column, c -> false) ? 
calculateMaxWidth(column, column.name()) : 0);
         }
         buf.append(endDelim).append('\n');
@@ -138,22 +154,36 @@
         sepLine.append(endDelim).append('\n');
         buf.append(sepLine.toString().replace(' ', '-'));
 
-        for (Section section : getSections(configManager)) {
-            List<IOption> options = new 
ArrayList<>(getSectionOptions(configManager, section));
-            options.sort(Comparator.comparing(IOption::ini));
-            for (IOption option : options) {
-                for (Column column : columns) {
-                    buf.append(column.ordinal() == 0 ? startDelim : midDelim);
-                    if (column == Column.SECTION) {
-                        center(buf, extractValue(column, option), 
maxWidths.getOrDefault(column, 0));
-                    } else {
-                        pad(buf, extractValue(column, option), 
maxWidths.getOrDefault(column, 0));
-                    }
+        List<IOption> options = new ArrayList<>();
+
+        for (Section section : sections) {
+            options.addAll(getSectionOptions(configManager, section));
+        }
+        options.sort(Comparator.comparing(getIOptionNameDisplayFunction()));
+        for (IOption option : options) {
+            for (Column column : columns) {
+                buf.append(column.ordinal() == 0 ? startDelim : midDelim);
+                if (column == Column.SECTION) {
+                    center(buf, extractValue(column, option), 
maxWidths.getOrDefault(column, 0));
+                } else {
+                    pad(buf, extractValue(column, option), 
maxWidths.getOrDefault(column, 0));
                 }
-                buf.append(endDelim).append('\n');
             }
+            buf.append(endDelim).append('\n');
         }
         output.println(buf);
+    }
+
+    protected Function<Column, String> getColumnDisplayFunction() {
+        return column -> StringUtils.capitalize(column.name().toLowerCase());
+    }
+
+    protected Function<IOption, String> getIOptionNameDisplayFunction() {
+        return IOption::ini;
+    }
+
+    protected Function<Section, String> getSectionDisplayFunction() {
+        return Section::sectionName;
     }
 
     protected int calculateMaxWidth(IOption option, Column column) {
@@ -170,13 +200,13 @@
     private String extractValue(Column column, IOption option) {
         switch (column) {
             case SECTION:
-                return option.section().sectionName();
+                return getSectionDisplayFunction().apply(option.section());
             case PARAMETER:
-                return option.ini();
-            case MEANING:
+                return getIOptionNameDisplayFunction().apply(option);
+            case DESCRIPTION:
                 return option.description() == null ? "N/A" : 
option.description();
             case DEFAULT:
-                return configManager.defaultTextForUsage(option, IOption::ini);
+                return configManager.defaultTextForUsage(option, 
getIOptionNameDisplayFunction());
             default:
                 throw new IllegalStateException(String.valueOf(column));
         }
diff --git 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java
 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java
index cfd01ac..06fbe63 100644
--- 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java
+++ 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java
@@ -1263,7 +1263,7 @@
 
                 }
             } catch (Exception e) {
-                LOGGER.log(Level.FINE, "received exception on poll", e);
+                LOGGER.log(Level.INFO, "received exception on poll", e);
                 responsesReceived++;
                 if (isExpected(e, cUnit)) {
                     expectedException = true;

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1981
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I5c4a0a9face0f044353c187e311a9105ed14d7ca
Gerrit-PatchSet: 4
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Michael Blow <[email protected]>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins <[email protected]>
Gerrit-Reviewer: Michael Blow <[email protected]>
Gerrit-Reviewer: Murtadha Hubail <[email protected]>
Gerrit-Reviewer: Xikui Wang <[email protected]>

Reply via email to