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