Use one reflection util to assert all preferences
Reflection code to assert diff preferences existed twice and to assert
general preferences relection should be used as well.
Change-Id: I761909f929569f53ea0714d7c5403198a6c88ca5
Signed-off-by: Edwin Kempin <ekempin@google.com>
diff --git a/gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/AssertUtil.java b/gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/AssertUtil.java
new file mode 100644
index 0000000..a325feb
--- /dev/null
+++ b/gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/AssertUtil.java
@@ -0,0 +1,47 @@
+// Copyright (C) 2016 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.gerrit.acceptance;
+
+import static com.google.common.truth.Truth.assertWithMessage;
+import static com.google.gerrit.server.config.ConfigUtil.skipField;
+
+import java.lang.reflect.Field;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+public class AssertUtil {
+ public static <T> void assertPrefs(T actual, T expected,
+ String... fieldsToExclude)
+ throws IllegalArgumentException, IllegalAccessException {
+ Set<String> exludedFields = new HashSet<>(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.getName()).that(actualVal).isEqualTo(expectedVal);
+ }
+ }
+}
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/accounts/DiffPreferencesIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/accounts/DiffPreferencesIT.java
index bc18d30..a4707dc 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/accounts/DiffPreferencesIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/accounts/DiffPreferencesIT.java
@@ -15,9 +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.acceptance.AssertUtil.assertPrefs;
import static com.google.gerrit.acceptance.GitUtil.fetch;
-import static com.google.gerrit.server.config.ConfigUtil.skipField;
import com.google.gerrit.acceptance.AbstractDaemonTest;
import com.google.gerrit.acceptance.NoHttpd;
@@ -36,10 +35,6 @@
import org.junit.After;
import org.junit.Test;
-import java.lang.reflect.Field;
-import java.util.Arrays;
-import java.util.List;
-
@NoHttpd
public class DiffPreferencesIT extends AbstractDaemonTest {
@Inject
@@ -141,27 +136,4 @@
// assert hard-coded defaults
assertPrefs(o, d, "lineLength", "tabSize");
}
-
- 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);
- }
- }
}
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/accounts/GeneralPreferencesIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/accounts/GeneralPreferencesIT.java
index 337aa8e..6d8ae5c 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/accounts/GeneralPreferencesIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/accounts/GeneralPreferencesIT.java
@@ -15,6 +15,7 @@
package com.google.gerrit.acceptance.api.accounts;
import static com.google.common.truth.Truth.assertThat;
+import static com.google.gerrit.acceptance.AssertUtil.assertPrefs;
import com.google.gerrit.acceptance.AbstractDaemonTest;
import com.google.gerrit.acceptance.NoHttpd;
@@ -49,28 +50,8 @@
GeneralPreferencesInfo o = gApi.accounts()
.id(user42.id.toString())
.getPreferences();
- GeneralPreferencesInfo d = GeneralPreferencesInfo.defaults();
-
- assertThat(o.changesPerPage).isEqualTo(d.changesPerPage);
- assertThat(o.showSiteHeader).isEqualTo(d.showSiteHeader);
- assertThat(o.useFlashClipboard).isEqualTo(d.useFlashClipboard);
- assertThat(o.downloadScheme).isNull();
- assertThat(o.downloadCommand).isEqualTo(d.downloadCommand);
- assertThat(o.dateFormat).isEqualTo(d.getDateFormat());
- assertThat(o.timeFormat).isEqualTo(d.getTimeFormat());
- assertThat(o.emailStrategy).isEqualTo(d.getEmailStrategy());
- assertThat(o.relativeDateInChangeTable).isNull();
- assertThat(o.sizeBarInChangeTable).isEqualTo(d.sizeBarInChangeTable);
- assertThat(o.legacycidInChangeTable).isNull();
- assertThat(o.muteCommonPathPrefixes).isEqualTo(
- d.muteCommonPathPrefixes);
- assertThat(o.signedOffBy).isNull();
- assertThat(o.reviewCategoryStrategy).isEqualTo(
- d.getReviewCategoryStrategy());
- assertThat(o.diffView).isEqualTo(d.getDiffView());
-
+ assertPrefs(o, GeneralPreferencesInfo.defaults(), "my");
assertThat(o.my).hasSize(7);
- assertThat(o.urlAliases).isNull();
GeneralPreferencesInfo i = GeneralPreferencesInfo.defaults();
@@ -97,25 +78,7 @@
o = gApi.accounts()
.id(user42.getId().toString())
.setPreferences(i);
-
- assertThat(o.changesPerPage).isEqualTo(i.changesPerPage);
- assertThat(o.showSiteHeader).isNull();
- assertThat(o.useFlashClipboard).isNull();
- assertThat(o.downloadScheme).isNull();
- assertThat(o.downloadCommand).isEqualTo(i.downloadCommand);
- assertThat(o.dateFormat).isEqualTo(i.getDateFormat());
- assertThat(o.timeFormat).isEqualTo(i.getTimeFormat());
- assertThat(o.emailStrategy).isEqualTo(i.emailStrategy);
- assertThat(o.relativeDateInChangeTable).isEqualTo(
- i.relativeDateInChangeTable);
- assertThat(o.sizeBarInChangeTable).isNull();
- assertThat(o.legacycidInChangeTable).isEqualTo(i.legacycidInChangeTable);
- assertThat(o.muteCommonPathPrefixes).isNull();
- assertThat(o.signedOffBy).isEqualTo(i.signedOffBy);
- assertThat(o.reviewCategoryStrategy).isEqualTo(
- i.getReviewCategoryStrategy());
- assertThat(o.diffView).isEqualTo(i.getDiffView());
+ assertPrefs(o, i, "my");
assertThat(o.my).hasSize(1);
- assertThat(o.urlAliases).hasSize(1);
}
}
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/config/DiffPreferencesIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/config/DiffPreferencesIT.java
index b6c02dc..f6380eb 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/config/DiffPreferencesIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/config/DiffPreferencesIT.java
@@ -15,7 +15,7 @@
package com.google.gerrit.acceptance.rest.config;
import static com.google.common.truth.Truth.assertThat;
-import static com.google.gerrit.server.config.ConfigUtil.skipField;
+import static com.google.gerrit.acceptance.AssertUtil.assertPrefs;
import com.google.gerrit.acceptance.AbstractDaemonTest;
import com.google.gerrit.acceptance.NoHttpd;
@@ -23,8 +23,6 @@
import org.junit.Test;
-import java.lang.reflect.Field;
-
@NoHttpd
public class DiffPreferencesIT extends AbstractDaemonTest {
@@ -32,7 +30,7 @@
public void getDiffPreferences() throws Exception {
DiffPreferencesInfo result =
gApi.config().server().getDefaultDiffPreferences();
- assertPrefsEqual(result, DiffPreferencesInfo.defaults());
+ assertPrefs(result, DiffPreferencesInfo.defaults());
}
@Test
@@ -47,23 +45,6 @@
result = gApi.config().server().getDefaultDiffPreferences();
DiffPreferencesInfo expected = DiffPreferencesInfo.defaults();
expected.lineLength = newLineLength;
- assertPrefsEqual(result, expected);
- }
-
- private void assertPrefsEqual(DiffPreferencesInfo actual,
- DiffPreferencesInfo expected) throws Exception {
- for (Field field : actual.getClass().getDeclaredFields()) {
- if (skipField(field)) {
- continue;
- }
- Object actualField = field.get(actual);
- Object expectedField = field.get(expected);
- Class<?> type = field.getType();
- if ((type == boolean.class || type == Boolean.class)
- && actualField == null) {
- continue;
- }
- assertThat(actualField).named(field.getName()).isEqualTo(expectedField);
- }
+ assertPrefs(result, expected);
}
}