DiffPreferencesIT: Use reflection to assert the preferences

This avoids hard-coding all of the preferences and continues working
when the set of preferences changes.

Change-Id: I1b63f67425a2f4042c7582447ef1f2d1268faef6
Signed-off-by: Edwin Kempin <ekempin@google.com>
This commit is contained in:
Edwin Kempin
2016-06-03 15:05:26 +02:00
parent 1e39e2cfec
commit d4bc83c0ab

View File

@@ -15,6 +15,8 @@
package com.google.gerrit.acceptance.api.accounts; package com.google.gerrit.acceptance.api.accounts;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static com.google.common.truth.Truth.assertWithMessage;
import static com.google.gerrit.server.config.ConfigUtil.skipField;
import com.google.gerrit.acceptance.AbstractDaemonTest; import com.google.gerrit.acceptance.AbstractDaemonTest;
import com.google.gerrit.acceptance.NoHttpd; import com.google.gerrit.acceptance.NoHttpd;
@@ -24,6 +26,10 @@ import com.google.gerrit.extensions.client.Theme;
import org.junit.Test; import org.junit.Test;
import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.List;
@NoHttpd @NoHttpd
public class DiffPreferencesIT extends AbstractDaemonTest { public class DiffPreferencesIT extends AbstractDaemonTest {
@Test @Test
@@ -32,30 +38,7 @@ public class DiffPreferencesIT extends AbstractDaemonTest {
DiffPreferencesInfo o = gApi.accounts() DiffPreferencesInfo o = gApi.accounts()
.id(admin.getId().toString()) .id(admin.getId().toString())
.getDiffPreferences(); .getDiffPreferences();
assertPrefs(o, d);
assertThat(o.context).isEqualTo(d.context);
assertThat(o.tabSize).isEqualTo(d.tabSize);
assertThat(o.lineLength).isEqualTo(d.lineLength);
assertThat(o.cursorBlinkRate).isEqualTo(d.cursorBlinkRate);
assertThat(o.expandAllComments).isNull();
assertThat(o.intralineDifference).isEqualTo(d.intralineDifference);
assertThat(o.manualReview).isNull();
assertThat(o.retainHeader).isNull();
assertThat(o.showLineEndings).isEqualTo(d.showLineEndings);
assertThat(o.showTabs).isEqualTo(d.showTabs);
assertThat(o.showWhitespaceErrors).isEqualTo(d.showWhitespaceErrors);
assertThat(o.skipDeleted).isNull();
assertThat(o.skipUnchanged).isNull();
assertThat(o.skipUncommented).isNull();
assertThat(o.syntaxHighlighting).isEqualTo(d.syntaxHighlighting);
assertThat(o.hideTopMenu).isNull();
assertThat(o.autoHideDiffTableHeader).isEqualTo(d.autoHideDiffTableHeader);
assertThat(o.hideLineNumbers).isNull();
assertThat(o.renderEntireFile).isNull();
assertThat(o.hideEmptyPane).isNull();
assertThat(o.matchBrackets).isNull();
assertThat(o.ignoreWhitespace).isEqualTo(d.ignoreWhitespace);
assertThat(o.theme).isEqualTo(d.theme);
} }
@Test @Test
@@ -90,30 +73,7 @@ public class DiffPreferencesIT extends AbstractDaemonTest {
DiffPreferencesInfo o = gApi.accounts() DiffPreferencesInfo o = gApi.accounts()
.id(admin.getId().toString()) .id(admin.getId().toString())
.setDiffPreferences(i); .setDiffPreferences(i);
assertPrefs(o, i);
assertThat(o.context).isEqualTo(i.context);
assertThat(o.tabSize).isEqualTo(i.tabSize);
assertThat(o.lineLength).isEqualTo(i.lineLength);
assertThat(o.cursorBlinkRate).isEqualTo(i.cursorBlinkRate);
assertThat(o.expandAllComments).isEqualTo(i.expandAllComments);
assertThat(o.intralineDifference).isNull();
assertThat(o.manualReview).isEqualTo(i.manualReview);
assertThat(o.retainHeader).isEqualTo(i.retainHeader);
assertThat(o.showLineEndings).isNull();
assertThat(o.showTabs).isNull();
assertThat(o.showWhitespaceErrors).isNull();
assertThat(o.skipDeleted).isEqualTo(i.skipDeleted);
assertThat(o.skipUnchanged).isEqualTo(i.skipUnchanged);
assertThat(o.skipUncommented).isEqualTo(i.skipUncommented);
assertThat(o.syntaxHighlighting).isNull();
assertThat(o.hideTopMenu).isEqualTo(i.hideTopMenu);
assertThat(o.autoHideDiffTableHeader).isNull();
assertThat(o.hideLineNumbers).isEqualTo(i.hideLineNumbers);
assertThat(o.renderEntireFile).isEqualTo(i.renderEntireFile);
assertThat(o.hideEmptyPane).isEqualTo(i.hideEmptyPane);
assertThat(o.matchBrackets).isEqualTo(i.matchBrackets);
assertThat(o.ignoreWhitespace).isEqualTo(i.ignoreWhitespace);
assertThat(o.theme).isEqualTo(i.theme);
// Partially fill input record // Partially fill input record
i = new DiffPreferencesInfo(); i = new DiffPreferencesInfo();
@@ -121,27 +81,30 @@ public class DiffPreferencesIT extends AbstractDaemonTest {
DiffPreferencesInfo a = gApi.accounts() DiffPreferencesInfo a = gApi.accounts()
.id(admin.getId().toString()) .id(admin.getId().toString())
.setDiffPreferences(i); .setDiffPreferences(i);
assertPrefs(a, o, "tabSize");
assertThat(a.context).isEqualTo(o.context);
assertThat(a.tabSize).isEqualTo(42); assertThat(a.tabSize).isEqualTo(42);
assertThat(a.lineLength).isEqualTo(o.lineLength); }
assertThat(a.expandAllComments).isEqualTo(o.expandAllComments);
assertThat(a.intralineDifference).isNull(); private static void assertPrefs(DiffPreferencesInfo actual,
assertThat(a.manualReview).isEqualTo(o.manualReview); DiffPreferencesInfo expected, String... fieldsToExclude)
assertThat(a.retainHeader).isEqualTo(o.retainHeader); throws IllegalArgumentException, IllegalAccessException {
assertThat(a.showLineEndings).isNull(); List<String> exludedFields = Arrays.asList(fieldsToExclude);
assertThat(a.showTabs).isNull(); for (Field field : actual.getClass().getDeclaredFields()) {
assertThat(a.showWhitespaceErrors).isNull(); if (exludedFields.contains(field.getName()) || skipField(field)) {
assertThat(a.skipDeleted).isEqualTo(o.skipDeleted); continue;
assertThat(a.skipUnchanged).isEqualTo(o.skipUnchanged); }
assertThat(a.skipUncommented).isEqualTo(o.skipUncommented); Object actualVal = field.get(actual);
assertThat(a.syntaxHighlighting).isNull(); Object expectedVal = field.get(expected);
assertThat(a.hideTopMenu).isEqualTo(o.hideTopMenu); if (field.getType().isAssignableFrom(Boolean.class)) {
assertThat(a.autoHideDiffTableHeader).isNull(); if (actualVal == null) {
assertThat(a.hideLineNumbers).isEqualTo(o.hideLineNumbers); actualVal = false;
assertThat(a.renderEntireFile).isEqualTo(o.renderEntireFile); }
assertThat(a.hideEmptyPane).isEqualTo(o.hideEmptyPane); if (expectedVal == null) {
assertThat(a.ignoreWhitespace).isEqualTo(o.ignoreWhitespace); expectedVal = false;
assertThat(a.theme).isEqualTo(o.theme); }
}
assertWithMessage("field " + field.getName()).that(actualVal)
.isEqualTo(expectedVal);
}
} }
} }