mirror of
https://github.com/google/nomulus
synced 2025-12-23 14:25:44 +00:00
Make nomulus update_recurrence command only fail on pending transfers (#2605)
It was failing when any kind of transfer data was present, even completed transfer data. Note that completed transfer data persists on a domain indefinitely until/unless a new transfer is requested. BUG= http://b/377328244
This commit is contained in:
@@ -30,6 +30,7 @@ import google.registry.model.domain.Domain;
|
|||||||
import google.registry.model.domain.DomainHistory;
|
import google.registry.model.domain.DomainHistory;
|
||||||
import google.registry.model.reporting.HistoryEntry;
|
import google.registry.model.reporting.HistoryEntry;
|
||||||
import google.registry.model.reporting.HistoryEntry.HistoryEntryId;
|
import google.registry.model.reporting.HistoryEntry.HistoryEntryId;
|
||||||
|
import google.registry.model.transfer.TransferStatus;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
@@ -174,7 +175,8 @@ public class UpdateRecurrenceCommand extends ConfirmingCommand {
|
|||||||
"Domain %s has already had a deletion time set",
|
"Domain %s has already had a deletion time set",
|
||||||
domainName);
|
domainName);
|
||||||
checkArgument(
|
checkArgument(
|
||||||
domain.getTransferData().isEmpty(),
|
domain.getTransferData().isEmpty()
|
||||||
|
|| domain.getTransferData().getTransferStatus() != TransferStatus.PENDING,
|
||||||
"Domain %s has a pending transfer: %s",
|
"Domain %s has a pending transfer: %s",
|
||||||
domainName,
|
domainName,
|
||||||
domain.getTransferData());
|
domain.getTransferData());
|
||||||
|
|||||||
@@ -33,6 +33,8 @@ import google.registry.model.billing.BillingRecurrence;
|
|||||||
import google.registry.model.domain.Domain;
|
import google.registry.model.domain.Domain;
|
||||||
import google.registry.model.domain.DomainHistory;
|
import google.registry.model.domain.DomainHistory;
|
||||||
import google.registry.model.reporting.HistoryEntry;
|
import google.registry.model.reporting.HistoryEntry;
|
||||||
|
import google.registry.model.transfer.DomainTransferData;
|
||||||
|
import google.registry.model.transfer.TransferStatus;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import org.joda.money.CurrencyUnit;
|
import org.joda.money.CurrencyUnit;
|
||||||
@@ -121,6 +123,25 @@ public class UpdateRecurrenceCommandTest extends CommandTestCase<UpdateRecurrenc
|
|||||||
Money.of(CurrencyUnit.USD, 9001));
|
Money.of(CurrencyUnit.USD, 9001));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testSuccess_completedTransfer() throws Exception {
|
||||||
|
Domain domain = persistDomain();
|
||||||
|
domain =
|
||||||
|
persistResource(
|
||||||
|
domain
|
||||||
|
.asBuilder()
|
||||||
|
.setTransferData(
|
||||||
|
new DomainTransferData.Builder()
|
||||||
|
.setTransferStatus(TransferStatus.CLIENT_APPROVED)
|
||||||
|
.setPendingTransferExpirationTime(fakeClock.nowUtc().minusDays(8))
|
||||||
|
.build())
|
||||||
|
.build());
|
||||||
|
BillingRecurrence billingRecurrence = loadByKey(domain.getAutorenewBillingEvent());
|
||||||
|
runCommandForced("domain.tld", "--renewal_price_behavior", "NONPREMIUM");
|
||||||
|
assertNewBillingEventAndHistory(
|
||||||
|
billingRecurrence.getId(), RenewalPriceBehavior.NONPREMIUM, null);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testFailure_nonexistentDomain() {
|
void testFailure_nonexistentDomain() {
|
||||||
assertThrows(
|
assertThrows(
|
||||||
|
|||||||
Reference in New Issue
Block a user