Fix ContactTransferData SQL loads (#967)

* Fix ContactTransferData SQL loads

ContactTransferData is currently loaded back from SQL as an unspecialized
TransferData object.  Replace it with the ContactTransferData object that we
use it to reconstitute.

It's likely that this could be done more straightforwardly with a schema
change.

* Changes requested in review
This commit is contained in:
Michael Muller 2021-02-22 13:42:20 -05:00 committed by GitHub
parent a2ffb504f5
commit eb80559b28
2 changed files with 21 additions and 11 deletions

View file

@ -406,8 +406,10 @@ public abstract class PollMessage extends ImmutableObject
pendingActionNotificationResponse.processedDate));
}
if (contactId != null && transferResponse != null) {
contactTransferResponses =
ImmutableList.of(
// The transferResponse is currently an unspecialized TransferResponse instance, create a
// ContactTransferResponse so that the value is consistently specialized and store it in the
// list representation for datastore.
transferResponse =
new ContactTransferResponse.Builder()
.setContactId(contactId)
.setGainingClientId(transferResponse.getGainingClientId())
@ -416,7 +418,8 @@ public abstract class PollMessage extends ImmutableObject
.setTransferRequestTime(transferResponse.getTransferRequestTime())
.setPendingTransferExpirationTime(
transferResponse.getPendingTransferExpirationTime())
.build());
.build();
contactTransferResponses = ImmutableList.of((ContactTransferResponse) transferResponse);
}
}

View file

@ -41,14 +41,21 @@ import google.registry.model.transfer.TransferData;
import google.registry.model.transfer.TransferResponse;
import google.registry.model.transfer.TransferStatus;
import google.registry.testing.DualDatabaseTest;
import google.registry.testing.ReplayExtension;
import google.registry.testing.TestOfyAndSql;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.extension.RegisterExtension;
/** Unit tests for {@link ContactTransferApproveFlow}. */
@DualDatabaseTest
class ContactTransferApproveFlowTest
extends ContactTransferFlowTestCase<ContactTransferApproveFlow, ContactResource> {
@Order(value = Order.DEFAULT - 2)
@RegisterExtension
final ReplayExtension replayExtension = ReplayExtension.createWithCompare(clock);
@BeforeEach
void setUp() {
setEppInput("contact_transfer_approve.xml");