From 5f040fb4321348371654308cdccc0fbd9e796b37 Mon Sep 17 00:00:00 2001 From: Chris Povirk Date: Tue, 4 Jun 2019 16:46:24 -0400 Subject: [PATCH] Extend raw Subject instead of supplying type parameters. The type parameters are being removed from Subject. This CL will temporarily produce rawtypes warnings, which will go away when I remove the type parameters (as soon as this batch of CLs is submitted -- see https://github.com/google/truth/releases/tag/release_0_45). Similarly, this CL changes custom subjects to extend raw ComparableSubject instead of supplying type parameters. The self-type parameter is being removed from ComparableSubject. In order to remove one type parameter while leaving the other in place, it's necessary either to make an atomic change (which is tricky for third-party code) or to temporarily remove *both* type parameters and then put the one back. This CL implements the latter. Again, this CL will temporarily produce rawtypes warnings -- and temporarily eliminate type-checking of calls to the ComparableSubject methods -- which will go away when I remove the type parameters (as soon as this batch of CLs is submitted). This change requires Truth 0.45, which you've already updated to. Change-Id: I75f3d1510b4c0cb06fd272b48be65e0cfd61973e --- .../acceptance/AbstractNotificationTest.java | 3 +-- .../data/testing/GroupReferenceSubject.java | 5 ++-- .../common/testing/CommitInfoSubject.java | 2 +- .../common/testing/ContentEntrySubject.java | 2 +- .../common/testing/DiffInfoSubject.java | 5 ++-- .../common/testing/EditInfoSubject.java | 2 +- .../common/testing/FileInfoSubject.java | 4 +-- .../common/testing/FileMetaSubject.java | 2 +- .../testing/FixReplacementInfoSubject.java | 3 +-- .../testing/FixSuggestionInfoSubject.java | 2 +- .../common/testing/GitPersonSubject.java | 5 ++-- .../common/testing/RangeSubject.java | 2 +- .../testing/RobotCommentInfoSubject.java | 2 +- .../restapi/testing/BinaryResultSubject.java | 2 +- .../gerrit/git/testing/CommitSubject.java | 2 +- .../gerrit/git/testing/ObjectIdSubject.java | 2 +- .../gerrit/git/testing/PushResultSubject.java | 5 ++-- .../index/query/testing/TreeSubject.java | 2 +- .../proto/testing/SerializedClassSubject.java | 2 +- .../group/testing/InternalGroupSubject.java | 17 ++++++------- .../gerrit/truth/CacheStatsSubject.java | 2 +- .../google/gerrit/truth/ConfigSubject.java | 2 +- java/com/google/gerrit/truth/ListSubject.java | 8 +++--- .../google/gerrit/truth/OptionalSubject.java | 25 +++++++------------ .../ChangeFileContentModificationSubject.java | 3 +-- .../edit/tree/TreeModificationSubject.java | 2 +- 26 files changed, 48 insertions(+), 65 deletions(-) diff --git a/java/com/google/gerrit/acceptance/AbstractNotificationTest.java b/java/com/google/gerrit/acceptance/AbstractNotificationTest.java index c6f9d32fe3..f62ccfb1d2 100644 --- a/java/com/google/gerrit/acceptance/AbstractNotificationTest.java +++ b/java/com/google/gerrit/acceptance/AbstractNotificationTest.java @@ -95,8 +95,7 @@ public abstract class AbstractNotificationTest extends AbstractDaemonTest { gApi.accounts().self().setPreferences(prefs); } - protected static class FakeEmailSenderSubject - extends Subject { + protected static class FakeEmailSenderSubject extends Subject { private final FakeEmailSender fakeEmailSender; private Message message; private StagedUsers users; diff --git a/java/com/google/gerrit/common/data/testing/GroupReferenceSubject.java b/java/com/google/gerrit/common/data/testing/GroupReferenceSubject.java index 61263fcb8e..b65f64b3be 100644 --- a/java/com/google/gerrit/common/data/testing/GroupReferenceSubject.java +++ b/java/com/google/gerrit/common/data/testing/GroupReferenceSubject.java @@ -21,9 +21,8 @@ import com.google.common.truth.FailureMetadata; import com.google.common.truth.StringSubject; import com.google.common.truth.Subject; import com.google.gerrit.common.data.GroupReference; -import com.google.gerrit.reviewdb.client.AccountGroup; -public class GroupReferenceSubject extends Subject { +public class GroupReferenceSubject extends Subject { public static GroupReferenceSubject assertThat(GroupReference group) { return assertAbout(groupReferences()).that(group); @@ -40,7 +39,7 @@ public class GroupReferenceSubject extends Subject groupUuid() { + public ComparableSubject groupUuid() { isNotNull(); return check("getUUID()").that(group.getUUID()); } diff --git a/java/com/google/gerrit/extensions/common/testing/CommitInfoSubject.java b/java/com/google/gerrit/extensions/common/testing/CommitInfoSubject.java index d827108575..d6fcb37524 100644 --- a/java/com/google/gerrit/extensions/common/testing/CommitInfoSubject.java +++ b/java/com/google/gerrit/extensions/common/testing/CommitInfoSubject.java @@ -24,7 +24,7 @@ import com.google.common.truth.Subject; import com.google.gerrit.extensions.common.CommitInfo; import com.google.gerrit.truth.ListSubject; -public class CommitInfoSubject extends Subject { +public class CommitInfoSubject extends Subject { public static CommitInfoSubject assertThat(CommitInfo commitInfo) { return assertAbout(commits()).that(commitInfo); diff --git a/java/com/google/gerrit/extensions/common/testing/ContentEntrySubject.java b/java/com/google/gerrit/extensions/common/testing/ContentEntrySubject.java index e7aa01db19..b55f7c209a 100644 --- a/java/com/google/gerrit/extensions/common/testing/ContentEntrySubject.java +++ b/java/com/google/gerrit/extensions/common/testing/ContentEntrySubject.java @@ -27,7 +27,7 @@ import com.google.common.truth.Subject; import com.google.gerrit.extensions.common.DiffInfo.ContentEntry; import com.google.gerrit.truth.ListSubject; -public class ContentEntrySubject extends Subject { +public class ContentEntrySubject extends Subject { public static ContentEntrySubject assertThat(ContentEntry contentEntry) { return assertAbout(contentEntries()).that(contentEntry); diff --git a/java/com/google/gerrit/extensions/common/testing/DiffInfoSubject.java b/java/com/google/gerrit/extensions/common/testing/DiffInfoSubject.java index 13227936a0..c94dc27bec 100644 --- a/java/com/google/gerrit/extensions/common/testing/DiffInfoSubject.java +++ b/java/com/google/gerrit/extensions/common/testing/DiffInfoSubject.java @@ -21,12 +21,11 @@ import static com.google.gerrit.truth.ListSubject.elements; import com.google.common.truth.ComparableSubject; import com.google.common.truth.FailureMetadata; import com.google.common.truth.Subject; -import com.google.gerrit.extensions.common.ChangeType; import com.google.gerrit.extensions.common.DiffInfo; import com.google.gerrit.extensions.common.DiffInfo.ContentEntry; import com.google.gerrit.truth.ListSubject; -public class DiffInfoSubject extends Subject { +public class DiffInfoSubject extends Subject { public static DiffInfoSubject assertThat(DiffInfo diffInfo) { return assertAbout(DiffInfoSubject::new).that(diffInfo); @@ -46,7 +45,7 @@ public class DiffInfoSubject extends Subject { .thatCustom(diffInfo.content, ContentEntrySubject.contentEntries()); } - public ComparableSubject changeType() { + public ComparableSubject changeType() { isNotNull(); return check("changeType").that(diffInfo.changeType); } diff --git a/java/com/google/gerrit/extensions/common/testing/EditInfoSubject.java b/java/com/google/gerrit/extensions/common/testing/EditInfoSubject.java index 25db1fe9e7..b5622e02ce 100644 --- a/java/com/google/gerrit/extensions/common/testing/EditInfoSubject.java +++ b/java/com/google/gerrit/extensions/common/testing/EditInfoSubject.java @@ -24,7 +24,7 @@ import com.google.gerrit.extensions.common.EditInfo; import com.google.gerrit.truth.OptionalSubject; import java.util.Optional; -public class EditInfoSubject extends Subject { +public class EditInfoSubject extends Subject { public static EditInfoSubject assertThat(EditInfo editInfo) { return assertAbout(edits()).that(editInfo); diff --git a/java/com/google/gerrit/extensions/common/testing/FileInfoSubject.java b/java/com/google/gerrit/extensions/common/testing/FileInfoSubject.java index 27d3f0ee92..35e67a6f1e 100644 --- a/java/com/google/gerrit/extensions/common/testing/FileInfoSubject.java +++ b/java/com/google/gerrit/extensions/common/testing/FileInfoSubject.java @@ -22,7 +22,7 @@ import com.google.common.truth.IntegerSubject; import com.google.common.truth.Subject; import com.google.gerrit.extensions.common.FileInfo; -public class FileInfoSubject extends Subject { +public class FileInfoSubject extends Subject { public static FileInfoSubject assertThat(FileInfo fileInfo) { return assertAbout(FileInfoSubject::new).that(fileInfo); @@ -45,7 +45,7 @@ public class FileInfoSubject extends Subject { return check("linesDeleted").that(fileInfo.linesDeleted); } - public ComparableSubject status() { + public ComparableSubject status() { isNotNull(); return check("status").that(fileInfo.status); } diff --git a/java/com/google/gerrit/extensions/common/testing/FileMetaSubject.java b/java/com/google/gerrit/extensions/common/testing/FileMetaSubject.java index 6cac80dde4..fb09a1ff9b 100644 --- a/java/com/google/gerrit/extensions/common/testing/FileMetaSubject.java +++ b/java/com/google/gerrit/extensions/common/testing/FileMetaSubject.java @@ -21,7 +21,7 @@ import com.google.common.truth.IntegerSubject; import com.google.common.truth.Subject; import com.google.gerrit.extensions.common.DiffInfo.FileMeta; -public class FileMetaSubject extends Subject { +public class FileMetaSubject extends Subject { public static FileMetaSubject assertThat(FileMeta fileMeta) { return assertAbout(fileMetas()).that(fileMeta); diff --git a/java/com/google/gerrit/extensions/common/testing/FixReplacementInfoSubject.java b/java/com/google/gerrit/extensions/common/testing/FixReplacementInfoSubject.java index 1ecc604cb7..9ba69dc2d3 100644 --- a/java/com/google/gerrit/extensions/common/testing/FixReplacementInfoSubject.java +++ b/java/com/google/gerrit/extensions/common/testing/FixReplacementInfoSubject.java @@ -22,8 +22,7 @@ import com.google.common.truth.StringSubject; import com.google.common.truth.Subject; import com.google.gerrit.extensions.common.FixReplacementInfo; -public class FixReplacementInfoSubject - extends Subject { +public class FixReplacementInfoSubject extends Subject { public static FixReplacementInfoSubject assertThat(FixReplacementInfo fixReplacementInfo) { return assertAbout(fixReplacements()).that(fixReplacementInfo); diff --git a/java/com/google/gerrit/extensions/common/testing/FixSuggestionInfoSubject.java b/java/com/google/gerrit/extensions/common/testing/FixSuggestionInfoSubject.java index 1e95907d83..4ac725adc9 100644 --- a/java/com/google/gerrit/extensions/common/testing/FixSuggestionInfoSubject.java +++ b/java/com/google/gerrit/extensions/common/testing/FixSuggestionInfoSubject.java @@ -25,7 +25,7 @@ import com.google.gerrit.extensions.common.FixReplacementInfo; import com.google.gerrit.extensions.common.FixSuggestionInfo; import com.google.gerrit.truth.ListSubject; -public class FixSuggestionInfoSubject extends Subject { +public class FixSuggestionInfoSubject extends Subject { public static FixSuggestionInfoSubject assertThat(FixSuggestionInfo fixSuggestionInfo) { return assertAbout(fixSuggestions()).that(fixSuggestionInfo); diff --git a/java/com/google/gerrit/extensions/common/testing/GitPersonSubject.java b/java/com/google/gerrit/extensions/common/testing/GitPersonSubject.java index c9f5a79ce1..556464264e 100644 --- a/java/com/google/gerrit/extensions/common/testing/GitPersonSubject.java +++ b/java/com/google/gerrit/extensions/common/testing/GitPersonSubject.java @@ -23,11 +23,10 @@ import com.google.common.truth.IntegerSubject; import com.google.common.truth.StringSubject; import com.google.common.truth.Subject; import com.google.gerrit.extensions.common.GitPerson; -import java.sql.Timestamp; import java.util.Date; import org.eclipse.jgit.lib.PersonIdent; -public class GitPersonSubject extends Subject { +public class GitPersonSubject extends Subject { public static GitPersonSubject assertThat(GitPerson gitPerson) { return assertAbout(gitPersons()).that(gitPerson); @@ -54,7 +53,7 @@ public class GitPersonSubject extends Subject { return check("email").that(gitPerson.email); } - public ComparableSubject date() { + public ComparableSubject date() { isNotNull(); return check("date").that(gitPerson.date); } diff --git a/java/com/google/gerrit/extensions/common/testing/RangeSubject.java b/java/com/google/gerrit/extensions/common/testing/RangeSubject.java index 0d049e0d7b..10abca2459 100644 --- a/java/com/google/gerrit/extensions/common/testing/RangeSubject.java +++ b/java/com/google/gerrit/extensions/common/testing/RangeSubject.java @@ -22,7 +22,7 @@ import com.google.common.truth.IntegerSubject; import com.google.common.truth.Subject; import com.google.gerrit.extensions.client.Comment; -public class RangeSubject extends Subject { +public class RangeSubject extends Subject { public static RangeSubject assertThat(Comment.Range range) { return assertAbout(ranges()).that(range); diff --git a/java/com/google/gerrit/extensions/common/testing/RobotCommentInfoSubject.java b/java/com/google/gerrit/extensions/common/testing/RobotCommentInfoSubject.java index 0a531547a2..0698735acf 100644 --- a/java/com/google/gerrit/extensions/common/testing/RobotCommentInfoSubject.java +++ b/java/com/google/gerrit/extensions/common/testing/RobotCommentInfoSubject.java @@ -24,7 +24,7 @@ import com.google.gerrit.extensions.common.RobotCommentInfo; import com.google.gerrit.truth.ListSubject; import java.util.List; -public class RobotCommentInfoSubject extends Subject { +public class RobotCommentInfoSubject extends Subject { public static ListSubject assertThatList( List robotCommentInfos) { diff --git a/java/com/google/gerrit/extensions/restapi/testing/BinaryResultSubject.java b/java/com/google/gerrit/extensions/restapi/testing/BinaryResultSubject.java index d492aa2eb0..c5304e386e 100644 --- a/java/com/google/gerrit/extensions/restapi/testing/BinaryResultSubject.java +++ b/java/com/google/gerrit/extensions/restapi/testing/BinaryResultSubject.java @@ -26,7 +26,7 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.Optional; -public class BinaryResultSubject extends Subject { +public class BinaryResultSubject extends Subject { public static BinaryResultSubject assertThat(BinaryResult binaryResult) { return assertAbout(binaryResults()).that(binaryResult); diff --git a/java/com/google/gerrit/git/testing/CommitSubject.java b/java/com/google/gerrit/git/testing/CommitSubject.java index 4d02313d99..41eb45b75d 100644 --- a/java/com/google/gerrit/git/testing/CommitSubject.java +++ b/java/com/google/gerrit/git/testing/CommitSubject.java @@ -24,7 +24,7 @@ import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.revwalk.RevCommit; /** Subject over JGit {@link RevCommit}s. */ -public class CommitSubject extends Subject { +public class CommitSubject extends Subject { /** * Constructs a new subject. diff --git a/java/com/google/gerrit/git/testing/ObjectIdSubject.java b/java/com/google/gerrit/git/testing/ObjectIdSubject.java index 5a992295ed..0cfc56396e 100644 --- a/java/com/google/gerrit/git/testing/ObjectIdSubject.java +++ b/java/com/google/gerrit/git/testing/ObjectIdSubject.java @@ -20,7 +20,7 @@ import com.google.common.truth.FailureMetadata; import com.google.common.truth.Subject; import org.eclipse.jgit.lib.ObjectId; -public class ObjectIdSubject extends Subject { +public class ObjectIdSubject extends Subject { public static ObjectIdSubject assertThat(ObjectId objectId) { return assertAbout(objectIds()).that(objectId); } diff --git a/java/com/google/gerrit/git/testing/PushResultSubject.java b/java/com/google/gerrit/git/testing/PushResultSubject.java index 9ff4c3b02b..9a46632c30 100644 --- a/java/com/google/gerrit/git/testing/PushResultSubject.java +++ b/java/com/google/gerrit/git/testing/PushResultSubject.java @@ -32,7 +32,7 @@ import com.google.gerrit.common.Nullable; import org.eclipse.jgit.transport.PushResult; import org.eclipse.jgit.transport.RemoteRefUpdate; -public class PushResultSubject extends Subject { +public class PushResultSubject extends Subject { public static PushResultSubject assertThat(PushResult actual) { return assertAbout(PushResultSubject::new).that(actual); } @@ -139,8 +139,7 @@ public class PushResultSubject extends Subject { return ref(refName); } - public static class RemoteRefUpdateSubject - extends Subject { + public static class RemoteRefUpdateSubject extends Subject { private final RemoteRefUpdate remoteRefUpdate; private RemoteRefUpdateSubject(FailureMetadata metadata, RemoteRefUpdate remoteRefUpdate) { diff --git a/java/com/google/gerrit/index/query/testing/TreeSubject.java b/java/com/google/gerrit/index/query/testing/TreeSubject.java index 46c3895908..7d2b868bd9 100644 --- a/java/com/google/gerrit/index/query/testing/TreeSubject.java +++ b/java/com/google/gerrit/index/query/testing/TreeSubject.java @@ -23,7 +23,7 @@ import com.google.common.truth.Subject; import com.google.gerrit.index.query.QueryParser; import org.antlr.runtime.tree.Tree; -public class TreeSubject extends Subject { +public class TreeSubject extends Subject { public static TreeSubject assertThat(Tree actual) { return assertAbout(TreeSubject::new).that(actual); } diff --git a/java/com/google/gerrit/proto/testing/SerializedClassSubject.java b/java/com/google/gerrit/proto/testing/SerializedClassSubject.java index b078217fd7..e7dc276830 100644 --- a/java/com/google/gerrit/proto/testing/SerializedClassSubject.java +++ b/java/com/google/gerrit/proto/testing/SerializedClassSubject.java @@ -48,7 +48,7 @@ import org.apache.commons.lang3.reflect.FieldUtils; * the hand-written serializer. Usually, serializer implementations should be written in such a way * that new fields are considered optional, and won't require bumping the version. */ -public class SerializedClassSubject extends Subject> { +public class SerializedClassSubject extends Subject { public static SerializedClassSubject assertThatSerializedClass(Class actual) { // This formulation fails in Eclipse 4.7.3a with "The type // SerializedClassSubject does not define SerializedClassSubject() that is diff --git a/java/com/google/gerrit/server/group/testing/InternalGroupSubject.java b/java/com/google/gerrit/server/group/testing/InternalGroupSubject.java index 0b24f8c6f8..79bd005564 100644 --- a/java/com/google/gerrit/server/group/testing/InternalGroupSubject.java +++ b/java/com/google/gerrit/server/group/testing/InternalGroupSubject.java @@ -22,12 +22,9 @@ import com.google.common.truth.FailureMetadata; import com.google.common.truth.IterableSubject; import com.google.common.truth.StringSubject; import com.google.common.truth.Subject; -import com.google.gerrit.reviewdb.client.AccountGroup; import com.google.gerrit.server.group.InternalGroup; -import java.sql.Timestamp; -import org.eclipse.jgit.lib.ObjectId; -public class InternalGroupSubject extends Subject { +public class InternalGroupSubject extends Subject { public static InternalGroupSubject assertThat(InternalGroup group) { return assertAbout(internalGroups()).that(group); @@ -44,12 +41,12 @@ public class InternalGroupSubject extends Subject groupUuid() { + public ComparableSubject groupUuid() { isNotNull(); return check("getGroupUUID()").that(group.getGroupUUID()); } - public ComparableSubject nameKey() { + public ComparableSubject nameKey() { isNotNull(); return check("getNameKey()").that(group.getNameKey()); } @@ -59,7 +56,7 @@ public class InternalGroupSubject extends Subject id() { + public Subject id() { isNotNull(); return check("getId()").that(group.getId()); } @@ -69,7 +66,7 @@ public class InternalGroupSubject extends Subject ownerGroupUuid() { + public ComparableSubject ownerGroupUuid() { isNotNull(); return check("getOwnerGroupUUID()").that(group.getOwnerGroupUUID()); } @@ -79,7 +76,7 @@ public class InternalGroupSubject extends Subject createdOn() { + public ComparableSubject createdOn() { isNotNull(); return check("getCreatedOn()").that(group.getCreatedOn()); } @@ -94,7 +91,7 @@ public class InternalGroupSubject extends Subject refState() { + public ComparableSubject refState() { isNotNull(); return check("getRefState()").that(group.getRefState()); } diff --git a/java/com/google/gerrit/truth/CacheStatsSubject.java b/java/com/google/gerrit/truth/CacheStatsSubject.java index 22c33c211a..ff943341cf 100644 --- a/java/com/google/gerrit/truth/CacheStatsSubject.java +++ b/java/com/google/gerrit/truth/CacheStatsSubject.java @@ -24,7 +24,7 @@ import com.google.gerrit.common.UsedAt; import com.google.gerrit.common.UsedAt.Project; @UsedAt(Project.PLUGINS_ALL) -public class CacheStatsSubject extends Subject { +public class CacheStatsSubject extends Subject { public static CacheStatsSubject assertThat(CacheStats stats) { return assertAbout(CacheStatsSubject::new).that(stats); } diff --git a/java/com/google/gerrit/truth/ConfigSubject.java b/java/com/google/gerrit/truth/ConfigSubject.java index 615719a16f..dd55b7115e 100644 --- a/java/com/google/gerrit/truth/ConfigSubject.java +++ b/java/com/google/gerrit/truth/ConfigSubject.java @@ -30,7 +30,7 @@ import com.google.gerrit.common.Nullable; import java.util.Arrays; import org.eclipse.jgit.lib.Config; -public class ConfigSubject extends Subject { +public class ConfigSubject extends Subject { public static ConfigSubject assertThat(Config config) { return assertAbout(ConfigSubject::new).that(config); } diff --git a/java/com/google/gerrit/truth/ListSubject.java b/java/com/google/gerrit/truth/ListSubject.java index 0da16f8dcd..bee7408105 100644 --- a/java/com/google/gerrit/truth/ListSubject.java +++ b/java/com/google/gerrit/truth/ListSubject.java @@ -27,12 +27,12 @@ import com.google.common.truth.Subject; import java.util.List; import java.util.function.BiFunction; -public class ListSubject, E> extends IterableSubject { +public class ListSubject extends IterableSubject { private final List list; private final BiFunction elementSubjectCreator; - public static , E> ListSubject assertThat( + public static ListSubject assertThat( List list, Subject.Factory subjectFactory) { return assertAbout(elements()).thatCustom(list, subjectFactory); } @@ -77,12 +77,12 @@ public class ListSubject, E> extends IterableSubject { super(failureMetadata); } - public , E> ListSubject thatCustom( + public ListSubject thatCustom( List list, Subject.Factory subjectFactory) { return that(list, (builder, element) -> builder.about(subjectFactory).that(element)); } - public , E> ListSubject that( + public ListSubject that( List list, BiFunction elementSubjectCreator) { return new ListSubject<>(metadata(), list, elementSubjectCreator); } diff --git a/java/com/google/gerrit/truth/OptionalSubject.java b/java/com/google/gerrit/truth/OptionalSubject.java index dd1e419a49..a87dff1b0d 100644 --- a/java/com/google/gerrit/truth/OptionalSubject.java +++ b/java/com/google/gerrit/truth/OptionalSubject.java @@ -18,7 +18,6 @@ import static com.google.common.truth.Fact.fact; import static com.google.common.truth.Truth.assertAbout; import com.google.common.truth.CustomSubjectBuilder; -import com.google.common.truth.DefaultSubject; import com.google.common.truth.FailureMetadata; import com.google.common.truth.StandardSubjectBuilder; import com.google.common.truth.Subject; @@ -26,32 +25,26 @@ import java.util.Optional; import java.util.function.BiFunction; import java.util.function.Function; -public class OptionalSubject, T> - extends Subject, Optional> { +public class OptionalSubject extends Subject { private final Optional optional; private final BiFunction valueSubjectCreator; // TODO(aliceks): Remove when all relevant usages are adapted to new check()/factory approach. - public static , T> OptionalSubject assertThat( + public static OptionalSubject assertThat( Optional optional, Function elementAssertThatFunction) { Subject.Factory valueSubjectFactory = (metadata, value) -> elementAssertThatFunction.apply(value); return assertThat(optional, valueSubjectFactory); } - public static , T> OptionalSubject assertThat( + public static OptionalSubject assertThat( Optional optional, Subject.Factory valueSubjectFactory) { return assertAbout(optionals()).thatCustom(optional, valueSubjectFactory); } - public static OptionalSubject assertThat(Optional optional) { - // Unfortunately, we need to cast to DefaultSubject as StandardSubjectBuilder#that - // only returns Subject. There shouldn't be a way - // for that method not to return a DefaultSubject because the generic type - // definitions of a Subject are quite strict. - return assertAbout(optionals()) - .that(optional, (builder, value) -> (DefaultSubject) builder.that(value)); + public static OptionalSubject assertThat(Optional optional) { + return assertAbout(optionals()).that(optional); } public static CustomSubjectBuilder.Factory optionals() { @@ -97,16 +90,16 @@ public class OptionalSubject, T> super(failureMetadata); } - public , T> OptionalSubject thatCustom( + public OptionalSubject thatCustom( Optional optional, Subject.Factory valueSubjectFactory) { return that(optional, (builder, value) -> builder.about(valueSubjectFactory).that(value)); } - public OptionalSubject that(Optional optional) { - return that(optional, (builder, value) -> (DefaultSubject) builder.that(value)); + public OptionalSubject that(Optional optional) { + return that(optional, StandardSubjectBuilder::that); } - public , T> OptionalSubject that( + public OptionalSubject that( Optional optional, BiFunction valueSubjectCreator) { return new OptionalSubject<>(metadata(), optional, valueSubjectCreator); diff --git a/javatests/com/google/gerrit/server/edit/tree/ChangeFileContentModificationSubject.java b/javatests/com/google/gerrit/server/edit/tree/ChangeFileContentModificationSubject.java index b23c47a859..a618c9ee1a 100644 --- a/javatests/com/google/gerrit/server/edit/tree/ChangeFileContentModificationSubject.java +++ b/javatests/com/google/gerrit/server/edit/tree/ChangeFileContentModificationSubject.java @@ -25,8 +25,7 @@ import java.io.IOException; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; -public class ChangeFileContentModificationSubject - extends Subject { +public class ChangeFileContentModificationSubject extends Subject { public static ChangeFileContentModificationSubject assertThat( ChangeFileContentModification modification) { diff --git a/javatests/com/google/gerrit/server/edit/tree/TreeModificationSubject.java b/javatests/com/google/gerrit/server/edit/tree/TreeModificationSubject.java index 72759cd91d..d5b70bb7a3 100644 --- a/javatests/com/google/gerrit/server/edit/tree/TreeModificationSubject.java +++ b/javatests/com/google/gerrit/server/edit/tree/TreeModificationSubject.java @@ -21,7 +21,7 @@ import com.google.common.truth.Subject; import com.google.gerrit.truth.ListSubject; import java.util.List; -public class TreeModificationSubject extends Subject { +public class TreeModificationSubject extends Subject { public static TreeModificationSubject assertThat(TreeModification treeModification) { return assertAbout(treeModifications()).that(treeModification);