mirror of
https://github.com/google/nomulus.git
synced 2025-05-15 17:07:15 +02:00
Support version 0.12 of the EPP Fee Extension
The corresponding version of the specification is 8. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=127968603
This commit is contained in:
parent
38e7b07c93
commit
b83b3b313f
56 changed files with 2505 additions and 13 deletions
|
@ -20,6 +20,7 @@ import static com.google.common.io.Resources.getResource;
|
||||||
import static com.google.common.net.HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN;
|
import static com.google.common.net.HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN;
|
||||||
import static google.registry.model.domain.fee.Fee.FEE_EXTENSION_URIS;
|
import static google.registry.model.domain.fee.Fee.FEE_EXTENSION_URIS;
|
||||||
import static google.registry.model.eppcommon.ProtocolDefinition.ServiceExtension.FEE_0_11;
|
import static google.registry.model.eppcommon.ProtocolDefinition.ServiceExtension.FEE_0_11;
|
||||||
|
import static google.registry.model.eppcommon.ProtocolDefinition.ServiceExtension.FEE_0_12;
|
||||||
import static google.registry.model.eppcommon.ProtocolDefinition.ServiceExtension.FEE_0_6;
|
import static google.registry.model.eppcommon.ProtocolDefinition.ServiceExtension.FEE_0_6;
|
||||||
import static google.registry.model.registry.Registries.findTldForNameOrThrow;
|
import static google.registry.model.registry.Registries.findTldForNameOrThrow;
|
||||||
import static google.registry.util.DomainNameUtils.canonicalizeDomainName;
|
import static google.registry.util.DomainNameUtils.canonicalizeDomainName;
|
||||||
|
@ -120,6 +121,7 @@ public class CheckApiAction implements Runnable {
|
||||||
if (available) {
|
if (available) {
|
||||||
FeeCheckResponseExtension<?> feeCheckResponseExtension =
|
FeeCheckResponseExtension<?> feeCheckResponseExtension =
|
||||||
(FeeCheckResponseExtension<?>) response.getFirstExtensionOfType(
|
(FeeCheckResponseExtension<?>) response.getFirstExtensionOfType(
|
||||||
|
FEE_0_12.getResponseExtensionClass(),
|
||||||
FEE_0_11.getResponseExtensionClass(),
|
FEE_0_11.getResponseExtensionClass(),
|
||||||
FEE_0_6.getResponseExtensionClass());
|
FEE_0_6.getResponseExtensionClass());
|
||||||
if (feeCheckResponseExtension != null) {
|
if (feeCheckResponseExtension != null) {
|
||||||
|
|
|
@ -57,6 +57,7 @@ public class EppXmlTransformer {
|
||||||
"secdns.xsd",
|
"secdns.xsd",
|
||||||
"fee06.xsd",
|
"fee06.xsd",
|
||||||
"fee11.xsd",
|
"fee11.xsd",
|
||||||
|
"fee12.xsd",
|
||||||
"metadata.xsd",
|
"metadata.xsd",
|
||||||
"mark.xsd",
|
"mark.xsd",
|
||||||
"dsig.xsd",
|
"dsig.xsd",
|
||||||
|
@ -173,4 +174,3 @@ public class EppXmlTransformer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,7 @@ package google.registry.flows;
|
||||||
import static com.google.common.base.Verify.verifyNotNull;
|
import static com.google.common.base.Verify.verifyNotNull;
|
||||||
import static com.google.common.collect.Sets.difference;
|
import static com.google.common.collect.Sets.difference;
|
||||||
import static com.google.common.collect.Sets.intersection;
|
import static com.google.common.collect.Sets.intersection;
|
||||||
|
import static google.registry.model.domain.fee.Fee.FEE_EXTENSION_URIS;
|
||||||
import static google.registry.model.registry.Registries.getTlds;
|
import static google.registry.model.registry.Registries.getTlds;
|
||||||
import static google.registry.util.CollectionUtils.nullToEmpty;
|
import static google.registry.util.CollectionUtils.nullToEmpty;
|
||||||
|
|
||||||
|
@ -28,7 +29,6 @@ import google.registry.flows.EppException.CommandUseErrorException;
|
||||||
import google.registry.flows.EppException.SyntaxErrorException;
|
import google.registry.flows.EppException.SyntaxErrorException;
|
||||||
import google.registry.flows.EppException.UnimplementedExtensionException;
|
import google.registry.flows.EppException.UnimplementedExtensionException;
|
||||||
import google.registry.model.eppcommon.ProtocolDefinition;
|
import google.registry.model.eppcommon.ProtocolDefinition;
|
||||||
import google.registry.model.eppcommon.ProtocolDefinition.ServiceExtension;
|
|
||||||
import google.registry.model.eppinput.EppInput.CommandExtension;
|
import google.registry.model.eppinput.EppInput.CommandExtension;
|
||||||
import google.registry.model.registrar.Registrar;
|
import google.registry.model.registrar.Registrar;
|
||||||
import google.registry.util.FormattingLogger;
|
import google.registry.util.FormattingLogger;
|
||||||
|
@ -43,10 +43,7 @@ public abstract class LoggedInFlow extends Flow {
|
||||||
* A blacklist of service extension URIs that will cause an error if they are used without being
|
* A blacklist of service extension URIs that will cause an error if they are used without being
|
||||||
* declared on login.
|
* declared on login.
|
||||||
*/
|
*/
|
||||||
private static final ImmutableSet<String> UNDECLARED_URIS_BLACKLIST =
|
private static final ImmutableSet<String> UNDECLARED_URIS_BLACKLIST = FEE_EXTENSION_URIS;
|
||||||
ImmutableSet.of(
|
|
||||||
ServiceExtension.FEE_0_6.getUri(),
|
|
||||||
ServiceExtension.FEE_0_11.getUri());
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The TLDs on which the logged-in registrar is allowed access domains.
|
* The TLDs on which the logged-in registrar is allowed access domains.
|
||||||
|
|
|
@ -40,6 +40,7 @@ import google.registry.model.domain.fee.Credit;
|
||||||
import google.registry.model.domain.fee.FeeTransformResponseExtension;
|
import google.registry.model.domain.fee.FeeTransformResponseExtension;
|
||||||
import google.registry.model.domain.fee06.FeeDeleteResponseExtensionV06;
|
import google.registry.model.domain.fee06.FeeDeleteResponseExtensionV06;
|
||||||
import google.registry.model.domain.fee11.FeeDeleteResponseExtensionV11;
|
import google.registry.model.domain.fee11.FeeDeleteResponseExtensionV11;
|
||||||
|
import google.registry.model.domain.fee12.FeeDeleteResponseExtensionV12;
|
||||||
import google.registry.model.domain.rgp.GracePeriodStatus;
|
import google.registry.model.domain.rgp.GracePeriodStatus;
|
||||||
import google.registry.model.domain.secdns.SecDnsUpdateExtension;
|
import google.registry.model.domain.secdns.SecDnsUpdateExtension;
|
||||||
import google.registry.model.eppcommon.ProtocolDefinition.ServiceExtension;
|
import google.registry.model.eppcommon.ProtocolDefinition.ServiceExtension;
|
||||||
|
@ -176,6 +177,9 @@ public class DomainDeleteFlow extends ResourceSyncDeleteFlow<DomainResource, Bui
|
||||||
@Nullable
|
@Nullable
|
||||||
private FeeTransformResponseExtension.Builder getDeleteResponseBuilder() {
|
private FeeTransformResponseExtension.Builder getDeleteResponseBuilder() {
|
||||||
Set<String> uris = nullToEmpty(sessionMetadata.getServiceExtensionUris());
|
Set<String> uris = nullToEmpty(sessionMetadata.getServiceExtensionUris());
|
||||||
|
if (uris.contains(ServiceExtension.FEE_0_12.getUri())) {
|
||||||
|
return new FeeDeleteResponseExtensionV12.Builder();
|
||||||
|
}
|
||||||
if (uris.contains(ServiceExtension.FEE_0_11.getUri())) {
|
if (uris.contains(ServiceExtension.FEE_0_11.getUri())) {
|
||||||
return new FeeDeleteResponseExtensionV11.Builder();
|
return new FeeDeleteResponseExtensionV11.Builder();
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@ FIELD_EXPOSERS = [
|
||||||
"domain/fee/FieldExposer.java",
|
"domain/fee/FieldExposer.java",
|
||||||
"domain/fee06/FieldExposer.java",
|
"domain/fee06/FieldExposer.java",
|
||||||
"domain/fee11/FieldExposer.java",
|
"domain/fee11/FieldExposer.java",
|
||||||
|
"domain/fee12/FieldExposer.java",
|
||||||
"domain/launch/FieldExposer.java",
|
"domain/launch/FieldExposer.java",
|
||||||
"domain/rgp/FieldExposer.java",
|
"domain/rgp/FieldExposer.java",
|
||||||
"domain/secdns/FieldExposer.java",
|
"domain/secdns/FieldExposer.java",
|
||||||
|
|
|
@ -28,6 +28,11 @@ import google.registry.model.domain.fee11.FeeCreateCommandExtensionV11;
|
||||||
import google.registry.model.domain.fee11.FeeRenewCommandExtensionV11;
|
import google.registry.model.domain.fee11.FeeRenewCommandExtensionV11;
|
||||||
import google.registry.model.domain.fee11.FeeTransferCommandExtensionV11;
|
import google.registry.model.domain.fee11.FeeTransferCommandExtensionV11;
|
||||||
import google.registry.model.domain.fee11.FeeUpdateCommandExtensionV11;
|
import google.registry.model.domain.fee11.FeeUpdateCommandExtensionV11;
|
||||||
|
import google.registry.model.domain.fee12.FeeCheckCommandExtensionV12;
|
||||||
|
import google.registry.model.domain.fee12.FeeCreateCommandExtensionV12;
|
||||||
|
import google.registry.model.domain.fee12.FeeRenewCommandExtensionV12;
|
||||||
|
import google.registry.model.domain.fee12.FeeTransferCommandExtensionV12;
|
||||||
|
import google.registry.model.domain.fee12.FeeUpdateCommandExtensionV12;
|
||||||
import google.registry.model.eppcommon.ProtocolDefinition.ServiceExtension;
|
import google.registry.model.eppcommon.ProtocolDefinition.ServiceExtension;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
@ -48,36 +53,42 @@ public class Fee extends BaseFee {
|
||||||
Class<? extends FeeCheckCommandExtension<
|
Class<? extends FeeCheckCommandExtension<
|
||||||
? extends FeeCheckCommandExtensionItem,
|
? extends FeeCheckCommandExtensionItem,
|
||||||
? extends FeeCheckResponseExtension<?>>>>of(
|
? extends FeeCheckResponseExtension<?>>>>of(
|
||||||
|
FeeCheckCommandExtensionV12.class,
|
||||||
FeeCheckCommandExtensionV11.class,
|
FeeCheckCommandExtensionV11.class,
|
||||||
FeeCheckCommandExtensionV06.class);
|
FeeCheckCommandExtensionV06.class);
|
||||||
|
|
||||||
public static final ImmutableList<Class<? extends FeeTransformCommandExtension>>
|
public static final ImmutableList<Class<? extends FeeTransformCommandExtension>>
|
||||||
FEE_CREATE_COMMAND_EXTENSIONS_IN_PREFERENCE_ORDER =
|
FEE_CREATE_COMMAND_EXTENSIONS_IN_PREFERENCE_ORDER =
|
||||||
ImmutableList.<Class<? extends FeeTransformCommandExtension>>of(
|
ImmutableList.<Class<? extends FeeTransformCommandExtension>>of(
|
||||||
|
FeeCreateCommandExtensionV12.class,
|
||||||
FeeCreateCommandExtensionV11.class,
|
FeeCreateCommandExtensionV11.class,
|
||||||
FeeCreateCommandExtensionV06.class);
|
FeeCreateCommandExtensionV06.class);
|
||||||
|
|
||||||
public static final ImmutableList<Class<? extends FeeTransformCommandExtension>>
|
public static final ImmutableList<Class<? extends FeeTransformCommandExtension>>
|
||||||
FEE_RENEW_COMMAND_EXTENSIONS_IN_PREFERENCE_ORDER =
|
FEE_RENEW_COMMAND_EXTENSIONS_IN_PREFERENCE_ORDER =
|
||||||
ImmutableList.<Class<? extends FeeTransformCommandExtension>>of(
|
ImmutableList.<Class<? extends FeeTransformCommandExtension>>of(
|
||||||
|
FeeRenewCommandExtensionV12.class,
|
||||||
FeeRenewCommandExtensionV11.class,
|
FeeRenewCommandExtensionV11.class,
|
||||||
FeeRenewCommandExtensionV06.class);
|
FeeRenewCommandExtensionV06.class);
|
||||||
|
|
||||||
public static final ImmutableList<Class<? extends FeeTransformCommandExtension>>
|
public static final ImmutableList<Class<? extends FeeTransformCommandExtension>>
|
||||||
FEE_TRANSFER_COMMAND_EXTENSIONS_IN_PREFERENCE_ORDER =
|
FEE_TRANSFER_COMMAND_EXTENSIONS_IN_PREFERENCE_ORDER =
|
||||||
ImmutableList.<Class<? extends FeeTransformCommandExtension>>of(
|
ImmutableList.<Class<? extends FeeTransformCommandExtension>>of(
|
||||||
|
FeeTransferCommandExtensionV12.class,
|
||||||
FeeTransferCommandExtensionV11.class,
|
FeeTransferCommandExtensionV11.class,
|
||||||
FeeTransferCommandExtensionV06.class);
|
FeeTransferCommandExtensionV06.class);
|
||||||
|
|
||||||
public static final ImmutableList<Class<? extends FeeTransformCommandExtension>>
|
public static final ImmutableList<Class<? extends FeeTransformCommandExtension>>
|
||||||
FEE_UPDATE_COMMAND_EXTENSIONS_IN_PREFERENCE_ORDER =
|
FEE_UPDATE_COMMAND_EXTENSIONS_IN_PREFERENCE_ORDER =
|
||||||
ImmutableList.<Class<? extends FeeTransformCommandExtension>>of(
|
ImmutableList.<Class<? extends FeeTransformCommandExtension>>of(
|
||||||
|
FeeUpdateCommandExtensionV12.class,
|
||||||
FeeUpdateCommandExtensionV11.class,
|
FeeUpdateCommandExtensionV11.class,
|
||||||
FeeUpdateCommandExtensionV06.class);
|
FeeUpdateCommandExtensionV06.class);
|
||||||
|
|
||||||
public static final ImmutableSet<String>
|
public static final ImmutableSet<String>
|
||||||
FEE_EXTENSION_URIS =
|
FEE_EXTENSION_URIS =
|
||||||
ImmutableSet.<String>of(
|
ImmutableSet.<String>of(
|
||||||
|
ServiceExtension.FEE_0_12.getUri(),
|
||||||
ServiceExtension.FEE_0_11.getUri(),
|
ServiceExtension.FEE_0_11.getUri(),
|
||||||
ServiceExtension.FEE_0_6.getUri());
|
ServiceExtension.FEE_0_6.getUri());
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,126 @@
|
||||||
|
// Copyright 2016 The Domain Registry Authors. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// 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 google.registry.model.domain.fee12;
|
||||||
|
|
||||||
|
import com.google.common.base.Ascii;
|
||||||
|
import com.google.common.base.CharMatcher;
|
||||||
|
import com.google.common.base.Optional;
|
||||||
|
import google.registry.model.ImmutableObject;
|
||||||
|
import google.registry.model.domain.Period;
|
||||||
|
import google.registry.model.domain.fee.FeeCheckCommandExtensionItem;
|
||||||
|
import google.registry.model.domain.fee.FeeCheckResponseExtensionItem;
|
||||||
|
import javax.xml.bind.annotation.XmlAttribute;
|
||||||
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
import org.joda.money.CurrencyUnit;
|
||||||
|
import org.joda.time.DateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An individual price check item in version 0.12 of the fee extension on domain check commands.
|
||||||
|
* Items look like:
|
||||||
|
*
|
||||||
|
* <fee:command name="renew" phase="sunrise" subphase="hello">
|
||||||
|
* <fee:period unit="y">1</fee:period>
|
||||||
|
* <fee:class>premium</fee:class>
|
||||||
|
* <fee:date>2017-05-17T13:22:21.0Z</fee:date>
|
||||||
|
* </fee:command>
|
||||||
|
*
|
||||||
|
* In a change from previous versions of the extension, items do not contain domain names; instead,
|
||||||
|
* the names from the non-extension check element are used.
|
||||||
|
*/
|
||||||
|
@XmlType(propOrder = {"period", "feeClass", "feeDate"})
|
||||||
|
public class FeeCheckCommandExtensionItemV12
|
||||||
|
extends ImmutableObject implements FeeCheckCommandExtensionItem {
|
||||||
|
|
||||||
|
/** The default validity period (if not specified) is 1 year for all operations. */
|
||||||
|
static final Period DEFAULT_PERIOD = Period.create(1, Period.Unit.YEARS);
|
||||||
|
|
||||||
|
@XmlAttribute(name = "name")
|
||||||
|
String commandName;
|
||||||
|
|
||||||
|
@XmlAttribute
|
||||||
|
String phase;
|
||||||
|
|
||||||
|
@XmlAttribute
|
||||||
|
String subphase;
|
||||||
|
|
||||||
|
@XmlElement
|
||||||
|
Period period;
|
||||||
|
|
||||||
|
@XmlElement(name = "class")
|
||||||
|
String feeClass;
|
||||||
|
|
||||||
|
@XmlElement(name = "date")
|
||||||
|
DateTime feeDate;
|
||||||
|
|
||||||
|
/** Version .12 does not support domain name or currency in fee extension items. */
|
||||||
|
@Override
|
||||||
|
public boolean isDomainNameSupported() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDomainName() {
|
||||||
|
throw new UnsupportedOperationException("Domain not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isCurrencySupported() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CurrencyUnit getCurrency() {
|
||||||
|
throw new UnsupportedOperationException("Currency not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getUnparsedCommandName() {
|
||||||
|
return commandName;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CommandName getCommandName() {
|
||||||
|
// Require the xml string to be lowercase.
|
||||||
|
if (commandName != null && CharMatcher.javaLowerCase().matchesAllOf(commandName)) {
|
||||||
|
try {
|
||||||
|
return CommandName.valueOf(Ascii.toUpperCase(commandName));
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
// Swallow this and return UNKNOWN below because there's no matching CommandName.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return CommandName.UNKNOWN;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getPhase() {
|
||||||
|
return phase;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getSubphase() {
|
||||||
|
return subphase;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Period getPeriod() {
|
||||||
|
return Optional.fromNullable(period).or(DEFAULT_PERIOD);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FeeCheckResponseExtensionItem.Builder createResponseBuilder() {
|
||||||
|
return new FeeCheckResponseExtensionItemV12.Builder();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,69 @@
|
||||||
|
// Copyright 2016 The Domain Registry Authors. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// 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 google.registry.model.domain.fee12;
|
||||||
|
|
||||||
|
import static google.registry.util.CollectionUtils.nullToEmptyImmutableCopy;
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
|
import com.google.common.collect.ImmutableSet;
|
||||||
|
import google.registry.model.ImmutableObject;
|
||||||
|
import google.registry.model.domain.fee.FeeCheckCommandExtension;
|
||||||
|
import google.registry.model.domain.fee.FeeCheckResponseExtensionItem;
|
||||||
|
import java.util.Set;
|
||||||
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
import org.joda.money.CurrencyUnit;
|
||||||
|
|
||||||
|
/** Version 0.12 of the fee extension that may be present on domain check commands. */
|
||||||
|
@XmlRootElement(name = "check")
|
||||||
|
@XmlType(propOrder = {"currency", "items"})
|
||||||
|
public class FeeCheckCommandExtensionV12 extends ImmutableObject
|
||||||
|
implements FeeCheckCommandExtension<
|
||||||
|
FeeCheckCommandExtensionItemV12,
|
||||||
|
FeeCheckResponseExtensionV12> {
|
||||||
|
|
||||||
|
CurrencyUnit currency;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isCurrencySupported() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CurrencyUnit getCurrency() {
|
||||||
|
return currency;
|
||||||
|
}
|
||||||
|
|
||||||
|
@XmlElement(name = "command")
|
||||||
|
Set<FeeCheckCommandExtensionItemV12> items;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ImmutableSet<FeeCheckCommandExtensionItemV12> getItems() {
|
||||||
|
return nullToEmptyImmutableCopy(items);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FeeCheckResponseExtensionV12 createResponse(
|
||||||
|
ImmutableList<? extends FeeCheckResponseExtensionItem> items) {
|
||||||
|
ImmutableList.Builder<FeeCheckResponseExtensionItemV12> builder = new ImmutableList.Builder<>();
|
||||||
|
for (FeeCheckResponseExtensionItem item : items) {
|
||||||
|
if (item instanceof FeeCheckResponseExtensionItemV12) {
|
||||||
|
builder.add((FeeCheckResponseExtensionItemV12) item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return FeeCheckResponseExtensionV12.create(currency, builder.build());
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,105 @@
|
||||||
|
// Copyright 2016 The Domain Registry Authors. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// 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 google.registry.model.domain.fee12;
|
||||||
|
|
||||||
|
import static google.registry.util.CollectionUtils.forceEmptyToNull;
|
||||||
|
|
||||||
|
import com.google.common.base.Ascii;
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
|
import google.registry.model.Buildable.GenericBuilder;
|
||||||
|
import google.registry.model.ImmutableObject;
|
||||||
|
import google.registry.model.domain.Period;
|
||||||
|
import google.registry.model.domain.fee.Fee;
|
||||||
|
import google.registry.model.domain.fee.FeeQueryCommandExtensionItem.CommandName;
|
||||||
|
import java.util.List;
|
||||||
|
import javax.xml.bind.annotation.XmlAttribute;
|
||||||
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The version 0.12 response command entity for a domain check on a single resource.
|
||||||
|
*/
|
||||||
|
@XmlType(propOrder = {"period", "fee", "feeClass"})
|
||||||
|
public class FeeCheckResponseExtensionItemCommandV12 extends ImmutableObject {
|
||||||
|
|
||||||
|
/** The command that was checked. */
|
||||||
|
@XmlAttribute(name = "name")
|
||||||
|
String commandName;
|
||||||
|
|
||||||
|
/** The phase that was checked. */
|
||||||
|
@XmlAttribute
|
||||||
|
String phase;
|
||||||
|
|
||||||
|
/** The subphase that was checked. */
|
||||||
|
@XmlAttribute
|
||||||
|
String subphase;
|
||||||
|
|
||||||
|
/** The period that was checked. */
|
||||||
|
Period period;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The magnitude of the fee, in the specified units, with an optional description.
|
||||||
|
*
|
||||||
|
* <p>This is a list because a single operation can involve multiple fees.
|
||||||
|
*/
|
||||||
|
List<Fee> fee;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The type of the fee.
|
||||||
|
*
|
||||||
|
* <p>We will use "premium" for fees on premium names, and omit the field otherwise.
|
||||||
|
*/
|
||||||
|
@XmlElement(name = "class")
|
||||||
|
String feeClass;
|
||||||
|
|
||||||
|
public String getFeeClass() {
|
||||||
|
return feeClass;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Builder for {@link FeeCheckResponseExtensionItemCommandV12}. */
|
||||||
|
public static class Builder
|
||||||
|
extends GenericBuilder<FeeCheckResponseExtensionItemCommandV12, Builder> {
|
||||||
|
|
||||||
|
public Builder setCommandName(CommandName commandName) {
|
||||||
|
getInstance().commandName = Ascii.toLowerCase(commandName.name());
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder setPhase(String phase) {
|
||||||
|
getInstance().phase = phase;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder setSubphase(String subphase) {
|
||||||
|
getInstance().subphase = subphase;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder setPeriod(Period period) {
|
||||||
|
getInstance().period = period;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder setFee(List<Fee> fees) {
|
||||||
|
getInstance().fee = forceEmptyToNull(ImmutableList.copyOf(fees));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder setClass(String feeClass) {
|
||||||
|
getInstance().feeClass = feeClass;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,115 @@
|
||||||
|
// Copyright 2016 The Domain Registry Authors. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// 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 google.registry.model.domain.fee12;
|
||||||
|
|
||||||
|
import static google.registry.util.CollectionUtils.forceEmptyToNull;
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
|
import google.registry.model.Buildable.GenericBuilder;
|
||||||
|
import google.registry.model.ImmutableObject;
|
||||||
|
import google.registry.model.domain.DomainObjectSpec;
|
||||||
|
import google.registry.model.domain.Period;
|
||||||
|
import google.registry.model.domain.fee.Fee;
|
||||||
|
import google.registry.model.domain.fee.FeeCheckResponseExtensionItem;
|
||||||
|
import google.registry.model.domain.fee.FeeQueryCommandExtensionItem.CommandName;
|
||||||
|
import java.util.List;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
import org.joda.money.CurrencyUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The version 0.12 response for a domain check on a single resource.
|
||||||
|
*/
|
||||||
|
@XmlType(propOrder = {"object", "command"})
|
||||||
|
public class FeeCheckResponseExtensionItemV12
|
||||||
|
extends ImmutableObject implements FeeCheckResponseExtensionItem {
|
||||||
|
|
||||||
|
/** The domain that was checked. */
|
||||||
|
DomainObjectSpec object;
|
||||||
|
|
||||||
|
/** The command that was checked. */
|
||||||
|
FeeCheckResponseExtensionItemCommandV12 command;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getFeeClass() {
|
||||||
|
return command.getFeeClass();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Builder for {@link FeeCheckResponseExtensionItemV12}. */
|
||||||
|
public static class Builder
|
||||||
|
extends GenericBuilder<FeeCheckResponseExtensionItemV12, Builder>
|
||||||
|
implements FeeCheckResponseExtensionItem.Builder {
|
||||||
|
|
||||||
|
final FeeCheckResponseExtensionItemCommandV12.Builder commandBuilder;
|
||||||
|
|
||||||
|
Builder() {
|
||||||
|
super();
|
||||||
|
commandBuilder = new FeeCheckResponseExtensionItemCommandV12.Builder();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Builder setCommand(CommandName commandName, String phase, String subphase) {
|
||||||
|
commandBuilder.setCommandName(commandName);
|
||||||
|
commandBuilder.setPhase(phase);
|
||||||
|
commandBuilder.setSubphase(subphase);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Builder setPeriod(Period period) {
|
||||||
|
commandBuilder.setPeriod(period);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Builder setFees(List<Fee> fees) {
|
||||||
|
commandBuilder.setFee(forceEmptyToNull(ImmutableList.copyOf(fees)));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Builder setClass(String feeClass) {
|
||||||
|
commandBuilder.setClass(feeClass);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Builder setDomainNameIfSupported(String name) {
|
||||||
|
getInstance().object = new DomainObjectSpec(name);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Version 0.12 does not support currency in check items. */
|
||||||
|
@Override
|
||||||
|
public Builder setCurrencyIfSupported(CurrencyUnit currency) {
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Builder setAvailIfSupported(boolean avail) {
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Builder setReasonIfSupported(String reason) {
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FeeCheckResponseExtensionItemV12 build() {
|
||||||
|
getInstance().command = commandBuilder.build();
|
||||||
|
return super.build();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,59 @@
|
||||||
|
// Copyright 2016 The Domain Registry Authors. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// 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 google.registry.model.domain.fee12;
|
||||||
|
|
||||||
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
|
import google.registry.model.ImmutableObject;
|
||||||
|
import google.registry.model.domain.fee.FeeCheckResponseExtension;
|
||||||
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
import org.joda.money.CurrencyUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An XML data object that represents version 0.12 of the fee extension that may be present on the
|
||||||
|
* response to EPP domain check commands.
|
||||||
|
*/
|
||||||
|
@XmlRootElement(name = "chkData")
|
||||||
|
@XmlType(propOrder = {"currency", "items"})
|
||||||
|
public class FeeCheckResponseExtensionV12
|
||||||
|
extends ImmutableObject implements FeeCheckResponseExtension<FeeCheckResponseExtensionItemV12> {
|
||||||
|
|
||||||
|
CurrencyUnit currency;
|
||||||
|
|
||||||
|
/** Check responses. */
|
||||||
|
@XmlElement(name = "cd")
|
||||||
|
ImmutableList<FeeCheckResponseExtensionItemV12> items;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setCurrencyIfSupported(CurrencyUnit currency) {
|
||||||
|
this.currency = currency;
|
||||||
|
}
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
@Override
|
||||||
|
public ImmutableList<FeeCheckResponseExtensionItemV12> getItems() {
|
||||||
|
return items;
|
||||||
|
}
|
||||||
|
|
||||||
|
static FeeCheckResponseExtensionV12
|
||||||
|
create(CurrencyUnit currency, ImmutableList<FeeCheckResponseExtensionItemV12> items) {
|
||||||
|
FeeCheckResponseExtensionV12 instance = new FeeCheckResponseExtensionV12();
|
||||||
|
instance.currency = currency;
|
||||||
|
instance.items = items;
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
// Copyright 2016 The Domain Registry Authors. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// 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 google.registry.model.domain.fee12;
|
||||||
|
|
||||||
|
import google.registry.model.domain.fee.FeeTransformCommandExtension;
|
||||||
|
import google.registry.model.domain.fee.FeeTransformCommandExtensionImpl;
|
||||||
|
import google.registry.model.domain.fee.FeeTransformResponseExtension;
|
||||||
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
/** A fee extension that may be present on domain create commands. */
|
||||||
|
@XmlRootElement(name = "create")
|
||||||
|
@XmlType(propOrder = {"currency", "fees", "credits"})
|
||||||
|
public class FeeCreateCommandExtensionV12
|
||||||
|
extends FeeTransformCommandExtensionImpl implements FeeTransformCommandExtension {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FeeTransformResponseExtension.Builder createResponseBuilder() {
|
||||||
|
return new FeeCreateResponseExtensionV12.Builder();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
// Copyright 2016 The Domain Registry Authors. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// 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 google.registry.model.domain.fee12;
|
||||||
|
|
||||||
|
import google.registry.model.domain.fee.FeeTransformResponseExtensionImpl;
|
||||||
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An XML data object that represents a fee extension that may be present on the response to EPP
|
||||||
|
* domain create commands.
|
||||||
|
*/
|
||||||
|
@XmlRootElement(name = "creData")
|
||||||
|
@XmlType(propOrder = {"currency", "fees", "credits"})
|
||||||
|
public class FeeCreateResponseExtensionV12 extends FeeTransformResponseExtensionImpl {
|
||||||
|
/** A builder for {@link FeeCreateResponseExtensionV12}. */
|
||||||
|
public static class Builder
|
||||||
|
extends FeeTransformResponseExtensionImpl.Builder<FeeCreateResponseExtensionV12, Builder> {}
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
// Copyright 2016 The Domain Registry Authors. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// 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 google.registry.model.domain.fee12;
|
||||||
|
|
||||||
|
import google.registry.model.domain.fee.FeeTransformResponseExtensionImpl;
|
||||||
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An XML data object that represents a fee extension that may be present on the response to EPP
|
||||||
|
* domain create commands.
|
||||||
|
*/
|
||||||
|
@XmlRootElement(name = "delData")
|
||||||
|
@XmlType(propOrder = {"currency", "fees", "credits"})
|
||||||
|
public class FeeDeleteResponseExtensionV12 extends FeeTransformResponseExtensionImpl {
|
||||||
|
|
||||||
|
/** Builder for {@link FeeDeleteResponseExtensionV12}. */
|
||||||
|
public static class Builder
|
||||||
|
extends FeeTransformResponseExtensionImpl.Builder<FeeDeleteResponseExtensionV12, Builder> {}
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
// Copyright 2016 The Domain Registry Authors. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// 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 google.registry.model.domain.fee12;
|
||||||
|
|
||||||
|
import google.registry.model.domain.fee.FeeTransformCommandExtension;
|
||||||
|
import google.registry.model.domain.fee.FeeTransformCommandExtensionImpl;
|
||||||
|
import google.registry.model.domain.fee.FeeTransformResponseExtension;
|
||||||
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
/** A fee extension that may be present on domain renew commands. */
|
||||||
|
@XmlRootElement(name = "renew")
|
||||||
|
@XmlType(propOrder = {"currency", "fees", "credits"})
|
||||||
|
public class FeeRenewCommandExtensionV12
|
||||||
|
extends FeeTransformCommandExtensionImpl implements FeeTransformCommandExtension {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FeeTransformResponseExtension.Builder createResponseBuilder() {
|
||||||
|
return new FeeRenewResponseExtensionV12.Builder();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
// Copyright 2016 The Domain Registry Authors. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// 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 google.registry.model.domain.fee12;
|
||||||
|
|
||||||
|
import google.registry.model.domain.fee.FeeTransformResponseExtensionImpl;
|
||||||
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An XML data object that represents a fee extension that may be present on the response to EPP
|
||||||
|
* domain renew commands.
|
||||||
|
*/
|
||||||
|
@XmlRootElement(name = "renData")
|
||||||
|
@XmlType(propOrder = {"currency", "fees", "credits"})
|
||||||
|
public class FeeRenewResponseExtensionV12 extends FeeTransformResponseExtensionImpl {
|
||||||
|
/** A builder for {@link FeeRenewResponseExtensionV12}. */
|
||||||
|
public static class Builder
|
||||||
|
extends FeeTransformResponseExtensionImpl.Builder<FeeRenewResponseExtensionV12, Builder> {}
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
// Copyright 2016 The Domain Registry Authors. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// 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 google.registry.model.domain.fee12;
|
||||||
|
|
||||||
|
import google.registry.model.domain.fee.FeeTransformCommandExtension;
|
||||||
|
import google.registry.model.domain.fee.FeeTransformCommandExtensionImpl;
|
||||||
|
import google.registry.model.domain.fee.FeeTransformResponseExtension;
|
||||||
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
/** A fee extension that may be present on domain transfer requests. */
|
||||||
|
@XmlRootElement(name = "transfer")
|
||||||
|
@XmlType(propOrder = {"currency", "fees", "credits"})
|
||||||
|
public class FeeTransferCommandExtensionV12
|
||||||
|
extends FeeTransformCommandExtensionImpl implements FeeTransformCommandExtension {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FeeTransformResponseExtension.Builder createResponseBuilder() {
|
||||||
|
return new FeeTransferResponseExtensionV12.Builder();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
// Copyright 2016 The Domain Registry Authors. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// 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 google.registry.model.domain.fee12;
|
||||||
|
|
||||||
|
import google.registry.model.domain.fee.FeeTransformResponseExtensionImpl;
|
||||||
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An XML data object that represents a fee extension that may be present on the response to EPP
|
||||||
|
* domain transfer requests.
|
||||||
|
*/
|
||||||
|
@XmlRootElement(name = "trnData")
|
||||||
|
@XmlType(propOrder = {"currency", "fees", "credits"})
|
||||||
|
public class FeeTransferResponseExtensionV12 extends FeeTransformResponseExtensionImpl {
|
||||||
|
/** A builder for {@link FeeTransferResponseExtensionV12}. */
|
||||||
|
public static class Builder
|
||||||
|
extends FeeTransformResponseExtensionImpl.Builder<FeeTransferResponseExtensionV12, Builder> {}
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
// Copyright 2016 The Domain Registry Authors. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// 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 google.registry.model.domain.fee12;
|
||||||
|
|
||||||
|
import google.registry.model.domain.fee.FeeTransformCommandExtension;
|
||||||
|
import google.registry.model.domain.fee.FeeTransformCommandExtensionImpl;
|
||||||
|
import google.registry.model.domain.fee.FeeTransformResponseExtension;
|
||||||
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
/** A fee extension that may be present on domain update commands. */
|
||||||
|
@XmlRootElement(name = "update")
|
||||||
|
@XmlType(propOrder = {"currency", "fees", "credits"})
|
||||||
|
public class FeeUpdateCommandExtensionV12
|
||||||
|
extends FeeTransformCommandExtensionImpl implements FeeTransformCommandExtension {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FeeTransformResponseExtension.Builder createResponseBuilder() {
|
||||||
|
return new FeeUpdateResponseExtensionV12.Builder();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
// Copyright 2016 The Domain Registry Authors. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// 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 google.registry.model.domain.fee12;
|
||||||
|
|
||||||
|
import google.registry.model.domain.fee.FeeTransformResponseExtensionImpl;
|
||||||
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An XML data object that represents a fee extension that may be present on the response to EPP
|
||||||
|
* domain update commands.
|
||||||
|
*/
|
||||||
|
@XmlRootElement(name = "updData")
|
||||||
|
@XmlType(propOrder = {"currency", "fees", "credits"})
|
||||||
|
public class FeeUpdateResponseExtensionV12 extends FeeTransformResponseExtensionImpl {
|
||||||
|
/** A builder for {@link FeeUpdateResponseExtensionV12}. */
|
||||||
|
public static class Builder
|
||||||
|
extends FeeTransformResponseExtensionImpl.Builder<FeeUpdateResponseExtensionV12, Builder> {}
|
||||||
|
}
|
29
java/google/registry/model/domain/fee12/package-info.java
Normal file
29
java/google/registry/model/domain/fee12/package-info.java
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
// Copyright 2016 The Domain Registry Authors. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
@XmlSchema(
|
||||||
|
namespace = "urn:ietf:params:xml:ns:fee-0.12",
|
||||||
|
xmlns = @XmlNs(prefix = "fee12", namespaceURI = "urn:ietf:params:xml:ns:fee-0.12"),
|
||||||
|
elementFormDefault = XmlNsForm.QUALIFIED)
|
||||||
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
|
@XmlJavaTypeAdapter(CurrencyUnitAdapter.class)
|
||||||
|
package google.registry.model.domain.fee12;
|
||||||
|
|
||||||
|
import google.registry.model.translators.CurrencyUnitAdapter;
|
||||||
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
|
import javax.xml.bind.annotation.XmlAccessorType;
|
||||||
|
import javax.xml.bind.annotation.XmlNs;
|
||||||
|
import javax.xml.bind.annotation.XmlNsForm;
|
||||||
|
import javax.xml.bind.annotation.XmlSchema;
|
||||||
|
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
|
|
@ -26,6 +26,8 @@ import google.registry.model.domain.fee06.FeeCheckCommandExtensionV06;
|
||||||
import google.registry.model.domain.fee06.FeeCheckResponseExtensionV06;
|
import google.registry.model.domain.fee06.FeeCheckResponseExtensionV06;
|
||||||
import google.registry.model.domain.fee11.FeeCheckCommandExtensionV11;
|
import google.registry.model.domain.fee11.FeeCheckCommandExtensionV11;
|
||||||
import google.registry.model.domain.fee11.FeeCheckResponseExtensionV11;
|
import google.registry.model.domain.fee11.FeeCheckResponseExtensionV11;
|
||||||
|
import google.registry.model.domain.fee12.FeeCheckCommandExtensionV12;
|
||||||
|
import google.registry.model.domain.fee12.FeeCheckResponseExtensionV12;
|
||||||
import google.registry.model.domain.launch.LaunchCreateExtension;
|
import google.registry.model.domain.launch.LaunchCreateExtension;
|
||||||
import google.registry.model.domain.metadata.MetadataExtension;
|
import google.registry.model.domain.metadata.MetadataExtension;
|
||||||
import google.registry.model.domain.rgp.RgpUpdateExtension;
|
import google.registry.model.domain.rgp.RgpUpdateExtension;
|
||||||
|
@ -54,6 +56,7 @@ public class ProtocolDefinition {
|
||||||
SECURE_DNS_1_1(SecDnsCreateExtension.class, null, true),
|
SECURE_DNS_1_1(SecDnsCreateExtension.class, null, true),
|
||||||
FEE_0_6(FeeCheckCommandExtensionV06.class, FeeCheckResponseExtensionV06.class, true),
|
FEE_0_6(FeeCheckCommandExtensionV06.class, FeeCheckResponseExtensionV06.class, true),
|
||||||
FEE_0_11(FeeCheckCommandExtensionV11.class, FeeCheckResponseExtensionV11.class, true),
|
FEE_0_11(FeeCheckCommandExtensionV11.class, FeeCheckResponseExtensionV11.class, true),
|
||||||
|
FEE_0_12(FeeCheckCommandExtensionV12.class, FeeCheckResponseExtensionV12.class, true),
|
||||||
ALLOCATE_1_0(AllocateCreateExtension.class, null, false),
|
ALLOCATE_1_0(AllocateCreateExtension.class, null, false),
|
||||||
METADATA_1_0(MetadataExtension.class, null, false);
|
METADATA_1_0(MetadataExtension.class, null, false);
|
||||||
|
|
||||||
|
|
|
@ -36,6 +36,11 @@ import google.registry.model.domain.fee11.FeeCreateCommandExtensionV11;
|
||||||
import google.registry.model.domain.fee11.FeeRenewCommandExtensionV11;
|
import google.registry.model.domain.fee11.FeeRenewCommandExtensionV11;
|
||||||
import google.registry.model.domain.fee11.FeeTransferCommandExtensionV11;
|
import google.registry.model.domain.fee11.FeeTransferCommandExtensionV11;
|
||||||
import google.registry.model.domain.fee11.FeeUpdateCommandExtensionV11;
|
import google.registry.model.domain.fee11.FeeUpdateCommandExtensionV11;
|
||||||
|
import google.registry.model.domain.fee12.FeeCheckCommandExtensionV12;
|
||||||
|
import google.registry.model.domain.fee12.FeeCreateCommandExtensionV12;
|
||||||
|
import google.registry.model.domain.fee12.FeeRenewCommandExtensionV12;
|
||||||
|
import google.registry.model.domain.fee12.FeeTransferCommandExtensionV12;
|
||||||
|
import google.registry.model.domain.fee12.FeeUpdateCommandExtensionV12;
|
||||||
import google.registry.model.domain.launch.LaunchCheckExtension;
|
import google.registry.model.domain.launch.LaunchCheckExtension;
|
||||||
import google.registry.model.domain.launch.LaunchCreateExtension;
|
import google.registry.model.domain.launch.LaunchCreateExtension;
|
||||||
import google.registry.model.domain.launch.LaunchDeleteExtension;
|
import google.registry.model.domain.launch.LaunchDeleteExtension;
|
||||||
|
@ -311,6 +316,12 @@ public class EppInput extends ImmutableObject {
|
||||||
@XmlElementRef(type = FeeRenewCommandExtensionV11.class),
|
@XmlElementRef(type = FeeRenewCommandExtensionV11.class),
|
||||||
@XmlElementRef(type = FeeTransferCommandExtensionV11.class),
|
@XmlElementRef(type = FeeTransferCommandExtensionV11.class),
|
||||||
@XmlElementRef(type = FeeUpdateCommandExtensionV11.class),
|
@XmlElementRef(type = FeeUpdateCommandExtensionV11.class),
|
||||||
|
// fee extension version 0.12
|
||||||
|
@XmlElementRef(type = FeeCheckCommandExtensionV12.class),
|
||||||
|
@XmlElementRef(type = FeeCreateCommandExtensionV12.class),
|
||||||
|
@XmlElementRef(type = FeeRenewCommandExtensionV12.class),
|
||||||
|
@XmlElementRef(type = FeeTransferCommandExtensionV12.class),
|
||||||
|
@XmlElementRef(type = FeeUpdateCommandExtensionV12.class),
|
||||||
// other extensions
|
// other extensions
|
||||||
@XmlElementRef(type = LaunchCheckExtension.class),
|
@XmlElementRef(type = LaunchCheckExtension.class),
|
||||||
@XmlElementRef(type = LaunchCreateExtension.class),
|
@XmlElementRef(type = LaunchCreateExtension.class),
|
||||||
|
|
|
@ -35,6 +35,12 @@ import google.registry.model.domain.fee11.FeeDeleteResponseExtensionV11;
|
||||||
import google.registry.model.domain.fee11.FeeRenewResponseExtensionV11;
|
import google.registry.model.domain.fee11.FeeRenewResponseExtensionV11;
|
||||||
import google.registry.model.domain.fee11.FeeTransferResponseExtensionV11;
|
import google.registry.model.domain.fee11.FeeTransferResponseExtensionV11;
|
||||||
import google.registry.model.domain.fee11.FeeUpdateResponseExtensionV11;
|
import google.registry.model.domain.fee11.FeeUpdateResponseExtensionV11;
|
||||||
|
import google.registry.model.domain.fee12.FeeCheckResponseExtensionV12;
|
||||||
|
import google.registry.model.domain.fee12.FeeCreateResponseExtensionV12;
|
||||||
|
import google.registry.model.domain.fee12.FeeDeleteResponseExtensionV12;
|
||||||
|
import google.registry.model.domain.fee12.FeeRenewResponseExtensionV12;
|
||||||
|
import google.registry.model.domain.fee12.FeeTransferResponseExtensionV12;
|
||||||
|
import google.registry.model.domain.fee12.FeeUpdateResponseExtensionV12;
|
||||||
import google.registry.model.domain.launch.LaunchCheckResponseExtension;
|
import google.registry.model.domain.launch.LaunchCheckResponseExtension;
|
||||||
import google.registry.model.domain.launch.LaunchCreateResponseExtension;
|
import google.registry.model.domain.launch.LaunchCreateResponseExtension;
|
||||||
import google.registry.model.domain.launch.LaunchInfoResponseExtension;
|
import google.registry.model.domain.launch.LaunchInfoResponseExtension;
|
||||||
|
@ -140,6 +146,12 @@ public class EppResponse extends ImmutableObject implements ResponseOrGreeting {
|
||||||
@XmlElementRef(type = FeeRenewResponseExtensionV11.class),
|
@XmlElementRef(type = FeeRenewResponseExtensionV11.class),
|
||||||
@XmlElementRef(type = FeeTransferResponseExtensionV11.class),
|
@XmlElementRef(type = FeeTransferResponseExtensionV11.class),
|
||||||
@XmlElementRef(type = FeeUpdateResponseExtensionV11.class),
|
@XmlElementRef(type = FeeUpdateResponseExtensionV11.class),
|
||||||
|
@XmlElementRef(type = FeeCheckResponseExtensionV12.class),
|
||||||
|
@XmlElementRef(type = FeeCreateResponseExtensionV12.class),
|
||||||
|
@XmlElementRef(type = FeeDeleteResponseExtensionV12.class),
|
||||||
|
@XmlElementRef(type = FeeRenewResponseExtensionV12.class),
|
||||||
|
@XmlElementRef(type = FeeTransferResponseExtensionV12.class),
|
||||||
|
@XmlElementRef(type = FeeUpdateResponseExtensionV12.class),
|
||||||
@XmlElementRef(type = LaunchCheckResponseExtension.class),
|
@XmlElementRef(type = LaunchCheckResponseExtension.class),
|
||||||
@XmlElementRef(type = LaunchCreateResponseExtension.class),
|
@XmlElementRef(type = LaunchCreateResponseExtension.class),
|
||||||
@XmlElementRef(type = LaunchInfoResponseExtension.class),
|
@XmlElementRef(type = LaunchInfoResponseExtension.class),
|
||||||
|
|
|
@ -44,6 +44,7 @@ public class XjcXmlTransformer {
|
||||||
.put("smd", "smd.xsd")
|
.put("smd", "smd.xsd")
|
||||||
.put("fee06", "fee06.xsd")
|
.put("fee06", "fee06.xsd")
|
||||||
.put("fee11", "fee11.xsd")
|
.put("fee11", "fee11.xsd")
|
||||||
|
.put("fee12", "fee12.xsd")
|
||||||
.put("launch", "launch.xsd")
|
.put("launch", "launch.xsd")
|
||||||
.put("rde", "rde.xsd")
|
.put("rde", "rde.xsd")
|
||||||
.put("rdeheader", "rde-header.xsd")
|
.put("rdeheader", "rde-header.xsd")
|
||||||
|
|
|
@ -155,6 +155,15 @@
|
||||||
</nameXmlTransform>
|
</nameXmlTransform>
|
||||||
</schemaBindings>
|
</schemaBindings>
|
||||||
</bindings>
|
</bindings>
|
||||||
|
<bindings schemaLocation="fee12.xsd" node="/xsd:schema">
|
||||||
|
<schemaBindings>
|
||||||
|
<package name="google.registry.xjc.fee12"/>
|
||||||
|
<nameXmlTransform>
|
||||||
|
<elementName prefix="XjcFee12"/>
|
||||||
|
<typeName prefix="XjcFee12"/>
|
||||||
|
</nameXmlTransform>
|
||||||
|
</schemaBindings>
|
||||||
|
</bindings>
|
||||||
<bindings schemaLocation="launch.xsd" node="/xsd:schema">
|
<bindings schemaLocation="launch.xsd" node="/xsd:schema">
|
||||||
<schemaBindings>
|
<schemaBindings>
|
||||||
<package name="google.registry.xjc.launch"/>
|
<package name="google.registry.xjc.launch"/>
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
|
||||||
#
|
#
|
||||||
# .'``'. ...
|
# .'``'. ...
|
||||||
# :o o `....'` ;
|
# :o o `....'` ;
|
||||||
|
@ -25,6 +26,7 @@ pkginfo_generated_files = [
|
||||||
"eppcom/package-info.java",
|
"eppcom/package-info.java",
|
||||||
"fee06/package-info.java",
|
"fee06/package-info.java",
|
||||||
"fee11/package-info.java",
|
"fee11/package-info.java",
|
||||||
|
"fee12/package-info.java",
|
||||||
"host/package-info.java",
|
"host/package-info.java",
|
||||||
"iirdea/package-info.java",
|
"iirdea/package-info.java",
|
||||||
"launch/package-info.java",
|
"launch/package-info.java",
|
||||||
|
@ -208,6 +210,25 @@ xjc_generated_files = [
|
||||||
"fee11/XjcFee11TrnData.java",
|
"fee11/XjcFee11TrnData.java",
|
||||||
"fee11/XjcFee11UpdData.java",
|
"fee11/XjcFee11UpdData.java",
|
||||||
"fee11/XjcFee11Update.java",
|
"fee11/XjcFee11Update.java",
|
||||||
|
"fee12/ObjectFactory.java",
|
||||||
|
"fee12/XjcFee12Check.java",
|
||||||
|
"fee12/XjcFee12ChkData.java",
|
||||||
|
"fee12/XjcFee12CommandCDType.java",
|
||||||
|
"fee12/XjcFee12CommandCheckType.java",
|
||||||
|
"fee12/XjcFee12CreData.java",
|
||||||
|
"fee12/XjcFee12Create.java",
|
||||||
|
"fee12/XjcFee12CreditType.java",
|
||||||
|
"fee12/XjcFee12DelData.java",
|
||||||
|
"fee12/XjcFee12FeeType.java",
|
||||||
|
"fee12/XjcFee12ObjectCDType.java",
|
||||||
|
"fee12/XjcFee12RenData.java",
|
||||||
|
"fee12/XjcFee12Renew.java",
|
||||||
|
"fee12/XjcFee12Transfer.java",
|
||||||
|
"fee12/XjcFee12TransformCommandType.java",
|
||||||
|
"fee12/XjcFee12TransformResultType.java",
|
||||||
|
"fee12/XjcFee12TrnData.java",
|
||||||
|
"fee12/XjcFee12UpdData.java",
|
||||||
|
"fee12/XjcFee12Update.java",
|
||||||
"host/ObjectFactory.java",
|
"host/ObjectFactory.java",
|
||||||
"host/XjcHostAddRemType.java",
|
"host/XjcHostAddRemType.java",
|
||||||
"host/XjcHostAddrType.java",
|
"host/XjcHostAddrType.java",
|
||||||
|
|
|
@ -35,6 +35,7 @@ create epp urn:ietf:params:xml:ns:epp-1.0
|
||||||
create eppcom urn:ietf:params:xml:ns:eppcom-1.0
|
create eppcom urn:ietf:params:xml:ns:eppcom-1.0
|
||||||
create fee06 urn:ietf:params:xml:ns:fee-0.6
|
create fee06 urn:ietf:params:xml:ns:fee-0.6
|
||||||
create fee11 urn:ietf:params:xml:ns:fee-0.11
|
create fee11 urn:ietf:params:xml:ns:fee-0.11
|
||||||
|
create fee12 urn:ietf:params:xml:ns:fee-0.12
|
||||||
create host urn:ietf:params:xml:ns:host-1.0
|
create host urn:ietf:params:xml:ns:host-1.0
|
||||||
create iirdea urn:ietf:params:xml:ns:iirdea-1.0
|
create iirdea urn:ietf:params:xml:ns:iirdea-1.0
|
||||||
create launch urn:ietf:params:xml:ns:launch-1.0
|
create launch urn:ietf:params:xml:ns:launch-1.0
|
||||||
|
|
|
@ -24,6 +24,9 @@
|
||||||
@javax.xml.bind.annotation.XmlNs(
|
@javax.xml.bind.annotation.XmlNs(
|
||||||
prefix = "fee11",
|
prefix = "fee11",
|
||||||
namespaceURI = "urn:ietf:params:xml:ns:fee-0.11"),
|
namespaceURI = "urn:ietf:params:xml:ns:fee-0.11"),
|
||||||
|
@javax.xml.bind.annotation.XmlNs(
|
||||||
|
prefix = "fee12",
|
||||||
|
namespaceURI = "urn:ietf:params:xml:ns:fee-0.12"),
|
||||||
@javax.xml.bind.annotation.XmlNs(
|
@javax.xml.bind.annotation.XmlNs(
|
||||||
prefix = "host",
|
prefix = "host",
|
||||||
namespaceURI = "urn:ietf:params:xml:ns:host-1.0"),
|
namespaceURI = "urn:ietf:params:xml:ns:host-1.0"),
|
||||||
|
|
242
java/google/registry/xml/xsd/fee12.xsd
Normal file
242
java/google/registry/xml/xsd/fee12.xsd
Normal file
|
@ -0,0 +1,242 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<schema xmlns="http://www.w3.org/2001/XMLSchema"
|
||||||
|
xmlns:fee="urn:ietf:params:xml:ns:fee-0.12"
|
||||||
|
xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
|
||||||
|
xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
|
||||||
|
targetNamespace="urn:ietf:params:xml:ns:fee-0.12"
|
||||||
|
elementFormDefault="qualified">
|
||||||
|
|
||||||
|
<import namespace="urn:ietf:params:xml:ns:eppcom-1.0" />
|
||||||
|
<import namespace="urn:ietf:params:xml:ns:domain-1.0" />
|
||||||
|
|
||||||
|
<annotation>
|
||||||
|
<documentation>Extensible Provisioning Protocol
|
||||||
|
v1.0 extension schema for fee
|
||||||
|
information.</documentation>
|
||||||
|
</annotation>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Child elements found in EPP commands and responses
|
||||||
|
-->
|
||||||
|
<element name="check" type="fee:checkType" />
|
||||||
|
<element name="chkData" type="fee:chkDataType" />
|
||||||
|
<element name="create" type="fee:transformCommandType" />
|
||||||
|
<element name="creData" type="fee:transformResultType" />
|
||||||
|
<element name="renew" type="fee:transformCommandType" />
|
||||||
|
<element name="renData" type="fee:transformResultType" />
|
||||||
|
<element name="transfer" type="fee:transformCommandType" />
|
||||||
|
<element name="trnData" type="fee:transferResultType" />
|
||||||
|
<element name="update" type="fee:transformCommandType" />
|
||||||
|
<element name="updData" type="fee:transformResultType" />
|
||||||
|
<element name="delData" type="fee:transformResultType" />
|
||||||
|
|
||||||
|
<!--
|
||||||
|
client <check> command
|
||||||
|
-->
|
||||||
|
<complexType name="checkType">
|
||||||
|
<sequence>
|
||||||
|
<element name="currency"
|
||||||
|
type="fee:currencyType"
|
||||||
|
minOccurs="0" />
|
||||||
|
<element name="command"
|
||||||
|
type="fee:commandCheckType"
|
||||||
|
maxOccurs="unbounded" />
|
||||||
|
</sequence>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<complexType name="commandCheckType">
|
||||||
|
<sequence>
|
||||||
|
<element name="period"
|
||||||
|
type="domain:periodType"
|
||||||
|
minOccurs="0" />
|
||||||
|
<element name="class"
|
||||||
|
type="token"
|
||||||
|
minOccurs="0" />
|
||||||
|
<element name="date"
|
||||||
|
type="dateTime"
|
||||||
|
minOccurs="0" />
|
||||||
|
</sequence>
|
||||||
|
<attribute name="name" type="fee:commandTypeValue" />
|
||||||
|
<attribute name="phase" type="token" />
|
||||||
|
<attribute name="subphase" type="token" />
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
server <check> result
|
||||||
|
-->
|
||||||
|
<complexType name="chkDataType">
|
||||||
|
<sequence>
|
||||||
|
<!--
|
||||||
|
Dialog is ongoing with Gavin Brown about this. His XSD has a
|
||||||
|
mandatory currency field. But what if the different domains being
|
||||||
|
checked have different currencies? I am trying to figure out what
|
||||||
|
he intends here. - Brian
|
||||||
|
-->
|
||||||
|
<element name="currency" type="fee:currencyType" minOccurs="0"/>
|
||||||
|
<element name="cd" type="fee:objectCDType"
|
||||||
|
maxOccurs="unbounded" />
|
||||||
|
</sequence>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<complexType name="objectCDType">
|
||||||
|
<sequence>
|
||||||
|
<element name="object">
|
||||||
|
<complexType>
|
||||||
|
<sequence>
|
||||||
|
<any namespace="##other" processContents="lax"/>
|
||||||
|
</sequence>
|
||||||
|
</complexType>
|
||||||
|
</element>
|
||||||
|
<element name="command"
|
||||||
|
type="fee:commandCDType"
|
||||||
|
maxOccurs="unbounded" />
|
||||||
|
</sequence>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<complexType name="commandCDType">
|
||||||
|
<sequence>
|
||||||
|
<element name="period"
|
||||||
|
type="domain:periodType"
|
||||||
|
minOccurs="0" maxOccurs="1" />
|
||||||
|
<element name="fee"
|
||||||
|
type="fee:feeType"
|
||||||
|
minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<element name="credit"
|
||||||
|
type="fee:creditType"
|
||||||
|
minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<element name="class"
|
||||||
|
type="token"
|
||||||
|
minOccurs="0" />
|
||||||
|
<element name="reason"
|
||||||
|
type="token"
|
||||||
|
minOccurs="0" />
|
||||||
|
<element name="date"
|
||||||
|
type="dateTime"
|
||||||
|
minOccurs="0" />
|
||||||
|
<element name="notAfter"
|
||||||
|
type="dateTime"
|
||||||
|
minOccurs="0" />
|
||||||
|
</sequence>
|
||||||
|
<attribute name="avail" type="boolean" default="1" />
|
||||||
|
<attribute name="name" type="fee:commandTypeValue" />
|
||||||
|
<attribute name="phase" type="token" />
|
||||||
|
<attribute name="subphase" type="token" />
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
general transform (create, renew, update, transfer) command
|
||||||
|
-->
|
||||||
|
<complexType name="transformCommandType">
|
||||||
|
<sequence>
|
||||||
|
<element name="currency" type="fee:currencyType"
|
||||||
|
minOccurs="0" />
|
||||||
|
<element name="fee" type="fee:feeType"
|
||||||
|
maxOccurs="unbounded" />
|
||||||
|
<element name="credit" type="fee:creditType"
|
||||||
|
minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
</sequence>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
general transform (create, renew, update, delete) result
|
||||||
|
-->
|
||||||
|
<complexType name="transformResultType">
|
||||||
|
<sequence>
|
||||||
|
<element name="currency" type="fee:currencyType" />
|
||||||
|
<element name="fee" type="fee:feeType"
|
||||||
|
minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<element name="credit" type="fee:creditType"
|
||||||
|
minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<element name="balance" type="fee:balanceType"
|
||||||
|
minOccurs="0" />
|
||||||
|
<element name="creditLimit" type="fee:creditLimitType"
|
||||||
|
minOccurs="0" />
|
||||||
|
</sequence>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
transfer result
|
||||||
|
-->
|
||||||
|
<complexType name="transferResultType">
|
||||||
|
<sequence>
|
||||||
|
<element name="currency" type="fee:currencyType" />
|
||||||
|
|
||||||
|
<!-- only used op="query" responses -->
|
||||||
|
<element name="period" type="domain:periodType"
|
||||||
|
minOccurs="0" />
|
||||||
|
|
||||||
|
<element name="fee" type="fee:feeType"
|
||||||
|
maxOccurs="unbounded" />
|
||||||
|
<element name="credit" type="fee:creditType"
|
||||||
|
minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
|
||||||
|
<element name="balance" type="fee:balanceType"
|
||||||
|
minOccurs="0" />
|
||||||
|
<element name="creditLimit" type="fee:creditLimitType"
|
||||||
|
minOccurs="0" />
|
||||||
|
</sequence>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
common types
|
||||||
|
-->
|
||||||
|
<simpleType name="currencyType">
|
||||||
|
<restriction base="string">
|
||||||
|
<pattern value="[A-Z]{3}" />
|
||||||
|
</restriction>
|
||||||
|
</simpleType>
|
||||||
|
|
||||||
|
<simpleType name="commandTypeValue">
|
||||||
|
<restriction base="token">
|
||||||
|
<minLength value="3"/>
|
||||||
|
<maxLength value="16"/>
|
||||||
|
</restriction>
|
||||||
|
</simpleType>
|
||||||
|
|
||||||
|
<simpleType name="nonNegativeDecimal">
|
||||||
|
<restriction base="decimal">
|
||||||
|
<minInclusive value="0" />
|
||||||
|
</restriction>
|
||||||
|
</simpleType>
|
||||||
|
|
||||||
|
<simpleType name="negativeDecimal">
|
||||||
|
<restriction base="decimal">
|
||||||
|
<maxInclusive value="0" />
|
||||||
|
</restriction>
|
||||||
|
</simpleType>
|
||||||
|
|
||||||
|
<complexType name="feeType">
|
||||||
|
<simpleContent>
|
||||||
|
<extension base="fee:nonNegativeDecimal">
|
||||||
|
<attribute name="description"/>
|
||||||
|
<attribute name="refundable" type="boolean" />
|
||||||
|
<attribute name="grace-period" type="duration" />
|
||||||
|
<attribute name="applied" default="immediate">
|
||||||
|
<simpleType>
|
||||||
|
<restriction base="token">
|
||||||
|
<enumeration value="immediate" />
|
||||||
|
<enumeration value="delayed" />
|
||||||
|
</restriction>
|
||||||
|
</simpleType>
|
||||||
|
</attribute>
|
||||||
|
</extension>
|
||||||
|
</simpleContent>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<complexType name="creditType">
|
||||||
|
<simpleContent>
|
||||||
|
<extension base="fee:negativeDecimal">
|
||||||
|
<attribute name="description"/>
|
||||||
|
</extension>
|
||||||
|
</simpleContent>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<simpleType name="balanceType">
|
||||||
|
<restriction base="decimal" />
|
||||||
|
</simpleType>
|
||||||
|
|
||||||
|
<simpleType name="creditLimitType">
|
||||||
|
<restriction base="decimal" />
|
||||||
|
</simpleType>
|
||||||
|
|
||||||
|
</schema>
|
|
@ -479,6 +479,15 @@ public class DomainApplicationCreateFlowTest
|
||||||
doSuccessfulTest("domain_create_landrush_fee_response.xml", false, "0.11", "fee11");
|
doSuccessfulTest("domain_create_landrush_fee_response.xml", false, "0.11", "fee11");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSuccess_landrushApplicationWithFee_v12() throws Exception {
|
||||||
|
createTld("tld", TldState.LANDRUSH);
|
||||||
|
setEppInput("domain_create_landrush_fee.xml", ImmutableMap.of("FEE_VERSION", "0.12"));
|
||||||
|
persistContactsAndHosts();
|
||||||
|
clock.advanceOneMilli();
|
||||||
|
doSuccessfulTest("domain_create_landrush_fee_response.xml", false, "0.12", "fee12");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_landrushApplicationWithFee_withDefaultAttributes_v06() throws Exception {
|
public void testSuccess_landrushApplicationWithFee_withDefaultAttributes_v06() throws Exception {
|
||||||
createTld("tld", TldState.LANDRUSH);
|
createTld("tld", TldState.LANDRUSH);
|
||||||
|
@ -497,6 +506,15 @@ public class DomainApplicationCreateFlowTest
|
||||||
doSuccessfulTest("domain_create_landrush_fee_response.xml", false, "0.11", "fee11");
|
doSuccessfulTest("domain_create_landrush_fee_response.xml", false, "0.11", "fee11");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSuccess_landrushApplicationWithFee_withDefaultAttributes_v12() throws Exception {
|
||||||
|
createTld("tld", TldState.LANDRUSH);
|
||||||
|
setEppInput("domain_create_landrush_fee_defaults.xml", ImmutableMap.of("FEE_VERSION", "0.12"));
|
||||||
|
persistContactsAndHosts();
|
||||||
|
clock.advanceOneMilli();
|
||||||
|
doSuccessfulTest("domain_create_landrush_fee_response.xml", false, "0.12", "fee12");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_landrushApplicationWithRefundableFee_v06() throws Exception {
|
public void testFailure_landrushApplicationWithRefundableFee_v06() throws Exception {
|
||||||
thrown.expect(UnsupportedFeeAttributeException.class);
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
|
@ -518,6 +536,17 @@ public class DomainApplicationCreateFlowTest
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_landrushApplicationWithRefundableFee_v12() throws Exception {
|
||||||
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
|
createTld("tld", TldState.LANDRUSH);
|
||||||
|
persistContactsAndHosts();
|
||||||
|
clock.advanceOneMilli();
|
||||||
|
setEppInput(
|
||||||
|
"domain_create_landrush_fee_refundable.xml", ImmutableMap.of("FEE_VERSION", "0.12"));
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_landrushApplicationWithGracePeriodFee_v06() throws Exception {
|
public void testFailure_landrushApplicationWithGracePeriodFee_v06() throws Exception {
|
||||||
thrown.expect(UnsupportedFeeAttributeException.class);
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
|
@ -540,6 +569,17 @@ public class DomainApplicationCreateFlowTest
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_landrushApplicationWithGracePeriodFee_v12() throws Exception {
|
||||||
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
|
createTld("tld", TldState.LANDRUSH);
|
||||||
|
persistContactsAndHosts();
|
||||||
|
clock.advanceOneMilli();
|
||||||
|
setEppInput(
|
||||||
|
"domain_create_landrush_fee_grace_period.xml", ImmutableMap.of("FEE_VERSION", "0.12"));
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_landrushApplicationWithAppliedFee_v06() throws Exception {
|
public void testFailure_landrushApplicationWithAppliedFee_v06() throws Exception {
|
||||||
thrown.expect(UnsupportedFeeAttributeException.class);
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
|
@ -560,6 +600,16 @@ public class DomainApplicationCreateFlowTest
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_landrushApplicationWithAppliedFee_v12() throws Exception {
|
||||||
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
|
createTld("tld", TldState.LANDRUSH);
|
||||||
|
persistContactsAndHosts();
|
||||||
|
clock.advanceOneMilli();
|
||||||
|
setEppInput("domain_create_landrush_fee_applied.xml", ImmutableMap.of("FEE_VERSION", "0.12"));
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_landrushWithClaims() throws Exception {
|
public void testSuccess_landrushWithClaims() throws Exception {
|
||||||
createTld("tld", TldState.LANDRUSH);
|
createTld("tld", TldState.LANDRUSH);
|
||||||
|
@ -1211,6 +1261,18 @@ public class DomainApplicationCreateFlowTest
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_wrongFeeLandrushApplication_v12() throws Exception {
|
||||||
|
thrown.expect(FeesMismatchException.class);
|
||||||
|
createTld("tld", TldState.LANDRUSH);
|
||||||
|
setEppInput("domain_create_landrush_fee.xml", ImmutableMap.of("FEE_VERSION", "0.12"));
|
||||||
|
persistResource(
|
||||||
|
Registry.get("tld").asBuilder().setCreateBillingCost(Money.of(USD, 20)).build());
|
||||||
|
persistContactsAndHosts();
|
||||||
|
clock.advanceOneMilli();
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_wrongCurrency_v06() throws Exception {
|
public void testFailure_wrongCurrency_v06() throws Exception {
|
||||||
thrown.expect(CurrencyUnitMismatchException.class);
|
thrown.expect(CurrencyUnitMismatchException.class);
|
||||||
|
@ -1247,6 +1309,24 @@ public class DomainApplicationCreateFlowTest
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_wrongCurrency_v12() throws Exception {
|
||||||
|
thrown.expect(CurrencyUnitMismatchException.class);
|
||||||
|
createTld("tld", TldState.LANDRUSH);
|
||||||
|
setEppInput("domain_create_landrush_fee.xml", ImmutableMap.of("FEE_VERSION", "0.12"));
|
||||||
|
persistResource(Registry.get("tld").asBuilder()
|
||||||
|
.setCurrency(CurrencyUnit.EUR)
|
||||||
|
.setCreateBillingCost(Money.of(EUR, 13))
|
||||||
|
.setRestoreBillingCost(Money.of(EUR, 11))
|
||||||
|
.setRenewBillingCostTransitions(ImmutableSortedMap.of(START_OF_TIME, Money.of(EUR, 7)))
|
||||||
|
.setEapFeeSchedule(ImmutableSortedMap.of(START_OF_TIME, Money.zero(EUR)))
|
||||||
|
.setServerStatusChangeBillingCost(Money.of(EUR, 19))
|
||||||
|
.build());
|
||||||
|
persistContactsAndHosts();
|
||||||
|
clock.advanceOneMilli();
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_feeGivenInWrongScale_v06() throws Exception {
|
public void testFailure_feeGivenInWrongScale_v06() throws Exception {
|
||||||
thrown.expect(CurrencyValueScaleException.class);
|
thrown.expect(CurrencyValueScaleException.class);
|
||||||
|
@ -1267,6 +1347,16 @@ public class DomainApplicationCreateFlowTest
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_feeGivenInWrongScale_v12() throws Exception {
|
||||||
|
thrown.expect(CurrencyValueScaleException.class);
|
||||||
|
createTld("tld", TldState.LANDRUSH);
|
||||||
|
setEppInput("domain_create_landrush_fee_bad_scale.xml", ImmutableMap.of("FEE_VERSION", "0.12"));
|
||||||
|
persistContactsAndHosts();
|
||||||
|
clock.advanceOneMilli();
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_alreadyExists() throws Exception {
|
public void testFailure_alreadyExists() throws Exception {
|
||||||
// This fails fast and throws DomainAlreadyExistsException from init() as a special case.
|
// This fails fast and throws DomainAlreadyExistsException from init() as a special case.
|
||||||
|
|
|
@ -396,6 +396,13 @@ public class DomainCheckFlowTest
|
||||||
runFlowAssertResponse(readFile("domain_check_fee_response_v11.xml"));
|
runFlowAssertResponse(readFile("domain_check_fee_response_v11.xml"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFeeExtension_v12() throws Exception {
|
||||||
|
persistActiveDomain("example1.tld");
|
||||||
|
setEppInput("domain_check_fee_v12.xml");
|
||||||
|
runFlowAssertResponse(readFile("domain_check_fee_response_v12.xml"));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test commands for create, renew, transfer, restore and update with implicit period and
|
* Test commands for create, renew, transfer, restore and update with implicit period and
|
||||||
* currency. */
|
* currency. */
|
||||||
|
@ -407,6 +414,12 @@ public class DomainCheckFlowTest
|
||||||
|
|
||||||
// Version 11 cannot have multiple commands.
|
// Version 11 cannot have multiple commands.
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFeeExtension_multipleCommands_v12() throws Exception {
|
||||||
|
setEppInput("domain_check_fee_multiple_commands_v12.xml");
|
||||||
|
runFlowAssertResponse(readFile("domain_check_fee_multiple_commands_response_v12.xml"));
|
||||||
|
}
|
||||||
|
|
||||||
/** Test the same as {@link #testFeeExtension_multipleCommands_v06} with premium labels. */
|
/** Test the same as {@link #testFeeExtension_multipleCommands_v06} with premium labels. */
|
||||||
@Test
|
@Test
|
||||||
public void testFeeExtension_premiumLabels_v06() throws Exception {
|
public void testFeeExtension_premiumLabels_v06() throws Exception {
|
||||||
|
@ -450,6 +463,13 @@ public class DomainCheckFlowTest
|
||||||
runFlowAssertResponse(readFile("domain_check_fee_premium_response_v11_update.xml"));
|
runFlowAssertResponse(readFile("domain_check_fee_premium_response_v11_update.xml"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFeeExtension_premiumLabels_v12() throws Exception {
|
||||||
|
createTld("example");
|
||||||
|
setEppInput("domain_check_fee_premium_v12.xml");
|
||||||
|
runFlowAssertResponse(readFile("domain_check_fee_premium_response_v12.xml"));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFeeExtension_fractionalCost() throws Exception {
|
public void testFeeExtension_fractionalCost() throws Exception {
|
||||||
// Note that the response xml expects to see "11.10" with two digits after the decimal point.
|
// Note that the response xml expects to see "11.10" with two digits after the decimal point.
|
||||||
|
@ -514,6 +534,16 @@ public class DomainCheckFlowTest
|
||||||
runFlowAssertResponse(readFile("domain_check_fee_reserved_response_v11_restore.xml"));
|
runFlowAssertResponse(readFile("domain_check_fee_reserved_response_v11_restore.xml"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFeeExtension_reservedName_v12() throws Exception {
|
||||||
|
persistResource(Registry.get("tld").asBuilder()
|
||||||
|
.setReservedLists(createReservedList())
|
||||||
|
.setPremiumList(persistPremiumList("tld", "premiumcollision,USD 70"))
|
||||||
|
.build());
|
||||||
|
setEppInput("domain_check_fee_reserved_v12.xml");
|
||||||
|
runFlowAssertResponse(readFile("domain_check_fee_reserved_response_v12.xml"));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFeeExtension_feesNotOmittedOnReservedNamesInSunrise_v06() throws Exception {
|
public void testFeeExtension_feesNotOmittedOnReservedNamesInSunrise_v06() throws Exception {
|
||||||
createTld("tld", TldState.SUNRISE);
|
createTld("tld", TldState.SUNRISE);
|
||||||
|
@ -573,6 +603,17 @@ public class DomainCheckFlowTest
|
||||||
runFlowAssertResponse(readFile("domain_check_fee_reserved_sunrise_response_v11_restore.xml"));
|
runFlowAssertResponse(readFile("domain_check_fee_reserved_sunrise_response_v11_restore.xml"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFeeExtension_feesNotOmittedOnReservedNamesInSunrise_v12() throws Exception {
|
||||||
|
createTld("tld", TldState.SUNRISE);
|
||||||
|
persistResource(Registry.get("tld").asBuilder()
|
||||||
|
.setReservedLists(createReservedList())
|
||||||
|
.setPremiumList(persistPremiumList("tld", "premiumcollision,USD 70"))
|
||||||
|
.build());
|
||||||
|
setEppInput("domain_check_fee_reserved_v12.xml");
|
||||||
|
runFlowAssertResponse(readFile("domain_check_fee_reserved_sunrise_response_v12.xml"));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFeeExtension_wrongCurrency_v06() throws Exception {
|
public void testFeeExtension_wrongCurrency_v06() throws Exception {
|
||||||
thrown.expect(CurrencyUnitMismatchException.class);
|
thrown.expect(CurrencyUnitMismatchException.class);
|
||||||
|
@ -587,6 +628,13 @@ public class DomainCheckFlowTest
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFeeExtension_wrongCurrency_v12() throws Exception {
|
||||||
|
thrown.expect(CurrencyUnitMismatchException.class);
|
||||||
|
setEppInput("domain_check_fee_euro_v12.xml");
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFeeExtension_periodNotInYears_v06() throws Exception {
|
public void testFeeExtension_periodNotInYears_v06() throws Exception {
|
||||||
thrown.expect(BadPeriodUnitException.class);
|
thrown.expect(BadPeriodUnitException.class);
|
||||||
|
@ -601,6 +649,13 @@ public class DomainCheckFlowTest
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFeeExtension_periodNotInYears_v12() throws Exception {
|
||||||
|
thrown.expect(BadPeriodUnitException.class);
|
||||||
|
setEppInput("domain_check_fee_bad_period_v12.xml");
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFeeExtension_commandWithPhase_v06() throws Exception {
|
public void testFeeExtension_commandWithPhase_v06() throws Exception {
|
||||||
thrown.expect(FeeChecksDontSupportPhasesException.class);
|
thrown.expect(FeeChecksDontSupportPhasesException.class);
|
||||||
|
@ -615,6 +670,13 @@ public class DomainCheckFlowTest
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFeeExtension_commandWithPhase_v12() throws Exception {
|
||||||
|
thrown.expect(FeeChecksDontSupportPhasesException.class);
|
||||||
|
setEppInput("domain_check_fee_command_phase_v12.xml");
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFeeExtension_commandSubphase_v06() throws Exception {
|
public void testFeeExtension_commandSubphase_v06() throws Exception {
|
||||||
thrown.expect(FeeChecksDontSupportPhasesException.class);
|
thrown.expect(FeeChecksDontSupportPhasesException.class);
|
||||||
|
@ -629,6 +691,13 @@ public class DomainCheckFlowTest
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFeeExtension_commandSubphase_v12() throws Exception {
|
||||||
|
thrown.expect(FeeChecksDontSupportPhasesException.class);
|
||||||
|
setEppInput("domain_check_fee_command_subphase_v12.xml");
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
// This test is only relevant for v06, since domain names are not specified in v11 or v12.
|
// This test is only relevant for v06, since domain names are not specified in v11 or v12.
|
||||||
@Test
|
@Test
|
||||||
public void testFeeExtension_feeCheckNotInAvailabilityCheck() throws Exception {
|
public void testFeeExtension_feeCheckNotInAvailabilityCheck() throws Exception {
|
||||||
|
@ -651,6 +720,13 @@ public class DomainCheckFlowTest
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFeeExtension_multiyearRestore_v12() throws Exception {
|
||||||
|
thrown.expect(RestoresAreAlwaysForOneYearException.class);
|
||||||
|
setEppInput("domain_check_fee_multiyear_restore_v12.xml");
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFeeExtension_unknownCommand_v06() throws Exception {
|
public void testFeeExtension_unknownCommand_v06() throws Exception {
|
||||||
thrown.expect(UnknownFeeCommandException.class);
|
thrown.expect(UnknownFeeCommandException.class);
|
||||||
|
@ -665,6 +741,13 @@ public class DomainCheckFlowTest
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFeeExtension_unknownCommand_v12() throws Exception {
|
||||||
|
thrown.expect(UnknownFeeCommandException.class);
|
||||||
|
setEppInput("domain_check_fee_unknown_command_v12.xml");
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFeeExtension_invalidCommand_v06() throws Exception {
|
public void testFeeExtension_invalidCommand_v06() throws Exception {
|
||||||
thrown.expect(UnknownFeeCommandException.class);
|
thrown.expect(UnknownFeeCommandException.class);
|
||||||
|
@ -679,6 +762,13 @@ public class DomainCheckFlowTest
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFeeExtension_invalidCommand_v12() throws Exception {
|
||||||
|
thrown.expect(UnknownFeeCommandException.class);
|
||||||
|
setEppInput("domain_check_fee_invalid_command_v12.xml");
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
private void runEapFeeCheckTest(String inputFile, String outputFile) throws Exception {
|
private void runEapFeeCheckTest(String inputFile, String outputFile) throws Exception {
|
||||||
clock.setTo(DateTime.parse("2010-01-01T10:00:00Z"));
|
clock.setTo(DateTime.parse("2010-01-01T10:00:00Z"));
|
||||||
persistActiveDomain("example1.tld");
|
persistActiveDomain("example1.tld");
|
||||||
|
@ -701,5 +791,9 @@ public class DomainCheckFlowTest
|
||||||
public void testSuccess_eapFeeCheck_v11() throws Exception {
|
public void testSuccess_eapFeeCheck_v11() throws Exception {
|
||||||
runEapFeeCheckTest("domain_check_fee_v11.xml", "domain_check_eap_fee_response_v11.xml");
|
runEapFeeCheckTest("domain_check_fee_v11.xml", "domain_check_eap_fee_response_v11.xml");
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSuccess_eapFeeCheck_v12() throws Exception {
|
||||||
|
runEapFeeCheckTest("domain_check_fee_v12.xml", "domain_check_eap_fee_response_v12.xml");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@ package google.registry.flows.domain;
|
||||||
|
|
||||||
import static com.google.common.io.BaseEncoding.base16;
|
import static com.google.common.io.BaseEncoding.base16;
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
import static google.registry.model.domain.fee.Fee.FEE_EXTENSION_URIS;
|
||||||
import static google.registry.pricing.PricingEngineProxy.getPricesForDomainName;
|
import static google.registry.pricing.PricingEngineProxy.getPricesForDomainName;
|
||||||
import static google.registry.testing.DatastoreHelper.assertBillingEvents;
|
import static google.registry.testing.DatastoreHelper.assertBillingEvents;
|
||||||
import static google.registry.testing.DatastoreHelper.createTld;
|
import static google.registry.testing.DatastoreHelper.createTld;
|
||||||
|
@ -105,7 +106,6 @@ import google.registry.model.domain.launch.ApplicationStatus;
|
||||||
import google.registry.model.domain.launch.LaunchNotice;
|
import google.registry.model.domain.launch.LaunchNotice;
|
||||||
import google.registry.model.domain.rgp.GracePeriodStatus;
|
import google.registry.model.domain.rgp.GracePeriodStatus;
|
||||||
import google.registry.model.domain.secdns.DelegationSignerData;
|
import google.registry.model.domain.secdns.DelegationSignerData;
|
||||||
import google.registry.model.eppcommon.ProtocolDefinition.ServiceExtension;
|
|
||||||
import google.registry.model.eppcommon.StatusValue;
|
import google.registry.model.eppcommon.StatusValue;
|
||||||
import google.registry.model.registrar.Registrar;
|
import google.registry.model.registrar.Registrar;
|
||||||
import google.registry.model.registry.Registry;
|
import google.registry.model.registry.Registry;
|
||||||
|
@ -335,6 +335,14 @@ public class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow,
|
||||||
"tld", "domain_create_response_fee.xml", ImmutableMap.of("FEE_VERSION", "0.11"));
|
"tld", "domain_create_response_fee.xml", ImmutableMap.of("FEE_VERSION", "0.11"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSuccess_fee_v12() throws Exception {
|
||||||
|
setEppInput("domain_create_fee.xml", ImmutableMap.of("FEE_VERSION", "0.12"));
|
||||||
|
persistContactsAndHosts();
|
||||||
|
doSuccessfulTest(
|
||||||
|
"tld", "domain_create_response_fee.xml", ImmutableMap.of("FEE_VERSION", "0.12"));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_fee_withDefaultAttributes_v06() throws Exception {
|
public void testSuccess_fee_withDefaultAttributes_v06() throws Exception {
|
||||||
setEppInput("domain_create_fee_defaults.xml", ImmutableMap.of("FEE_VERSION", "0.6"));
|
setEppInput("domain_create_fee_defaults.xml", ImmutableMap.of("FEE_VERSION", "0.6"));
|
||||||
|
@ -351,6 +359,14 @@ public class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow,
|
||||||
"tld", "domain_create_response_fee.xml", ImmutableMap.of("FEE_VERSION", "0.11"));
|
"tld", "domain_create_response_fee.xml", ImmutableMap.of("FEE_VERSION", "0.11"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSuccess_fee_withDefaultAttributes_v12() throws Exception {
|
||||||
|
setEppInput("domain_create_fee_defaults.xml", ImmutableMap.of("FEE_VERSION", "0.12"));
|
||||||
|
persistContactsAndHosts();
|
||||||
|
doSuccessfulTest(
|
||||||
|
"tld", "domain_create_response_fee.xml", ImmutableMap.of("FEE_VERSION", "0.12"));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_refundableFee_v06() throws Exception {
|
public void testFailure_refundableFee_v06() throws Exception {
|
||||||
thrown.expect(UnsupportedFeeAttributeException.class);
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
|
@ -367,6 +383,14 @@ public class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow,
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_refundableFee_v12() throws Exception {
|
||||||
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
|
setEppInput("domain_create_fee_refundable.xml", ImmutableMap.of("FEE_VERSION", "0.12"));
|
||||||
|
persistContactsAndHosts();
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_gracePeriodFee_v06() throws Exception {
|
public void testFailure_gracePeriodFee_v06() throws Exception {
|
||||||
thrown.expect(UnsupportedFeeAttributeException.class);
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
|
@ -383,6 +407,14 @@ public class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow,
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_gracePeriodFee_v12() throws Exception {
|
||||||
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
|
setEppInput("domain_create_fee_grace_period.xml", ImmutableMap.of("FEE_VERSION", "0.12"));
|
||||||
|
persistContactsAndHosts();
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_appliedFee_v06() throws Exception {
|
public void testFailure_appliedFee_v06() throws Exception {
|
||||||
thrown.expect(UnsupportedFeeAttributeException.class);
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
|
@ -399,6 +431,14 @@ public class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow,
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_appliedFee_v12() throws Exception {
|
||||||
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
|
setEppInput("domain_create_fee_applied.xml", ImmutableMap.of("FEE_VERSION", "0.12"));
|
||||||
|
persistContactsAndHosts();
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_metadata() throws Exception {
|
public void testSuccess_metadata() throws Exception {
|
||||||
eppRequestSource = EppRequestSource.TOOL;
|
eppRequestSource = EppRequestSource.TOOL;
|
||||||
|
@ -624,6 +664,15 @@ public class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow,
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_wrongFeeAmount_v12() throws Exception {
|
||||||
|
thrown.expect(FeesMismatchException.class);
|
||||||
|
setEppInput("domain_create_fee.xml", ImmutableMap.of("FEE_VERSION", "0.12"));
|
||||||
|
persistResource(Registry.get("tld").asBuilder().setCreateBillingCost(Money.of(USD, 20)).build());
|
||||||
|
persistContactsAndHosts();
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_wrongCurrency_v06() throws Exception {
|
public void testFailure_wrongCurrency_v06() throws Exception {
|
||||||
thrown.expect(CurrencyUnitMismatchException.class);
|
thrown.expect(CurrencyUnitMismatchException.class);
|
||||||
|
@ -656,6 +705,22 @@ public class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow,
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_wrongCurrency_v12() throws Exception {
|
||||||
|
thrown.expect(CurrencyUnitMismatchException.class);
|
||||||
|
setEppInput("domain_create_fee.xml", ImmutableMap.of("FEE_VERSION", "0.12"));
|
||||||
|
persistResource(Registry.get("tld").asBuilder()
|
||||||
|
.setCurrency(CurrencyUnit.EUR)
|
||||||
|
.setCreateBillingCost(Money.of(EUR, 13))
|
||||||
|
.setRestoreBillingCost(Money.of(EUR, 11))
|
||||||
|
.setRenewBillingCostTransitions(ImmutableSortedMap.of(START_OF_TIME, Money.of(EUR, 7)))
|
||||||
|
.setEapFeeSchedule(ImmutableSortedMap.of(START_OF_TIME, Money.zero(EUR)))
|
||||||
|
.setServerStatusChangeBillingCost(Money.of(EUR, 19))
|
||||||
|
.build());
|
||||||
|
persistContactsAndHosts();
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_alreadyExists() throws Exception {
|
public void testFailure_alreadyExists() throws Exception {
|
||||||
// This fails fast and throws DomainAlreadyExistsException from init() as a special case.
|
// This fails fast and throws DomainAlreadyExistsException from init() as a special case.
|
||||||
|
@ -1065,8 +1130,9 @@ public class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow,
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_omitFeeExtensionOnLogin_v06() throws Exception {
|
public void testFailure_omitFeeExtensionOnLogin_v06() throws Exception {
|
||||||
thrown.expect(UndeclaredServiceExtensionException.class);
|
thrown.expect(UndeclaredServiceExtensionException.class);
|
||||||
removeServiceExtensionUri(ServiceExtension.FEE_0_6.getUri());
|
for (String uri : FEE_EXTENSION_URIS) {
|
||||||
removeServiceExtensionUri(ServiceExtension.FEE_0_11.getUri());
|
removeServiceExtensionUri(uri);
|
||||||
|
}
|
||||||
createTld("net");
|
createTld("net");
|
||||||
setEppInput("domain_create_fee.xml", ImmutableMap.of("FEE_VERSION", "0.6"));
|
setEppInput("domain_create_fee.xml", ImmutableMap.of("FEE_VERSION", "0.6"));
|
||||||
persistContactsAndHosts();
|
persistContactsAndHosts();
|
||||||
|
@ -1076,14 +1142,27 @@ public class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow,
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_omitFeeExtensionOnLogin_v11() throws Exception {
|
public void testFailure_omitFeeExtensionOnLogin_v11() throws Exception {
|
||||||
thrown.expect(UndeclaredServiceExtensionException.class);
|
thrown.expect(UndeclaredServiceExtensionException.class);
|
||||||
removeServiceExtensionUri(ServiceExtension.FEE_0_6.getUri());
|
for (String uri : FEE_EXTENSION_URIS) {
|
||||||
removeServiceExtensionUri(ServiceExtension.FEE_0_11.getUri());
|
removeServiceExtensionUri(uri);
|
||||||
|
}
|
||||||
createTld("net");
|
createTld("net");
|
||||||
setEppInput("domain_create_fee.xml", ImmutableMap.of("FEE_VERSION", "0.11"));
|
setEppInput("domain_create_fee.xml", ImmutableMap.of("FEE_VERSION", "0.11"));
|
||||||
persistContactsAndHosts();
|
persistContactsAndHosts();
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_omitFeeExtensionOnLogin_v12() throws Exception {
|
||||||
|
thrown.expect(UndeclaredServiceExtensionException.class);
|
||||||
|
for (String uri : FEE_EXTENSION_URIS) {
|
||||||
|
removeServiceExtensionUri(uri);
|
||||||
|
}
|
||||||
|
createTld("net");
|
||||||
|
setEppInput("domain_create_fee.xml", ImmutableMap.of("FEE_VERSION", "0.12"));
|
||||||
|
persistContactsAndHosts();
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_feeGivenInWrongScale_v06() throws Exception {
|
public void testFailure_feeGivenInWrongScale_v06() throws Exception {
|
||||||
thrown.expect(CurrencyValueScaleException.class);
|
thrown.expect(CurrencyValueScaleException.class);
|
||||||
|
@ -1100,6 +1179,14 @@ public class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow,
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_feeGivenInWrongScale_v12() throws Exception {
|
||||||
|
thrown.expect(CurrencyValueScaleException.class);
|
||||||
|
setEppInput("domain_create_fee_bad_scale.xml", ImmutableMap.of("FEE_VERSION", "0.12"));
|
||||||
|
persistContactsAndHosts();
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
private void doFailingDomainNameTest(
|
private void doFailingDomainNameTest(
|
||||||
String domainName,
|
String domainName,
|
||||||
Class<? extends Throwable> exception) throws Exception {
|
Class<? extends Throwable> exception) throws Exception {
|
||||||
|
@ -1414,6 +1501,20 @@ public class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow,
|
||||||
"tld", "domain_create_response_eap_fee.xml", ImmutableMap.of("FEE_VERSION", "0.11"));
|
"tld", "domain_create_response_eap_fee.xml", ImmutableMap.of("FEE_VERSION", "0.11"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSuccess_eapFeeApplied_v12() throws Exception {
|
||||||
|
setEppInput("domain_create_eap_fee.xml", ImmutableMap.of("FEE_VERSION", "0.12"));
|
||||||
|
persistContactsAndHosts();
|
||||||
|
persistResource(Registry.get("tld").asBuilder()
|
||||||
|
.setEapFeeSchedule(ImmutableSortedMap.of(
|
||||||
|
START_OF_TIME, Money.of(USD, 0),
|
||||||
|
clock.nowUtc().minusDays(1), Money.of(USD, 100),
|
||||||
|
clock.nowUtc().plusDays(1), Money.of(USD, 0)))
|
||||||
|
.build());
|
||||||
|
doSuccessfulTest(
|
||||||
|
"tld", "domain_create_response_eap_fee.xml", ImmutableMap.of("FEE_VERSION", "0.12"));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_eapFee_beforeEntireSchedule() throws Exception {
|
public void testSuccess_eapFee_beforeEntireSchedule() throws Exception {
|
||||||
persistContactsAndHosts();
|
persistContactsAndHosts();
|
||||||
|
|
|
@ -91,6 +91,8 @@ public class DomainDeleteFlowTest extends ResourceFlowTestCase<DomainDeleteFlow,
|
||||||
ImmutableMap.of("FEE_VERSION", "0.6", "FEE_NS", "fee");
|
ImmutableMap.of("FEE_VERSION", "0.6", "FEE_NS", "fee");
|
||||||
private static final ImmutableMap<String, String> FEE_11_MAP =
|
private static final ImmutableMap<String, String> FEE_11_MAP =
|
||||||
ImmutableMap.of("FEE_VERSION", "0.11", "FEE_NS", "fee11");
|
ImmutableMap.of("FEE_VERSION", "0.11", "FEE_NS", "fee11");
|
||||||
|
private static final ImmutableMap<String, String> FEE_12_MAP =
|
||||||
|
ImmutableMap.of("FEE_VERSION", "0.12", "FEE_NS", "fee12");
|
||||||
|
|
||||||
public DomainDeleteFlowTest() {
|
public DomainDeleteFlowTest() {
|
||||||
setEppInput("domain_delete.xml");
|
setEppInput("domain_delete.xml");
|
||||||
|
@ -270,14 +272,21 @@ public class DomainDeleteFlowTest extends ResourceFlowTestCase<DomainDeleteFlow,
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_addGracePeriodCredit_v06() throws Exception {
|
public void testSuccess_addGracePeriodCredit_v06() throws Exception {
|
||||||
removeServiceExtensionUri(ServiceExtension.FEE_0_11.getUri());
|
removeServiceExtensionUri(ServiceExtension.FEE_0_11.getUri());
|
||||||
|
removeServiceExtensionUri(ServiceExtension.FEE_0_12.getUri());
|
||||||
doImmediateDeleteTest(GracePeriodStatus.ADD, "domain_delete_response_fee.xml", FEE_06_MAP);
|
doImmediateDeleteTest(GracePeriodStatus.ADD, "domain_delete_response_fee.xml", FEE_06_MAP);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_addGracePeriodCredit_v11() throws Exception {
|
public void testSuccess_addGracePeriodCredit_v11() throws Exception {
|
||||||
|
removeServiceExtensionUri(ServiceExtension.FEE_0_12.getUri());
|
||||||
doImmediateDeleteTest(GracePeriodStatus.ADD, "domain_delete_response_fee.xml", FEE_11_MAP);
|
doImmediateDeleteTest(GracePeriodStatus.ADD, "domain_delete_response_fee.xml", FEE_11_MAP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSuccess_addGracePeriodCredit_v12() throws Exception {
|
||||||
|
doImmediateDeleteTest(GracePeriodStatus.ADD, "domain_delete_response_fee.xml", FEE_12_MAP);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_sunrushAddGracePeriodResultsInImmediateDelete() throws Exception {
|
public void testSuccess_sunrushAddGracePeriodResultsInImmediateDelete() throws Exception {
|
||||||
sessionMetadata.setServiceExtensionUris(ImmutableSet.<String>of());
|
sessionMetadata.setServiceExtensionUris(ImmutableSet.<String>of());
|
||||||
|
@ -343,14 +352,21 @@ public class DomainDeleteFlowTest extends ResourceFlowTestCase<DomainDeleteFlow,
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_renewGracePeriodCredit_v06() throws Exception {
|
public void testSuccess_renewGracePeriodCredit_v06() throws Exception {
|
||||||
removeServiceExtensionUri(ServiceExtension.FEE_0_11.getUri());
|
removeServiceExtensionUri(ServiceExtension.FEE_0_11.getUri());
|
||||||
|
removeServiceExtensionUri(ServiceExtension.FEE_0_12.getUri());
|
||||||
doSuccessfulTest_noAddGracePeriod("domain_delete_response_pending_fee.xml", FEE_06_MAP);
|
doSuccessfulTest_noAddGracePeriod("domain_delete_response_pending_fee.xml", FEE_06_MAP);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_renewGracePeriodCredit_v11() throws Exception {
|
public void testSuccess_renewGracePeriodCredit_v11() throws Exception {
|
||||||
|
removeServiceExtensionUri(ServiceExtension.FEE_0_12.getUri());
|
||||||
doSuccessfulTest_noAddGracePeriod("domain_delete_response_pending_fee.xml", FEE_11_MAP);
|
doSuccessfulTest_noAddGracePeriod("domain_delete_response_pending_fee.xml", FEE_11_MAP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSuccess_renewGracePeriodCredit_v12() throws Exception {
|
||||||
|
doSuccessfulTest_noAddGracePeriod("domain_delete_response_pending_fee.xml", FEE_12_MAP);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_autorenewPollMessageIsNotDeleted() throws Exception {
|
public void testSuccess_autorenewPollMessageIsNotDeleted() throws Exception {
|
||||||
setupSuccessfulTest();
|
setupSuccessfulTest();
|
||||||
|
@ -395,6 +411,7 @@ public class DomainDeleteFlowTest extends ResourceFlowTestCase<DomainDeleteFlow,
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_autoRenewGracePeriod_v06() throws Exception {
|
public void testSuccess_autoRenewGracePeriod_v06() throws Exception {
|
||||||
removeServiceExtensionUri(ServiceExtension.FEE_0_11.getUri());
|
removeServiceExtensionUri(ServiceExtension.FEE_0_11.getUri());
|
||||||
|
removeServiceExtensionUri(ServiceExtension.FEE_0_12.getUri());
|
||||||
setupAutorenewGracePeriod();
|
setupAutorenewGracePeriod();
|
||||||
clock.advanceOneMilli();
|
clock.advanceOneMilli();
|
||||||
runFlowAssertResponse(readFile("domain_delete_response_autorenew_fee.xml", FEE_06_MAP));
|
runFlowAssertResponse(readFile("domain_delete_response_autorenew_fee.xml", FEE_06_MAP));
|
||||||
|
@ -402,14 +419,23 @@ public class DomainDeleteFlowTest extends ResourceFlowTestCase<DomainDeleteFlow,
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_autoRenewGracePeriod_v11() throws Exception {
|
public void testSuccess_autoRenewGracePeriod_v11() throws Exception {
|
||||||
|
removeServiceExtensionUri(ServiceExtension.FEE_0_12.getUri());
|
||||||
setupAutorenewGracePeriod();
|
setupAutorenewGracePeriod();
|
||||||
clock.advanceOneMilli();
|
clock.advanceOneMilli();
|
||||||
runFlowAssertResponse(readFile("domain_delete_response_autorenew_fee.xml", FEE_11_MAP));
|
runFlowAssertResponse(readFile("domain_delete_response_autorenew_fee.xml", FEE_11_MAP));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSuccess_autoRenewGracePeriod_v12() throws Exception {
|
||||||
|
setupAutorenewGracePeriod();
|
||||||
|
clock.advanceOneMilli();
|
||||||
|
runFlowAssertResponse(readFile("domain_delete_response_autorenew_fee.xml", FEE_12_MAP));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_autoRenewGracePeriod_priceChanges_v06() throws Exception {
|
public void testSuccess_autoRenewGracePeriod_priceChanges_v06() throws Exception {
|
||||||
removeServiceExtensionUri(ServiceExtension.FEE_0_11.getUri());
|
removeServiceExtensionUri(ServiceExtension.FEE_0_11.getUri());
|
||||||
|
removeServiceExtensionUri(ServiceExtension.FEE_0_12.getUri());
|
||||||
persistResource(
|
persistResource(
|
||||||
Registry.get("tld")
|
Registry.get("tld")
|
||||||
.asBuilder()
|
.asBuilder()
|
||||||
|
@ -423,6 +449,7 @@ public class DomainDeleteFlowTest extends ResourceFlowTestCase<DomainDeleteFlow,
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_autoRenewGracePeriod_priceChanges_v11() throws Exception {
|
public void testSuccess_autoRenewGracePeriod_priceChanges_v11() throws Exception {
|
||||||
|
removeServiceExtensionUri(ServiceExtension.FEE_0_12.getUri());
|
||||||
persistResource(
|
persistResource(
|
||||||
Registry.get("tld")
|
Registry.get("tld")
|
||||||
.asBuilder()
|
.asBuilder()
|
||||||
|
@ -434,6 +461,19 @@ public class DomainDeleteFlowTest extends ResourceFlowTestCase<DomainDeleteFlow,
|
||||||
runFlowAssertResponse(readFile("domain_delete_response_autorenew_fee.xml", FEE_11_MAP));
|
runFlowAssertResponse(readFile("domain_delete_response_autorenew_fee.xml", FEE_11_MAP));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSuccess_autoRenewGracePeriod_priceChanges_v12() throws Exception {
|
||||||
|
persistResource(
|
||||||
|
Registry.get("tld")
|
||||||
|
.asBuilder()
|
||||||
|
.setRenewBillingCostTransitions(ImmutableSortedMap.of(
|
||||||
|
START_OF_TIME, Money.of(USD, 11), TIME_BEFORE_FLOW.minusDays(5), Money.of(USD, 20)))
|
||||||
|
.build());
|
||||||
|
setupAutorenewGracePeriod();
|
||||||
|
clock.advanceOneMilli();
|
||||||
|
runFlowAssertResponse(readFile("domain_delete_response_autorenew_fee.xml", FEE_12_MAP));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_pendingTransfer() throws Exception {
|
public void testSuccess_pendingTransfer() throws Exception {
|
||||||
setClientIdForFlow("TheRegistrar");
|
setClientIdForFlow("TheRegistrar");
|
||||||
|
|
|
@ -72,6 +72,8 @@ public class DomainRenewFlowTest extends ResourceFlowTestCase<DomainRenewFlow, D
|
||||||
ImmutableMap.of("FEE_VERSION", "0.6", "FEE_NS", "fee");
|
ImmutableMap.of("FEE_VERSION", "0.6", "FEE_NS", "fee");
|
||||||
private static final ImmutableMap<String, String> FEE_11_MAP =
|
private static final ImmutableMap<String, String> FEE_11_MAP =
|
||||||
ImmutableMap.of("FEE_VERSION", "0.11", "FEE_NS", "fee11");
|
ImmutableMap.of("FEE_VERSION", "0.11", "FEE_NS", "fee11");
|
||||||
|
private static final ImmutableMap<String, String> FEE_12_MAP =
|
||||||
|
ImmutableMap.of("FEE_VERSION", "0.12", "FEE_NS", "fee12");
|
||||||
|
|
||||||
final DateTime expirationTime = DateTime.parse("2000-04-03T22:00:00.0Z");
|
final DateTime expirationTime = DateTime.parse("2000-04-03T22:00:00.0Z");
|
||||||
|
|
||||||
|
@ -220,6 +222,13 @@ public class DomainRenewFlowTest extends ResourceFlowTestCase<DomainRenewFlow, D
|
||||||
doSuccessfulTest("domain_renew_response_fee.xml", 5, FEE_11_MAP);
|
doSuccessfulTest("domain_renew_response_fee.xml", 5, FEE_11_MAP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSuccess_fee_v12() throws Exception {
|
||||||
|
setEppInput("domain_renew_fee.xml", FEE_12_MAP);
|
||||||
|
persistDomain();
|
||||||
|
doSuccessfulTest("domain_renew_response_fee.xml", 5, FEE_12_MAP);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_fee_withDefaultAttributes_v06() throws Exception {
|
public void testSuccess_fee_withDefaultAttributes_v06() throws Exception {
|
||||||
setEppInput("domain_renew_fee_defaults.xml", FEE_06_MAP);
|
setEppInput("domain_renew_fee_defaults.xml", FEE_06_MAP);
|
||||||
|
@ -234,6 +243,13 @@ public class DomainRenewFlowTest extends ResourceFlowTestCase<DomainRenewFlow, D
|
||||||
doSuccessfulTest("domain_renew_response_fee.xml", 5, FEE_11_MAP);
|
doSuccessfulTest("domain_renew_response_fee.xml", 5, FEE_11_MAP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSuccess_fee_withDefaultAttributes_v12() throws Exception {
|
||||||
|
setEppInput("domain_renew_fee_defaults.xml", FEE_12_MAP);
|
||||||
|
persistDomain();
|
||||||
|
doSuccessfulTest("domain_renew_response_fee.xml", 5, FEE_12_MAP);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_refundableFee_v06() throws Exception {
|
public void testFailure_refundableFee_v06() throws Exception {
|
||||||
thrown.expect(UnsupportedFeeAttributeException.class);
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
|
@ -250,6 +266,14 @@ public class DomainRenewFlowTest extends ResourceFlowTestCase<DomainRenewFlow, D
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_refundableFee_v12() throws Exception {
|
||||||
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
|
setEppInput("domain_renew_fee_refundable.xml", FEE_12_MAP);
|
||||||
|
persistDomain();
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_gracePeriodFee_v06() throws Exception {
|
public void testFailure_gracePeriodFee_v06() throws Exception {
|
||||||
thrown.expect(UnsupportedFeeAttributeException.class);
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
|
@ -266,6 +290,14 @@ public class DomainRenewFlowTest extends ResourceFlowTestCase<DomainRenewFlow, D
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_gracePeriodFee_v12() throws Exception {
|
||||||
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
|
setEppInput("domain_renew_fee_grace_period.xml", FEE_12_MAP);
|
||||||
|
persistDomain();
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_appliedFee_v06() throws Exception {
|
public void testFailure_appliedFee_v06() throws Exception {
|
||||||
thrown.expect(UnsupportedFeeAttributeException.class);
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
|
@ -282,6 +314,14 @@ public class DomainRenewFlowTest extends ResourceFlowTestCase<DomainRenewFlow, D
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_appliedFee_v12() throws Exception {
|
||||||
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
|
setEppInput("domain_renew_fee_applied.xml", FEE_12_MAP);
|
||||||
|
persistDomain();
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_nonDefaultRenewGracePeriod() throws Exception {
|
public void testSuccess_nonDefaultRenewGracePeriod() throws Exception {
|
||||||
persistResource(
|
persistResource(
|
||||||
|
@ -388,6 +428,19 @@ public class DomainRenewFlowTest extends ResourceFlowTestCase<DomainRenewFlow, D
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_wrongFeeAmount_v12() throws Exception {
|
||||||
|
thrown.expect(FeesMismatchException.class);
|
||||||
|
setEppInput("domain_renew_fee.xml", FEE_12_MAP);
|
||||||
|
persistResource(
|
||||||
|
Registry.get("tld")
|
||||||
|
.asBuilder()
|
||||||
|
.setRenewBillingCostTransitions(ImmutableSortedMap.of(START_OF_TIME, Money.of(USD, 20)))
|
||||||
|
.build());
|
||||||
|
persistDomain();
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_wrongCurrency_v06() throws Exception {
|
public void testFailure_wrongCurrency_v06() throws Exception {
|
||||||
thrown.expect(CurrencyUnitMismatchException.class);
|
thrown.expect(CurrencyUnitMismatchException.class);
|
||||||
|
@ -424,6 +477,24 @@ public class DomainRenewFlowTest extends ResourceFlowTestCase<DomainRenewFlow, D
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_wrongCurrency_v12() throws Exception {
|
||||||
|
thrown.expect(CurrencyUnitMismatchException.class);
|
||||||
|
setEppInput("domain_renew_fee.xml", FEE_12_MAP);
|
||||||
|
persistResource(
|
||||||
|
Registry.get("tld")
|
||||||
|
.asBuilder()
|
||||||
|
.setCurrency(EUR)
|
||||||
|
.setCreateBillingCost(Money.of(EUR, 13))
|
||||||
|
.setRestoreBillingCost(Money.of(EUR, 11))
|
||||||
|
.setRenewBillingCostTransitions(ImmutableSortedMap.of(START_OF_TIME, Money.of(EUR, 7)))
|
||||||
|
.setEapFeeSchedule(ImmutableSortedMap.of(START_OF_TIME, Money.zero(EUR)))
|
||||||
|
.setServerStatusChangeBillingCost(Money.of(EUR, 19))
|
||||||
|
.build());
|
||||||
|
persistDomain();
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_feeGivenInWrongScale_v06() throws Exception {
|
public void testFailure_feeGivenInWrongScale_v06() throws Exception {
|
||||||
thrown.expect(CurrencyValueScaleException.class);
|
thrown.expect(CurrencyValueScaleException.class);
|
||||||
|
@ -440,6 +511,14 @@ public class DomainRenewFlowTest extends ResourceFlowTestCase<DomainRenewFlow, D
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_feeGivenInWrongScale_v12() throws Exception {
|
||||||
|
thrown.expect(CurrencyValueScaleException.class);
|
||||||
|
setEppInput("domain_renew_fee_bad_scale.xml", FEE_12_MAP);
|
||||||
|
persistDomain();
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_pendingTransfer() throws Exception {
|
public void testFailure_pendingTransfer() throws Exception {
|
||||||
thrown.expect(DomainHasPendingTransferException.class);
|
thrown.expect(DomainHasPendingTransferException.class);
|
||||||
|
|
|
@ -72,6 +72,8 @@ public class DomainRestoreRequestFlowTest extends
|
||||||
ImmutableMap.of("FEE_VERSION", "0.6", "FEE_NS", "fee");
|
ImmutableMap.of("FEE_VERSION", "0.6", "FEE_NS", "fee");
|
||||||
private static final ImmutableMap<String, String> FEE_11_MAP =
|
private static final ImmutableMap<String, String> FEE_11_MAP =
|
||||||
ImmutableMap.of("FEE_VERSION", "0.11", "FEE_NS", "fee11");
|
ImmutableMap.of("FEE_VERSION", "0.11", "FEE_NS", "fee11");
|
||||||
|
private static final ImmutableMap<String, String> FEE_12_MAP =
|
||||||
|
ImmutableMap.of("FEE_VERSION", "0.12", "FEE_NS", "fee12");
|
||||||
|
|
||||||
public DomainRestoreRequestFlowTest() {
|
public DomainRestoreRequestFlowTest() {
|
||||||
setEppInput("domain_update_restore_request.xml");
|
setEppInput("domain_update_restore_request.xml");
|
||||||
|
@ -195,6 +197,12 @@ public class DomainRestoreRequestFlowTest extends
|
||||||
runFlowAssertResponse(readFile("domain_update_restore_request_response_fee.xml", FEE_11_MAP));
|
runFlowAssertResponse(readFile("domain_update_restore_request_response_fee.xml", FEE_11_MAP));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSuccess_fee_v12() throws Exception {
|
||||||
|
setEppInput("domain_update_restore_request_fee.xml", FEE_12_MAP);
|
||||||
|
persistPendingDeleteDomain();
|
||||||
|
runFlowAssertResponse(readFile("domain_update_restore_request_response_fee.xml", FEE_12_MAP));
|
||||||
|
}
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_fee_withDefaultAttributes_v06() throws Exception {
|
public void testSuccess_fee_withDefaultAttributes_v06() throws Exception {
|
||||||
setEppInput("domain_update_restore_request_fee_defaults.xml", FEE_06_MAP);
|
setEppInput("domain_update_restore_request_fee_defaults.xml", FEE_06_MAP);
|
||||||
|
@ -209,6 +217,13 @@ public class DomainRestoreRequestFlowTest extends
|
||||||
runFlowAssertResponse(readFile("domain_update_restore_request_response_fee.xml", FEE_11_MAP));
|
runFlowAssertResponse(readFile("domain_update_restore_request_response_fee.xml", FEE_11_MAP));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSuccess_fee_withDefaultAttributes_v12() throws Exception {
|
||||||
|
setEppInput("domain_update_restore_request_fee_defaults.xml", FEE_12_MAP);
|
||||||
|
persistPendingDeleteDomain();
|
||||||
|
runFlowAssertResponse(readFile("domain_update_restore_request_response_fee.xml", FEE_12_MAP));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_refundableFee_v06() throws Exception {
|
public void testFailure_refundableFee_v06() throws Exception {
|
||||||
thrown.expect(UnsupportedFeeAttributeException.class);
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
|
@ -225,6 +240,14 @@ public class DomainRestoreRequestFlowTest extends
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_refundableFee_v12() throws Exception {
|
||||||
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
|
setEppInput("domain_update_restore_request_fee_refundable.xml", FEE_12_MAP);
|
||||||
|
persistPendingDeleteDomain();
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_gracePeriodFee_v06() throws Exception {
|
public void testFailure_gracePeriodFee_v06() throws Exception {
|
||||||
thrown.expect(UnsupportedFeeAttributeException.class);
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
|
@ -241,6 +264,14 @@ public class DomainRestoreRequestFlowTest extends
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_gracePeriodFee_v12() throws Exception {
|
||||||
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
|
setEppInput("domain_update_restore_request_fee_grace_period.xml", FEE_12_MAP);
|
||||||
|
persistPendingDeleteDomain();
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_appliedFee_v06() throws Exception {
|
public void testFailure_appliedFee_v06() throws Exception {
|
||||||
thrown.expect(UnsupportedFeeAttributeException.class);
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
|
@ -257,6 +288,14 @@ public class DomainRestoreRequestFlowTest extends
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_appliedFee_v12() throws Exception {
|
||||||
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
|
setEppInput("domain_update_restore_request_fee_applied.xml", FEE_12_MAP);
|
||||||
|
persistPendingDeleteDomain();
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_premiumNotBlocked() throws Exception {
|
public void testSuccess_premiumNotBlocked() throws Exception {
|
||||||
createTld("example");
|
createTld("example");
|
||||||
|
@ -323,6 +362,16 @@ public class DomainRestoreRequestFlowTest extends
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_wrongFeeAmount_v12() throws Exception {
|
||||||
|
thrown.expect(FeesMismatchException.class);
|
||||||
|
setEppInput("domain_update_restore_request_fee.xml", FEE_12_MAP);
|
||||||
|
persistPendingDeleteDomain();
|
||||||
|
persistResource(
|
||||||
|
Registry.get("tld").asBuilder().setRestoreBillingCost(Money.of(USD, 100)).build());
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
private void runWrongCurrencyTest(Map<String, String> substitutions) throws Exception {
|
private void runWrongCurrencyTest(Map<String, String> substitutions) throws Exception {
|
||||||
thrown.expect(CurrencyUnitMismatchException.class);
|
thrown.expect(CurrencyUnitMismatchException.class);
|
||||||
setEppInput("domain_update_restore_request_fee.xml", substitutions);
|
setEppInput("domain_update_restore_request_fee.xml", substitutions);
|
||||||
|
@ -350,6 +399,11 @@ public class DomainRestoreRequestFlowTest extends
|
||||||
runWrongCurrencyTest(FEE_11_MAP);
|
runWrongCurrencyTest(FEE_11_MAP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_wrongCurrency_v12() throws Exception {
|
||||||
|
runWrongCurrencyTest(FEE_12_MAP);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_feeGivenInWrongScale_v06() throws Exception {
|
public void testFailure_feeGivenInWrongScale_v06() throws Exception {
|
||||||
thrown.expect(CurrencyValueScaleException.class);
|
thrown.expect(CurrencyValueScaleException.class);
|
||||||
|
@ -366,6 +420,14 @@ public class DomainRestoreRequestFlowTest extends
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_feeGivenInWrongScale_v12() throws Exception {
|
||||||
|
thrown.expect(CurrencyValueScaleException.class);
|
||||||
|
setEppInput("domain_update_restore_request_fee_bad_scale.xml", FEE_12_MAP);
|
||||||
|
persistPendingDeleteDomain();
|
||||||
|
runFlow();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_notInRedemptionPeriod() throws Exception {
|
public void testFailure_notInRedemptionPeriod() throws Exception {
|
||||||
thrown.expect(DomainNotEligibleForRestoreException.class);
|
thrown.expect(DomainNotEligibleForRestoreException.class);
|
||||||
|
|
|
@ -85,6 +85,9 @@ public class DomainTransferRequestFlowTest
|
||||||
ImmutableMap.of("FEE_VERSION", "0.6", "FEE_NS", "fee");
|
ImmutableMap.of("FEE_VERSION", "0.6", "FEE_NS", "fee");
|
||||||
private static final ImmutableMap<String, String> FEE_11_MAP =
|
private static final ImmutableMap<String, String> FEE_11_MAP =
|
||||||
ImmutableMap.of("FEE_VERSION", "0.11", "FEE_NS", "fee11");
|
ImmutableMap.of("FEE_VERSION", "0.11", "FEE_NS", "fee11");
|
||||||
|
private static final ImmutableMap<String, String> FEE_12_MAP =
|
||||||
|
ImmutableMap.of("FEE_VERSION", "0.12", "FEE_NS", "fee12");
|
||||||
|
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
|
@ -350,6 +353,12 @@ public class DomainTransferRequestFlowTest
|
||||||
"domain_transfer_request_fee.xml", "domain_transfer_request_response_fee.xml", FEE_11_MAP);
|
"domain_transfer_request_fee.xml", "domain_transfer_request_response_fee.xml", FEE_11_MAP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSuccess_fee_v12() throws Exception {
|
||||||
|
doSuccessfulTest(
|
||||||
|
"domain_transfer_request_fee.xml", "domain_transfer_request_response_fee.xml", FEE_12_MAP);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_fee_withDefaultAttributes_v06() throws Exception {
|
public void testSuccess_fee_withDefaultAttributes_v06() throws Exception {
|
||||||
doSuccessfulTest(
|
doSuccessfulTest(
|
||||||
|
@ -366,19 +375,31 @@ public class DomainTransferRequestFlowTest
|
||||||
FEE_11_MAP);
|
FEE_11_MAP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSuccess_fee_withDefaultAttributes_v12() throws Exception {
|
||||||
|
doSuccessfulTest(
|
||||||
|
"domain_transfer_request_fee_defaults.xml",
|
||||||
|
"domain_transfer_request_response_fee.xml",
|
||||||
|
FEE_12_MAP);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_refundableFee_v06() throws Exception {
|
public void testFailure_refundableFee_v06() throws Exception {
|
||||||
thrown.expect(UnsupportedFeeAttributeException.class);
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
doFailingTest("domain_transfer_request_fee_refundable.xml", FEE_06_MAP);
|
doFailingTest("domain_transfer_request_fee_refundable.xml", FEE_06_MAP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_refundableFee_v11() throws Exception {
|
public void testFailure_refundableFee_v11() throws Exception {
|
||||||
thrown.expect(UnsupportedFeeAttributeException.class);
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
doFailingTest("domain_transfer_request_fee_refundable.xml", FEE_11_MAP);
|
doFailingTest("domain_transfer_request_fee_refundable.xml", FEE_11_MAP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_refundableFee_v12() throws Exception {
|
||||||
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
|
doFailingTest("domain_transfer_request_fee_refundable.xml", FEE_12_MAP);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_gracePeriodFee_v06() throws Exception {
|
public void testFailure_gracePeriodFee_v06() throws Exception {
|
||||||
|
@ -392,6 +413,12 @@ public class DomainTransferRequestFlowTest
|
||||||
doFailingTest("domain_transfer_request_fee_grace_period.xml", FEE_11_MAP);
|
doFailingTest("domain_transfer_request_fee_grace_period.xml", FEE_11_MAP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_gracePeriodFee_v12() throws Exception {
|
||||||
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
|
doFailingTest("domain_transfer_request_fee_grace_period.xml", FEE_12_MAP);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_appliedFee_v06() throws Exception {
|
public void testFailure_appliedFee_v06() throws Exception {
|
||||||
thrown.expect(UnsupportedFeeAttributeException.class);
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
|
@ -404,6 +431,12 @@ public class DomainTransferRequestFlowTest
|
||||||
doFailingTest("domain_transfer_request_fee_applied.xml", FEE_11_MAP);
|
doFailingTest("domain_transfer_request_fee_applied.xml", FEE_11_MAP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_appliedFee_v12() throws Exception {
|
||||||
|
thrown.expect(UnsupportedFeeAttributeException.class);
|
||||||
|
doFailingTest("domain_transfer_request_fee_applied.xml", FEE_12_MAP);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_nonDefaultAutomaticTransferLength() throws Exception {
|
public void testSuccess_nonDefaultAutomaticTransferLength() throws Exception {
|
||||||
persistResource(
|
persistResource(
|
||||||
|
@ -532,6 +565,11 @@ public class DomainTransferRequestFlowTest
|
||||||
runWrongCurrencyTest(FEE_11_MAP);
|
runWrongCurrencyTest(FEE_11_MAP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_wrongCurrency_v12() throws Exception {
|
||||||
|
runWrongCurrencyTest(FEE_12_MAP);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_feeGivenInWrongScale_v06() throws Exception {
|
public void testFailure_feeGivenInWrongScale_v06() throws Exception {
|
||||||
thrown.expect(CurrencyValueScaleException.class);
|
thrown.expect(CurrencyValueScaleException.class);
|
||||||
|
@ -544,6 +582,13 @@ public class DomainTransferRequestFlowTest
|
||||||
doFailingTest("domain_transfer_request_fee_bad_scale.xml", FEE_11_MAP);
|
doFailingTest("domain_transfer_request_fee_bad_scale.xml", FEE_11_MAP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_feeGivenInWrongScale_v12() throws Exception {
|
||||||
|
thrown.expect(CurrencyValueScaleException.class);
|
||||||
|
doFailingTest("domain_transfer_request_fee_bad_scale.xml", FEE_12_MAP);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void runWrongFeeAmountTest(Map<String, String> substitutions) throws Exception {
|
private void runWrongFeeAmountTest(Map<String, String> substitutions) throws Exception {
|
||||||
thrown.expect(FeesMismatchException.class);
|
thrown.expect(FeesMismatchException.class);
|
||||||
persistResource(
|
persistResource(
|
||||||
|
@ -564,6 +609,11 @@ public class DomainTransferRequestFlowTest
|
||||||
runWrongFeeAmountTest(FEE_11_MAP);
|
runWrongFeeAmountTest(FEE_11_MAP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_wrongFeeAmount_v12() throws Exception {
|
||||||
|
runWrongFeeAmountTest(FEE_12_MAP);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_premiumBlocked() throws Exception {
|
public void testFailure_premiumBlocked() throws Exception {
|
||||||
thrown.expect(PremiumNameBlockedException.class);
|
thrown.expect(PremiumNameBlockedException.class);
|
||||||
|
|
61
javatests/google/registry/flows/domain/testdata/domain_check_eap_fee_response_v12.xml
vendored
Normal file
61
javatests/google/registry/flows/domain/testdata/domain_check_eap_fee_response_v12.xml
vendored
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
||||||
|
<response>
|
||||||
|
<result code="1000">
|
||||||
|
<msg>Command completed successfully</msg>
|
||||||
|
</result>
|
||||||
|
<resData>
|
||||||
|
<domain:chkData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||||
|
<domain:cd>
|
||||||
|
<domain:name avail="0">example1.tld</domain:name>
|
||||||
|
<domain:reason>In use</domain:reason>
|
||||||
|
</domain:cd>
|
||||||
|
<domain:cd>
|
||||||
|
<domain:name avail="1">example2.tld</domain:name>
|
||||||
|
</domain:cd>
|
||||||
|
<domain:cd>
|
||||||
|
<domain:name avail="1">example3.tld</domain:name>
|
||||||
|
</domain:cd>
|
||||||
|
</domain:chkData>
|
||||||
|
</resData>
|
||||||
|
<extension>
|
||||||
|
<fee:chkData xmlns:fee="urn:ietf:params:xml:ns:fee-0.12"
|
||||||
|
xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||||
|
<fee:currency>USD</fee:currency>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>example1.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="create">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="create">13.00</fee:fee>
|
||||||
|
<fee:fee description="Early Access Period, fee expires: 2010-01-02T10:00:00.000Z">100.00</fee:fee>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>example2.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="create">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="create">13.00</fee:fee>
|
||||||
|
<fee:fee description="Early Access Period, fee expires: 2010-01-02T10:00:00.000Z">100.00</fee:fee>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>example3.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="create">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="create">13.00</fee:fee>
|
||||||
|
<fee:fee description="Early Access Period, fee expires: 2010-01-02T10:00:00.000Z">100.00</fee:fee>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
</fee:chkData>
|
||||||
|
</extension>
|
||||||
|
<trID>
|
||||||
|
<clTRID>ABC-12345</clTRID>
|
||||||
|
<svTRID>server-trid</svTRID>
|
||||||
|
</trID>
|
||||||
|
</response>
|
||||||
|
</epp>
|
19
javatests/google/registry/flows/domain/testdata/domain_check_fee_bad_period_v12.xml
vendored
Normal file
19
javatests/google/registry/flows/domain/testdata/domain_check_fee_bad_period_v12.xml
vendored
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
||||||
|
<command>
|
||||||
|
<check>
|
||||||
|
<domain:check xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||||
|
<domain:name>example1.tld</domain:name>
|
||||||
|
</domain:check>
|
||||||
|
</check>
|
||||||
|
<extension>
|
||||||
|
<fee:check xmlns:fee="urn:ietf:params:xml:ns:fee-0.6">
|
||||||
|
<fee:domain>
|
||||||
|
<fee:name>example1.tld</fee:name>
|
||||||
|
<fee:command>create</fee:command>
|
||||||
|
<fee:period unit="m">1</fee:period>
|
||||||
|
</fee:domain>
|
||||||
|
</fee:check>
|
||||||
|
</extension>
|
||||||
|
<clTRID>ABC-12345</clTRID>
|
||||||
|
</command>
|
||||||
|
</epp>
|
15
javatests/google/registry/flows/domain/testdata/domain_check_fee_command_phase_v12.xml
vendored
Normal file
15
javatests/google/registry/flows/domain/testdata/domain_check_fee_command_phase_v12.xml
vendored
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
||||||
|
<command>
|
||||||
|
<check>
|
||||||
|
<domain:check xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||||
|
<domain:name>example1.tld</domain:name>
|
||||||
|
</domain:check>
|
||||||
|
</check>
|
||||||
|
<extension>
|
||||||
|
<fee:check xmlns:fee="urn:ietf:params:xml:ns:fee-0.12">
|
||||||
|
<fee:command name="create" phase="claims" />
|
||||||
|
</fee:check>
|
||||||
|
</extension>
|
||||||
|
<clTRID>ABC-12345</clTRID>
|
||||||
|
</command>
|
||||||
|
</epp>
|
15
javatests/google/registry/flows/domain/testdata/domain_check_fee_command_subphase_v12.xml
vendored
Normal file
15
javatests/google/registry/flows/domain/testdata/domain_check_fee_command_subphase_v12.xml
vendored
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
||||||
|
<command>
|
||||||
|
<check>
|
||||||
|
<domain:check xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||||
|
<domain:name>example1.tld</domain:name>
|
||||||
|
</domain:check>
|
||||||
|
</check>
|
||||||
|
<extension>
|
||||||
|
<fee:check xmlns:fee="urn:ietf:params:xml:ns:fee-0.12">
|
||||||
|
<fee:command name="create" subphase="landrush" />
|
||||||
|
</fee:check>
|
||||||
|
</extension>
|
||||||
|
<clTRID>ABC-12345</clTRID>
|
||||||
|
</command>
|
||||||
|
</epp>
|
23
javatests/google/registry/flows/domain/testdata/domain_check_fee_euro_v12.xml
vendored
Normal file
23
javatests/google/registry/flows/domain/testdata/domain_check_fee_euro_v12.xml
vendored
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
||||||
|
<command>
|
||||||
|
<check>
|
||||||
|
<domain:check xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||||
|
<domain:name>example1.tld</domain:name>
|
||||||
|
<domain:name>example2.tld</domain:name>
|
||||||
|
<domain:name>example3.tld</domain:name>
|
||||||
|
</domain:check>
|
||||||
|
</check>
|
||||||
|
<extension>
|
||||||
|
<launch:check xmlns:launch="urn:ietf:params:xml:ns:launch-1.0" type="avail">
|
||||||
|
<launch:phase name="foo">custom</launch:phase>
|
||||||
|
</launch:check>
|
||||||
|
<fee:check xmlns:fee="urn:ietf:params:xml:ns:fee-0.12">
|
||||||
|
<fee:currency>EUR</fee:currency>
|
||||||
|
<fee:command name="create">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
</fee:command>
|
||||||
|
</fee:check>
|
||||||
|
</extension>
|
||||||
|
<clTRID>ABC-12345</clTRID>
|
||||||
|
</command>
|
||||||
|
</epp>
|
17
javatests/google/registry/flows/domain/testdata/domain_check_fee_invalid_command_v12.xml
vendored
Normal file
17
javatests/google/registry/flows/domain/testdata/domain_check_fee_invalid_command_v12.xml
vendored
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
||||||
|
<command>
|
||||||
|
<check>
|
||||||
|
<domain:check xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||||
|
<domain:name>example1.tld</domain:name>
|
||||||
|
</domain:check>
|
||||||
|
</check>
|
||||||
|
<extension>
|
||||||
|
<fee:check xmlns:fee="urn:ietf:params:xml:ns:fee-0.12">
|
||||||
|
<fee:command name="Create">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
</fee:command>
|
||||||
|
</fee:check>
|
||||||
|
</extension>
|
||||||
|
<clTRID>ABC-12345</clTRID>
|
||||||
|
</command>
|
||||||
|
</epp>
|
|
@ -0,0 +1,69 @@
|
||||||
|
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
||||||
|
<response>
|
||||||
|
<result code="1000">
|
||||||
|
<msg>Command completed successfully</msg>
|
||||||
|
</result>
|
||||||
|
<resData>
|
||||||
|
<domain:chkData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||||
|
<domain:cd>
|
||||||
|
<domain:name avail="1">example1.tld</domain:name>
|
||||||
|
</domain:cd>
|
||||||
|
</domain:chkData>
|
||||||
|
</resData>
|
||||||
|
<extension>
|
||||||
|
<fee:chkData xmlns:fee="urn:ietf:params:xml:ns:fee-0.12"
|
||||||
|
xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>example1.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="create">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="create">13.00</fee:fee>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>example1.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="renew">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">11.00</fee:fee>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>example1.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="transfer">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">11.00</fee:fee>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>example1.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="restore">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">11.00</fee:fee>
|
||||||
|
<fee:fee description="restore">17.00</fee:fee>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>example1.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="update">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">11.00</fee:fee>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
</fee:chkData>
|
||||||
|
</extension>
|
||||||
|
<trID>
|
||||||
|
<clTRID>ABC-12345</clTRID>
|
||||||
|
<svTRID>server-trid</svTRID>
|
||||||
|
</trID>
|
||||||
|
</response>
|
||||||
|
</epp>
|
19
javatests/google/registry/flows/domain/testdata/domain_check_fee_multiple_commands_v12.xml
vendored
Normal file
19
javatests/google/registry/flows/domain/testdata/domain_check_fee_multiple_commands_v12.xml
vendored
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
||||||
|
<command>
|
||||||
|
<check>
|
||||||
|
<domain:check xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||||
|
<domain:name>example1.tld</domain:name>
|
||||||
|
</domain:check>
|
||||||
|
</check>
|
||||||
|
<extension>
|
||||||
|
<fee:check xmlns:fee="urn:ietf:params:xml:ns:fee-0.12">
|
||||||
|
<fee:command name="create" />
|
||||||
|
<fee:command name="renew" />
|
||||||
|
<fee:command name="transfer" />
|
||||||
|
<fee:command name="restore" />
|
||||||
|
<fee:command name="update" />
|
||||||
|
</fee:check>
|
||||||
|
</extension>
|
||||||
|
<clTRID>ABC-12345</clTRID>
|
||||||
|
</command>
|
||||||
|
</epp>
|
20
javatests/google/registry/flows/domain/testdata/domain_check_fee_multiyear_restore_v12.xml
vendored
Normal file
20
javatests/google/registry/flows/domain/testdata/domain_check_fee_multiyear_restore_v12.xml
vendored
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
||||||
|
<command>
|
||||||
|
<check>
|
||||||
|
<domain:check xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||||
|
<domain:name>example1.tld</domain:name>
|
||||||
|
</domain:check>
|
||||||
|
</check>
|
||||||
|
<extension>
|
||||||
|
<launch:check xmlns:launch="urn:ietf:params:xml:ns:launch-1.0" type="avail">
|
||||||
|
<launch:phase name="foo">custom</launch:phase>
|
||||||
|
</launch:check>
|
||||||
|
<fee:check xmlns:fee="urn:ietf:params:xml:ns:fee-0.12">
|
||||||
|
<fee:command name="restore">
|
||||||
|
<fee:period unit="y">2</fee:period>
|
||||||
|
</fee:command>
|
||||||
|
</fee:check>
|
||||||
|
</extension>
|
||||||
|
<clTRID>ABC-12345</clTRID>
|
||||||
|
</command>
|
||||||
|
</epp>
|
74
javatests/google/registry/flows/domain/testdata/domain_check_fee_premium_response_v12.xml
vendored
Normal file
74
javatests/google/registry/flows/domain/testdata/domain_check_fee_premium_response_v12.xml
vendored
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
||||||
|
<response>
|
||||||
|
<result code="1000">
|
||||||
|
<msg>Command completed successfully</msg>
|
||||||
|
</result>
|
||||||
|
<resData>
|
||||||
|
<domain:chkData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||||
|
<domain:cd>
|
||||||
|
<domain:name avail="1">rich.example</domain:name>
|
||||||
|
</domain:cd>
|
||||||
|
</domain:chkData>
|
||||||
|
</resData>
|
||||||
|
<extension>
|
||||||
|
<fee:chkData xmlns:fee="urn:ietf:params:xml:ns:fee-0.12"
|
||||||
|
xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>rich.example</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="create">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="create">100.00</fee:fee>
|
||||||
|
<fee:class>premium</fee:class>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>rich.example</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="renew">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">100.00</fee:fee>
|
||||||
|
<fee:class>premium</fee:class>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>rich.example</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="transfer">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">100.00</fee:fee>
|
||||||
|
<fee:class>premium</fee:class>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>rich.example</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="restore">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">100.00</fee:fee>
|
||||||
|
<fee:fee description="restore">17.00</fee:fee>
|
||||||
|
<fee:class>premium</fee:class>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>rich.example</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="update">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">100.00</fee:fee>
|
||||||
|
<fee:class>premium</fee:class>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
</fee:chkData>
|
||||||
|
</extension>
|
||||||
|
<trID>
|
||||||
|
<clTRID>ABC-12345</clTRID>
|
||||||
|
<svTRID>server-trid</svTRID>
|
||||||
|
</trID>
|
||||||
|
</response>
|
||||||
|
</epp>
|
19
javatests/google/registry/flows/domain/testdata/domain_check_fee_premium_v12.xml
vendored
Normal file
19
javatests/google/registry/flows/domain/testdata/domain_check_fee_premium_v12.xml
vendored
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
||||||
|
<command>
|
||||||
|
<check>
|
||||||
|
<domain:check xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||||
|
<domain:name>rich.example</domain:name>
|
||||||
|
</domain:check>
|
||||||
|
</check>
|
||||||
|
<extension>
|
||||||
|
<fee:check xmlns:fee="urn:ietf:params:xml:ns:fee-0.12">
|
||||||
|
<fee:command name="create" />
|
||||||
|
<fee:command name="renew" />
|
||||||
|
<fee:command name="transfer" />
|
||||||
|
<fee:command name="restore" />
|
||||||
|
<fee:command name="update" />
|
||||||
|
</fee:check>
|
||||||
|
</extension>
|
||||||
|
<clTRID>ABC-12345</clTRID>
|
||||||
|
</command>
|
||||||
|
</epp>
|
188
javatests/google/registry/flows/domain/testdata/domain_check_fee_reserved_response_v12.xml
vendored
Normal file
188
javatests/google/registry/flows/domain/testdata/domain_check_fee_reserved_response_v12.xml
vendored
Normal file
|
@ -0,0 +1,188 @@
|
||||||
|
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
||||||
|
<response>
|
||||||
|
<result code="1000">
|
||||||
|
<msg>Command completed successfully</msg>
|
||||||
|
</result>
|
||||||
|
<resData>
|
||||||
|
<domain:chkData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||||
|
<domain:cd>
|
||||||
|
<domain:name avail="0">reserved.tld</domain:name>
|
||||||
|
<domain:reason>Reserved</domain:reason>
|
||||||
|
</domain:cd>
|
||||||
|
<domain:cd>
|
||||||
|
<domain:name avail="0">allowedinsunrise.tld</domain:name>
|
||||||
|
<domain:reason>Reserved for non-sunrise</domain:reason>
|
||||||
|
</domain:cd>
|
||||||
|
<domain:cd>
|
||||||
|
<domain:name avail="0">collision.tld</domain:name>
|
||||||
|
<domain:reason>Cannot be delegated</domain:reason>
|
||||||
|
</domain:cd>
|
||||||
|
<domain:cd>
|
||||||
|
<domain:name avail="0">premiumcollision.tld</domain:name>
|
||||||
|
<domain:reason>Cannot be delegated</domain:reason>
|
||||||
|
</domain:cd>
|
||||||
|
</domain:chkData>
|
||||||
|
</resData>
|
||||||
|
<extension>
|
||||||
|
<fee:chkData xmlns:fee="urn:ietf:params:xml:ns:fee-0.12"
|
||||||
|
xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||||
|
<fee:currency>USD</fee:currency>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>reserved.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="create">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:class>reserved</fee:class>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>reserved.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="renew">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">11.00</fee:fee>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>reserved.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="transfer">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">11.00</fee:fee>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>reserved.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="restore">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">11.00</fee:fee>
|
||||||
|
<fee:fee description="restore">17.00</fee:fee>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>allowedinsunrise.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="create">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:class>reserved</fee:class>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>allowedinsunrise.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="renew">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">11.00</fee:fee>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>allowedinsunrise.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="transfer">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">11.00</fee:fee>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>allowedinsunrise.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="restore">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">11.00</fee:fee>
|
||||||
|
<fee:fee description="restore">17.00</fee:fee>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>collision.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="create">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:class>reserved</fee:class>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>collision.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="renew">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">11.00</fee:fee>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>collision.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="transfer">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">11.00</fee:fee>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>collision.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="restore">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">11.00</fee:fee>
|
||||||
|
<fee:fee description="restore">17.00</fee:fee>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>premiumcollision.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="create">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:class>reserved</fee:class>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>premiumcollision.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="renew">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">70.00</fee:fee>
|
||||||
|
<fee:class>premium</fee:class>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>premiumcollision.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="transfer">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">70.00</fee:fee>
|
||||||
|
<fee:class>premium</fee:class>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>premiumcollision.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="restore">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">70.00</fee:fee>
|
||||||
|
<fee:fee description="restore">17.00</fee:fee>
|
||||||
|
<fee:class>premium</fee:class>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
</fee:chkData>
|
||||||
|
</extension>
|
||||||
|
<trID>
|
||||||
|
<clTRID>ABC-12345</clTRID>
|
||||||
|
<svTRID>server-trid</svTRID>
|
||||||
|
</trID>
|
||||||
|
</response>
|
||||||
|
</epp>
|
193
javatests/google/registry/flows/domain/testdata/domain_check_fee_reserved_sunrise_response_v12.xml
vendored
Normal file
193
javatests/google/registry/flows/domain/testdata/domain_check_fee_reserved_sunrise_response_v12.xml
vendored
Normal file
|
@ -0,0 +1,193 @@
|
||||||
|
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
||||||
|
<response>
|
||||||
|
<result code="1000">
|
||||||
|
<msg>Command completed successfully</msg>
|
||||||
|
</result>
|
||||||
|
<resData>
|
||||||
|
<domain:chkData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||||
|
<domain:cd>
|
||||||
|
<domain:name avail="0">reserved.tld</domain:name>
|
||||||
|
<domain:reason>Reserved</domain:reason>
|
||||||
|
</domain:cd>
|
||||||
|
<domain:cd>
|
||||||
|
<domain:name avail="0">allowedinsunrise.tld</domain:name>
|
||||||
|
<domain:reason>Reserved for non-sunrise</domain:reason>
|
||||||
|
</domain:cd>
|
||||||
|
<domain:cd>
|
||||||
|
<domain:name avail="0">collision.tld</domain:name>
|
||||||
|
<domain:reason>Cannot be delegated</domain:reason>
|
||||||
|
</domain:cd>
|
||||||
|
<domain:cd>
|
||||||
|
<domain:name avail="0">premiumcollision.tld</domain:name>
|
||||||
|
<domain:reason>Cannot be delegated</domain:reason>
|
||||||
|
</domain:cd>
|
||||||
|
</domain:chkData>
|
||||||
|
</resData>
|
||||||
|
<extension>
|
||||||
|
<fee:chkData xmlns:fee="urn:ietf:params:xml:ns:fee-0.12"
|
||||||
|
xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||||
|
<fee:currency>USD</fee:currency>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>reserved.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="create">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:class>reserved</fee:class>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>reserved.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="renew">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">11.00</fee:fee>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>reserved.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="transfer">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">11.00</fee:fee>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>reserved.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="restore">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">11.00</fee:fee>
|
||||||
|
<fee:fee description="restore">17.00</fee:fee>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>allowedinsunrise.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="create">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="create">13.00</fee:fee>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>allowedinsunrise.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="renew">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">11.00</fee:fee>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>allowedinsunrise.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="transfer">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">11.00</fee:fee>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>allowedinsunrise.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="restore">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">11.00</fee:fee>
|
||||||
|
<fee:fee description="restore">17.00</fee:fee>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>collision.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="create">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="create">13.00</fee:fee>
|
||||||
|
<fee:class>collision</fee:class>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>collision.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="renew">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">11.00</fee:fee>
|
||||||
|
<fee:class>collision</fee:class>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>collision.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="transfer">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">11.00</fee:fee>
|
||||||
|
<fee:class>collision</fee:class>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>collision.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="restore">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">11.00</fee:fee>
|
||||||
|
<fee:fee description="restore">17.00</fee:fee>
|
||||||
|
<fee:class>collision</fee:class>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>premiumcollision.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="create">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="create">70.00</fee:fee>
|
||||||
|
<fee:class>premium-collision</fee:class>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>premiumcollision.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="renew">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">70.00</fee:fee>
|
||||||
|
<fee:class>premium-collision</fee:class>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>premiumcollision.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="transfer">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">70.00</fee:fee>
|
||||||
|
<fee:class>premium-collision</fee:class>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>premiumcollision.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="restore">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="renew">70.00</fee:fee>
|
||||||
|
<fee:fee description="restore">17.00</fee:fee>
|
||||||
|
<fee:class>premium-collision</fee:class>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
</fee:chkData>
|
||||||
|
</extension>
|
||||||
|
<trID>
|
||||||
|
<clTRID>ABC-12345</clTRID>
|
||||||
|
<svTRID>server-trid</svTRID>
|
||||||
|
</trID>
|
||||||
|
</response>
|
||||||
|
</epp>
|
33
javatests/google/registry/flows/domain/testdata/domain_check_fee_reserved_v12.xml
vendored
Normal file
33
javatests/google/registry/flows/domain/testdata/domain_check_fee_reserved_v12.xml
vendored
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
||||||
|
<command>
|
||||||
|
<check>
|
||||||
|
<domain:check xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||||
|
<domain:name>reserved.tld</domain:name>
|
||||||
|
<domain:name>allowedinsunrise.tld</domain:name>
|
||||||
|
<domain:name>collision.tld</domain:name>
|
||||||
|
<domain:name>premiumcollision.tld</domain:name>
|
||||||
|
</domain:check>
|
||||||
|
</check>
|
||||||
|
<extension>
|
||||||
|
<launch:check xmlns:launch="urn:ietf:params:xml:ns:launch-1.0" type="avail">
|
||||||
|
<launch:phase name="foo">custom</launch:phase>
|
||||||
|
</launch:check>
|
||||||
|
<fee:check xmlns:fee="urn:ietf:params:xml:ns:fee-0.12">
|
||||||
|
<fee:currency>USD</fee:currency>
|
||||||
|
<fee:command name="create">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
</fee:command>
|
||||||
|
<fee:command name="renew">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
</fee:command>
|
||||||
|
<fee:command name="transfer">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
</fee:command>
|
||||||
|
<fee:command name="restore">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
</fee:command>
|
||||||
|
</fee:check>
|
||||||
|
</extension>
|
||||||
|
<clTRID>ABC-12345</clTRID>
|
||||||
|
</command>
|
||||||
|
</epp>
|
58
javatests/google/registry/flows/domain/testdata/domain_check_fee_response_v12.xml
vendored
Normal file
58
javatests/google/registry/flows/domain/testdata/domain_check_fee_response_v12.xml
vendored
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
||||||
|
<response>
|
||||||
|
<result code="1000">
|
||||||
|
<msg>Command completed successfully</msg>
|
||||||
|
</result>
|
||||||
|
<resData>
|
||||||
|
<domain:chkData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||||
|
<domain:cd>
|
||||||
|
<domain:name avail="0">example1.tld</domain:name>
|
||||||
|
<domain:reason>In use</domain:reason>
|
||||||
|
</domain:cd>
|
||||||
|
<domain:cd>
|
||||||
|
<domain:name avail="1">example2.tld</domain:name>
|
||||||
|
</domain:cd>
|
||||||
|
<domain:cd>
|
||||||
|
<domain:name avail="1">example3.tld</domain:name>
|
||||||
|
</domain:cd>
|
||||||
|
</domain:chkData>
|
||||||
|
</resData>
|
||||||
|
<extension>
|
||||||
|
<fee:chkData xmlns:fee="urn:ietf:params:xml:ns:fee-0.12"
|
||||||
|
xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||||
|
<fee:currency>USD</fee:currency>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>example1.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="create">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="create">13.00</fee:fee>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>example2.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="create">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="create">13.00</fee:fee>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
<fee:cd>
|
||||||
|
<fee:object>
|
||||||
|
<domain:name>example3.tld</domain:name>
|
||||||
|
</fee:object>
|
||||||
|
<fee:command name="create">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:fee description="create">13.00</fee:fee>
|
||||||
|
</fee:command>
|
||||||
|
</fee:cd>
|
||||||
|
</fee:chkData>
|
||||||
|
</extension>
|
||||||
|
<trID>
|
||||||
|
<clTRID>ABC-12345</clTRID>
|
||||||
|
<svTRID>server-trid</svTRID>
|
||||||
|
</trID>
|
||||||
|
</response>
|
||||||
|
</epp>
|
17
javatests/google/registry/flows/domain/testdata/domain_check_fee_unknown_command_v12.xml
vendored
Normal file
17
javatests/google/registry/flows/domain/testdata/domain_check_fee_unknown_command_v12.xml
vendored
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
||||||
|
<command>
|
||||||
|
<check>
|
||||||
|
<domain:check xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||||
|
<domain:name>example1.tld</domain:name>
|
||||||
|
</domain:check>
|
||||||
|
</check>
|
||||||
|
<extension>
|
||||||
|
<fee:check xmlns:fee="urn:ietf:params:xml:ns:fee-0.12">
|
||||||
|
<fee:command name="delete">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
</fee:command>
|
||||||
|
</fee:check>
|
||||||
|
</extension>
|
||||||
|
<clTRID>ABC-12345</clTRID>
|
||||||
|
</command>
|
||||||
|
</epp>
|
25
javatests/google/registry/flows/domain/testdata/domain_check_fee_v12.xml
vendored
Normal file
25
javatests/google/registry/flows/domain/testdata/domain_check_fee_v12.xml
vendored
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
||||||
|
<command>
|
||||||
|
<check>
|
||||||
|
<domain:check xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||||
|
<domain:name>example1.tld</domain:name>
|
||||||
|
<domain:name>example2.tld</domain:name>
|
||||||
|
<domain:name>example3.tld</domain:name>
|
||||||
|
</domain:check>
|
||||||
|
</check>
|
||||||
|
<extension>
|
||||||
|
<launch:check xmlns:launch="urn:ietf:params:xml:ns:launch-1.0" type="avail">
|
||||||
|
<launch:phase name="foo">custom</launch:phase>
|
||||||
|
</launch:check>
|
||||||
|
<fee:check xmlns:fee="urn:ietf:params:xml:ns:fee-0.12">
|
||||||
|
<fee:currency>USD</fee:currency>
|
||||||
|
<fee:command name="create">
|
||||||
|
<fee:period unit="y">1</fee:period>
|
||||||
|
<fee:class>premium</fee:class>
|
||||||
|
<fee:date>2017-05-17T13:22:21.0Z</fee:date>
|
||||||
|
</fee:command>
|
||||||
|
</fee:check>
|
||||||
|
</extension>
|
||||||
|
<clTRID>ABC-12345</clTRID>
|
||||||
|
</command>
|
||||||
|
</epp>
|
|
@ -14,6 +14,7 @@
|
||||||
<extURI>urn:ietf:params:xml:ns:secDNS-1.1</extURI>
|
<extURI>urn:ietf:params:xml:ns:secDNS-1.1</extURI>
|
||||||
<extURI>urn:ietf:params:xml:ns:fee-0.6</extURI>
|
<extURI>urn:ietf:params:xml:ns:fee-0.6</extURI>
|
||||||
<extURI>urn:ietf:params:xml:ns:fee-0.11</extURI>
|
<extURI>urn:ietf:params:xml:ns:fee-0.11</extURI>
|
||||||
|
<extURI>urn:ietf:params:xml:ns:fee-0.12</extURI>
|
||||||
</svcExtension>
|
</svcExtension>
|
||||||
</svcMenu>
|
</svcMenu>
|
||||||
<dcp>
|
<dcp>
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
<extURI>urn:ietf:params:xml:ns:secDNS-1.1</extURI>
|
<extURI>urn:ietf:params:xml:ns:secDNS-1.1</extURI>
|
||||||
<extURI>urn:ietf:params:xml:ns:fee-0.6</extURI>
|
<extURI>urn:ietf:params:xml:ns:fee-0.6</extURI>
|
||||||
<extURI>urn:ietf:params:xml:ns:fee-0.11</extURI>
|
<extURI>urn:ietf:params:xml:ns:fee-0.11</extURI>
|
||||||
|
<extURI>urn:ietf:params:xml:ns:fee-0.12</extURI>
|
||||||
</svcExtension>
|
</svcExtension>
|
||||||
</svcMenu>
|
</svcMenu>
|
||||||
<dcp>
|
<dcp>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue