diff --git a/javatests/google/registry/testing/AbstractDomainBaseSubject.java b/javatests/google/registry/testing/AbstractDomainBaseSubject.java index cb60890a3..b96abc56a 100644 --- a/javatests/google/registry/testing/AbstractDomainBaseSubject.java +++ b/javatests/google/registry/testing/AbstractDomainBaseSubject.java @@ -28,14 +28,17 @@ public abstract class AbstractDomainBaseSubject > extends AbstractEppResourceSubject { + private final T actual; + public AbstractDomainBaseSubject(FailureMetadata failureMetadata, T subject) { super(failureMetadata, subject); + this.actual = subject; } public And hasFullyQualifiedDomainName(String fullyQualifiedDomainName) { return hasValue( fullyQualifiedDomainName, - actual().getFullyQualifiedDomainName(), + actual.getFullyQualifiedDomainName(), "has fullyQualifiedDomainName"); } @@ -44,26 +47,23 @@ public abstract class AbstractDomainBaseSubject } public And hasExactlyDsData(Set dsData) { - return hasValue(dsData, actual().getDsData(), "has dsData"); + return hasValue(dsData, actual.getDsData(), "has dsData"); } public And hasNumDsData(int num) { - return hasValue(num, actual().getDsData().size(), "has num dsData"); + return hasValue(num, actual.getDsData().size(), "has num dsData"); } public And hasLaunchNotice(LaunchNotice launchNotice) { - return hasValue(launchNotice, actual().getLaunchNotice(), "has launchNotice"); + return hasValue(launchNotice, actual.getLaunchNotice(), "has launchNotice"); } public And hasAuthInfoPwd(String pw) { - AuthInfo authInfo = actual().getAuthInfo(); + AuthInfo authInfo = actual.getAuthInfo(); return hasValue(pw, authInfo == null ? null : authInfo.getPw().getValue(), "has auth info pw"); } public And hasCurrentSponsorClientId(String clientId) { - return hasValue( - clientId, - actual().getCurrentSponsorClientId(), - "has currentSponsorClientId"); + return hasValue(clientId, actual.getCurrentSponsorClientId(), "has currentSponsorClientId"); } } diff --git a/javatests/google/registry/testing/AbstractEppResourceSubject.java b/javatests/google/registry/testing/AbstractEppResourceSubject.java index def0e5bf8..66a6f8e8b 100644 --- a/javatests/google/registry/testing/AbstractEppResourceSubject.java +++ b/javatests/google/registry/testing/AbstractEppResourceSubject.java @@ -40,12 +40,15 @@ import org.joda.time.DateTime; abstract class AbstractEppResourceSubject > extends Subject { + private final T actual; + public AbstractEppResourceSubject(FailureMetadata failureMetadata, T subject) { super(failureMetadata, checkNotNull(subject)); + this.actual = subject; } private List getHistoryEntries() { - return DatastoreHelper.getHistoryEntries(actual()); + return DatastoreHelper.getHistoryEntries(actual); } @SuppressWarnings("unchecked") @@ -56,17 +59,16 @@ abstract class AbstractEppResourceSubject @Override protected String actualCustomStringRepresentation() { return String.format( - "%s with foreign key '%s'", - actual().getClass().getSimpleName(), - actual().getForeignKey()); + "%s with foreign key '%s'", actual.getClass().getSimpleName(), actual.getForeignKey()); } @Override public void isEqualTo(@Nullable Object other) { // If the objects differ and we can show an interesting ImmutableObject diff, do so. - if (actual() != null && other instanceof ImmutableObject && !actual().equals(other)) { - String diffText = prettyPrintEntityDeepDiff( - ((ImmutableObject) other).toDiffableFieldMap(), actual().toDiffableFieldMap()); + if (actual != null && other instanceof ImmutableObject && !actual.equals(other)) { + String diffText = + prettyPrintEntityDeepDiff( + ((ImmutableObject) other).toDiffableFieldMap(), actual.toDiffableFieldMap()); fail(String.format("is equal to %s\n\nIt differs as follows:\n%s", other, diffText)); } // Otherwise, fall back to regular behavior. @@ -74,7 +76,7 @@ abstract class AbstractEppResourceSubject } public And hasRepoId(long roid) { - return hasValue(roid, actual().getRepoId(), "has repoId"); + return hasValue(roid, actual.getRepoId(), "has repoId"); } public And hasNoHistoryEntries() { @@ -92,7 +94,7 @@ abstract class AbstractEppResourceSubject } public And hasNumHistoryEntriesOfType(HistoryEntry.Type type, int num) { - List entries = getHistoryEntriesOfType(actual(), type); + List entries = getHistoryEntriesOfType(actual, type); if (entries.size() != num) { failWithBadResults( String.format("has this number of history entries of type %s", type.toString()), @@ -136,7 +138,7 @@ abstract class AbstractEppResourceSubject } public And hasStatusValue(StatusValue statusValue) { - if (!actual().getStatusValues().contains(statusValue)) { + if (!actual.getStatusValues().contains(statusValue)) { failWithoutActual( simpleFact( lenientFormat("%s should have had status value %s", actualAsString(), statusValue))); @@ -145,7 +147,7 @@ abstract class AbstractEppResourceSubject } public And doesNotHaveStatusValue(StatusValue statusValue) { - if (actual().getStatusValues().contains(statusValue)) { + if (actual.getStatusValues().contains(statusValue)) { failWithoutActual( simpleFact( lenientFormat( @@ -155,31 +157,24 @@ abstract class AbstractEppResourceSubject } public And hasExactlyStatusValues(StatusValue... statusValues) { - if (!ImmutableSet.copyOf(actual().getStatusValues()) - .equals(ImmutableSet.copyOf(statusValues))) { + if (!ImmutableSet.copyOf(actual.getStatusValues()).equals(ImmutableSet.copyOf(statusValues))) { check("getStatusValues()") - .that(actual().getStatusValues()) + .that(actual.getStatusValues()) .containsExactly((Object[]) statusValues); } return andChainer(); } public And hasDeletionTime(DateTime deletionTime) { - return hasValue( - deletionTime, - actual().getDeletionTime(), - "has deletionTime"); + return hasValue(deletionTime, actual.getDeletionTime(), "has deletionTime"); } public And hasLastEppUpdateTime(DateTime lastUpdateTime) { - return hasValue( - lastUpdateTime, - actual().getLastEppUpdateTime(), - "has lastEppUpdateTime"); + return hasValue(lastUpdateTime, actual.getLastEppUpdateTime(), "has lastEppUpdateTime"); } public And hasLastEppUpdateTimeAtLeast(DateTime before) { - DateTime lastEppUpdateTime = actual().getLastEppUpdateTime(); + DateTime lastEppUpdateTime = actual.getLastEppUpdateTime(); if (lastEppUpdateTime == null || before.isAfter(lastEppUpdateTime)) { failWithBadResults("has lastEppUpdateTime at least", before, lastEppUpdateTime); } @@ -187,29 +182,26 @@ abstract class AbstractEppResourceSubject } public And hasLastEppUpdateClientId(String clientId) { - return hasValue( - clientId, - actual().getLastEppUpdateClientId(), - "has lastEppUpdateClientId"); + return hasValue(clientId, actual.getLastEppUpdateClientId(), "has lastEppUpdateClientId"); } public And hasPersistedCurrentSponsorClientId(String clientId) { return hasValue( clientId, - actual().getPersistedCurrentSponsorClientId(), + actual.getPersistedCurrentSponsorClientId(), "has persisted currentSponsorClientId"); } public And isActiveAt(DateTime time) { - if (!isActive(actual(), time)) { + if (!isActive(actual, time)) { fail("is active at " + time); } return andChainer(); } public And isNotActiveAt(DateTime time) { - if (isActive(actual(), time)) { + if (isActive(actual, time)) { fail("is not active at " + time); } return andChainer(); diff --git a/javatests/google/registry/testing/ContactResourceSubject.java b/javatests/google/registry/testing/ContactResourceSubject.java index d37a253c7..1071bcc8e 100644 --- a/javatests/google/registry/testing/ContactResourceSubject.java +++ b/javatests/google/registry/testing/ContactResourceSubject.java @@ -30,23 +30,26 @@ import org.joda.time.DateTime; public final class ContactResourceSubject extends AbstractEppResourceSubject { + private final ContactResource actual; + public ContactResourceSubject(FailureMetadata failureMetadata, ContactResource subject) { super(failureMetadata, checkNotNull(subject)); + this.actual = subject; } public And hasLocalizedPostalInfo(PostalInfo postalInfo) { - return hasValue(postalInfo, actual().getLocalizedPostalInfo(), "has localizedPostalInfo"); + return hasValue(postalInfo, actual.getLocalizedPostalInfo(), "has localizedPostalInfo"); } public And hasNullLocalizedPostalInfo() { - if (actual().getLocalizedPostalInfo() != null) { + if (actual.getLocalizedPostalInfo() != null) { failWithActual(simpleFact("expected to have null localized postal info")); } return andChainer(); } public And hasNonNullLocalizedPostalInfo() { - if (actual().getLocalizedPostalInfo() == null) { + if (actual.getLocalizedPostalInfo() == null) { failWithActual(simpleFact("expected to have non-null localized postal info")); } return andChainer(); @@ -55,13 +58,11 @@ public final class ContactResourceSubject public And hasInternationalizedPostalInfo( PostalInfo postalInfo) { return hasValue( - postalInfo, - actual().getInternationalizedPostalInfo(), - "has internationalizedPostalInfo"); + postalInfo, actual.getInternationalizedPostalInfo(), "has internationalizedPostalInfo"); } public And hasNullInternationalizedPostalInfo() { - if (actual().getInternationalizedPostalInfo() != null) { + if (actual.getInternationalizedPostalInfo() != null) { failWithActual(simpleFact("expected to have null internationalized postal info")); } return andChainer(); @@ -69,78 +70,69 @@ public final class ContactResourceSubject public And hasNonNullInternationalizedPostalInfo() { - if (actual().getInternationalizedPostalInfo() == null) { + if (actual.getInternationalizedPostalInfo() == null) { failWithActual(simpleFact("expected to have non-null internationalized postal info")); } return andChainer(); } public And hasNullEmailAddress() { - if (actual().getEmailAddress() != null) { + if (actual.getEmailAddress() != null) { failWithActual(simpleFact("expected to have null email address")); } return andChainer(); } public And hasNonNullEmailAddress() { - if (actual().getEmailAddress() == null) { + if (actual.getEmailAddress() == null) { failWithActual(simpleFact("expected to have non-null email address")); } return andChainer(); } public And hasNullVoiceNumber() { - if (actual().getVoiceNumber() != null) { + if (actual.getVoiceNumber() != null) { failWithActual(simpleFact("expected to have null voice number")); } return andChainer(); } public And hasNonNullVoiceNumber() { - if (actual().getVoiceNumber() == null) { + if (actual.getVoiceNumber() == null) { failWithActual(simpleFact("expected to have non-null voice number")); } return andChainer(); } public And hasNullFaxNumber() { - if (actual().getFaxNumber() != null) { + if (actual.getFaxNumber() != null) { failWithActual(simpleFact("expected to have null fax number")); } return andChainer(); } public And hasNonNullFaxNumber() { - if (actual().getFaxNumber() == null) { + if (actual.getFaxNumber() == null) { failWithActual(simpleFact("expected to have non-null fax number")); } return andChainer(); } public And hasAuthInfoPwd(String pw) { - AuthInfo authInfo = actual().getAuthInfo(); + AuthInfo authInfo = actual.getAuthInfo(); return hasValue(pw, authInfo == null ? null : authInfo.getPw().getValue(), "has auth info pw"); } public And hasLastTransferTime(DateTime lastTransferTime) { - return hasValue( - lastTransferTime, - actual().getLastTransferTime(), - "has lastTransferTime"); + return hasValue(lastTransferTime, actual.getLastTransferTime(), "has lastTransferTime"); } public And hasLastTransferTimeNotEqualTo(DateTime lastTransferTime) { - return doesNotHaveValue( - lastTransferTime, - actual().getLastTransferTime(), - "lastTransferTime"); + return doesNotHaveValue(lastTransferTime, actual.getLastTransferTime(), "lastTransferTime"); } public And hasCurrentSponsorClientId(String clientId) { - return hasValue( - clientId, - actual().getCurrentSponsorClientId(), - "has currentSponsorClientId"); + return hasValue(clientId, actual.getCurrentSponsorClientId(), "has currentSponsorClientId"); } public static SimpleSubjectBuilder diff --git a/javatests/google/registry/testing/DomainBaseSubject.java b/javatests/google/registry/testing/DomainBaseSubject.java index 36972ad4b..65da1470c 100644 --- a/javatests/google/registry/testing/DomainBaseSubject.java +++ b/javatests/google/registry/testing/DomainBaseSubject.java @@ -30,49 +30,44 @@ public final class DomainBaseSubject extends AbstractDomainBaseSubject { public And hasRegistrationExpirationTime(DateTime expiration) { - if (!Objects.equals(actual().getRegistrationExpirationTime(), expiration)) { + if (!Objects.equals(actual.getRegistrationExpirationTime(), expiration)) { failWithBadResults( - "has registrationExpirationTime", - expiration, - actual().getRegistrationExpirationTime()); + "has registrationExpirationTime", expiration, actual.getRegistrationExpirationTime()); } return andChainer(); } public And hasLastTransferTime(DateTime lastTransferTime) { - return hasValue( - lastTransferTime, - actual().getLastTransferTime(), - "has lastTransferTime"); + return hasValue(lastTransferTime, actual.getLastTransferTime(), "has lastTransferTime"); } public And hasLastTransferTimeNotEqualTo(DateTime lastTransferTime) { - return doesNotHaveValue( - lastTransferTime, - actual().getLastTransferTime(), - "lastTransferTime"); + return doesNotHaveValue(lastTransferTime, actual.getLastTransferTime(), "lastTransferTime"); } public And hasDeletePollMessage() { - if (actual().getDeletePollMessage() == null) { + if (actual.getDeletePollMessage() == null) { failWithActual(simpleFact("expected to have a delete poll message")); } return andChainer(); } public And hasNoDeletePollMessage() { - if (actual().getDeletePollMessage() != null) { + if (actual.getDeletePollMessage() != null) { failWithActual(simpleFact("expected to have no delete poll message")); } return andChainer(); } public And hasSmdId(String smdId) { - return hasValue(smdId, actual().getSmdId(), "has smdId"); + return hasValue(smdId, actual.getSmdId(), "has smdId"); } + private final DomainBase actual; + public DomainBaseSubject(FailureMetadata failureMetadata, DomainBase subject) { super(failureMetadata, checkNotNull(subject)); + this.actual = subject; } public static SimpleSubjectBuilder assertAboutDomains() { diff --git a/javatests/google/registry/testing/EppExceptionSubject.java b/javatests/google/registry/testing/EppExceptionSubject.java index ab047b9a2..584db2f8a 100644 --- a/javatests/google/registry/testing/EppExceptionSubject.java +++ b/javatests/google/registry/testing/EppExceptionSubject.java @@ -32,17 +32,20 @@ import google.registry.xml.XmlException; /** Utility methods for asserting things about {@link EppException} instances. */ public class EppExceptionSubject extends Subject { + private final EppException actual; + public EppExceptionSubject(FailureMetadata failureMetadata, EppException subject) { super(failureMetadata, subject); + this.actual = subject; } public And hasMessage(String expected) { - assertThat(actual()).hasMessageThat().isEqualTo(expected); + assertThat(actual).hasMessageThat().isEqualTo(expected); return new And<>(this); } public And hasMessageThatContains(String expected) { - assertThat(actual()).hasMessageThat().contains(expected); + assertThat(actual).hasMessageThat().contains(expected); return new And<>(this); } @@ -50,10 +53,11 @@ public class EppExceptionSubject extends Subject { + private final EppMetric actual; + public EppMetricSubject(FailureMetadata failureMetadata, EppMetric subject) { super(failureMetadata, subject); + this.actual = subject; } public static EppMetricSubject assertThat(EppMetric subject) { @@ -38,30 +41,30 @@ public class EppMetricSubject extends Subject { } public And hasClientId(String clientId) { - return hasValue(clientId, actual().getClientId(), "has clientId"); + return hasValue(clientId, actual.getClientId(), "has clientId"); } public And hasCommandName(String commandName) { - return hasValue(commandName, actual().getCommandName(), "has commandName"); + return hasValue(commandName, actual.getCommandName(), "has commandName"); } public And hasStatus(Code status) { - return hasValue(status, actual().getStatus(), "has status"); + return hasValue(status, actual.getStatus(), "has status"); } public And hasNoStatus() { - if (actual().getStatus().isPresent()) { + if (actual.getStatus().isPresent()) { failWithActual(simpleFact("expected to have no status")); } return new And<>(this); } public And hasTld(String tld) { - return hasValue(tld, actual().getTld(), "has tld"); + return hasValue(tld, actual.getTld(), "has tld"); } public And hasNoTld() { - if (actual().getTld().isPresent()) { + if (actual.getTld().isPresent()) { failWithActual(simpleFact("expected to have no tld")); } return new And<>(this); diff --git a/javatests/google/registry/testing/HistoryEntrySubject.java b/javatests/google/registry/testing/HistoryEntrySubject.java index 0ceec76e3..debfb1757 100644 --- a/javatests/google/registry/testing/HistoryEntrySubject.java +++ b/javatests/google/registry/testing/HistoryEntrySubject.java @@ -30,15 +30,17 @@ import org.joda.time.DateTime; /** Utility methods for asserting things about {@link HistoryEntry} instances. */ public class HistoryEntrySubject extends Subject { + private final HistoryEntry actual; private String customDisplaySubject; public HistoryEntrySubject(FailureMetadata failureMetadata, HistoryEntry subject) { super(failureMetadata, subject); + this.actual = subject; } @Override protected String actualCustomStringRepresentation() { - return Optional.ofNullable(customDisplaySubject).orElse(String.valueOf(actual())); + return Optional.ofNullable(customDisplaySubject).orElse(String.valueOf(actual)); } public HistoryEntrySubject withCustomDisplaySubject(String customDisplaySubject) { @@ -47,52 +49,54 @@ public class HistoryEntrySubject extends Subject hasType(HistoryEntry.Type type) { - return hasValue(type, actual().getType(), "has type"); + return hasValue(type, actual.getType(), "has type"); } public And hasClientId(String clientId) { - return hasValue(clientId, actual().getClientId(), "has client ID"); + return hasValue(clientId, actual.getClientId(), "has client ID"); } public And hasOtherClientId(String otherClientId) { - return hasValue(otherClientId, actual().getOtherClientId(), "has other client ID"); + return hasValue(otherClientId, actual.getOtherClientId(), "has other client ID"); } public And hasModificationTime(DateTime modificationTime) { - return hasValue(modificationTime, actual().getModificationTime(), "has modification time"); + return hasValue(modificationTime, actual.getModificationTime(), "has modification time"); } public And bySuperuser(boolean superuser) { - return hasValue(superuser, actual().getBySuperuser(), "has modification time"); + return hasValue(superuser, actual.getBySuperuser(), "has modification time"); } public And hasPeriod() { - if (actual().getPeriod() == null) { + if (actual.getPeriod() == null) { failWithActual(simpleFact("expected to have a period")); } return new And<>(this); } public And hasPeriodYears(int years) { - return hasPeriod().and() - .hasValue(Period.Unit.YEARS, actual().getPeriod().getUnit(), "has period in").and() - .hasValue(years, actual().getPeriod().getValue(), "has period length"); + return hasPeriod() + .and() + .hasValue(Period.Unit.YEARS, actual.getPeriod().getUnit(), "has period in") + .and() + .hasValue(years, actual.getPeriod().getValue(), "has period length"); } public And hasNoXml() { - if (actual().getXmlBytes() != null) { + if (actual.getXmlBytes() != null) { failWithActual(simpleFact("expected to have no xml")); } return new And<>(this); } public And hasMetadataReason(String reason) { - return hasValue(reason, actual().getReason(), "has metadata reason"); + return hasValue(reason, actual.getReason(), "has metadata reason"); } public And hasMetadataRequestedByRegistrar( boolean requestedByRegistrar) { - if (actual().getRequestedByRegistrar() != requestedByRegistrar) { + if (actual.getRequestedByRegistrar() != requestedByRegistrar) { failWithActual( "expected to have metadata requestedByRegistrar with value", requestedByRegistrar); } diff --git a/javatests/google/registry/testing/HostResourceSubject.java b/javatests/google/registry/testing/HostResourceSubject.java index 525f41530..5fae683e7 100644 --- a/javatests/google/registry/testing/HostResourceSubject.java +++ b/javatests/google/registry/testing/HostResourceSubject.java @@ -29,8 +29,11 @@ import org.joda.time.DateTime; public final class HostResourceSubject extends AbstractEppResourceSubject { + private final HostResource actual; + public HostResourceSubject(FailureMetadata failureMetadata, HostResource subject) { super(failureMetadata, checkNotNull(subject)); + this.actual = subject; } public static SimpleSubjectBuilder assertAboutHosts() { @@ -38,30 +41,22 @@ public final class HostResourceSubject } public And hasLastTransferTime(DateTime lastTransferTime) { - return hasValue( - lastTransferTime, - actual().getLastTransferTime(), - "has lastTransferTime"); + return hasValue(lastTransferTime, actual.getLastTransferTime(), "has lastTransferTime"); } public And hasLastTransferTimeNotEqualTo(DateTime lastTransferTime) { - return doesNotHaveValue( - lastTransferTime, - actual().getLastTransferTime(), - "lastTransferTime"); + return doesNotHaveValue(lastTransferTime, actual.getLastTransferTime(), "lastTransferTime"); } public And hasLastSuperordinateChange(DateTime lastSuperordinateChange) { return hasValue( lastSuperordinateChange, - actual().getLastSuperordinateChange(), + actual.getLastSuperordinateChange(), "has lastSuperordinateChange"); } public And hasSuperordinateDomain(Key superordinateDomain) { return hasValue( - superordinateDomain, - actual().getSuperordinateDomain(), - "has superordinateDomain"); + superordinateDomain, actual.getSuperordinateDomain(), "has superordinateDomain"); } } diff --git a/javatests/google/registry/testing/LogsSubject.java b/javatests/google/registry/testing/LogsSubject.java index 9ae5c2c76..c6956bec1 100644 --- a/javatests/google/registry/testing/LogsSubject.java +++ b/javatests/google/registry/testing/LogsSubject.java @@ -33,8 +33,11 @@ import java.util.logging.LogRecord; /** Utility methods for asserting things about logging {@link Handler} instances. */ public class LogsSubject extends Subject { + private final TestLogHandler actual; + public LogsSubject(FailureMetadata failureMetadata, TestLogHandler subject) { super(failureMetadata, subject); + this.actual = subject; } private static final Correspondence CONTAINS_CORRESPONDENCE = @@ -52,7 +55,7 @@ public class LogsSubject extends Subject { private List getMessagesAtLevel(Level level) { ImmutableList.Builder builder = new ImmutableList.Builder<>(); - for (LogRecord log : actual().getStoredLogRecords()) { + for (LogRecord log : actual.getStoredLogRecords()) { if (log.getLevel().equals(level)) { builder.add(log.getMessage()); }