Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,9 @@ public ImmutableList<FeeCheckResponseExtensionItemV06> getItems() {
return items;
}

static FeeCheckResponseExtensionV06
create(ImmutableList<FeeCheckResponseExtensionItemV06> items) {
@VisibleForTesting
public static FeeCheckResponseExtensionV06 create(
ImmutableList<FeeCheckResponseExtensionItemV06> items) {
FeeCheckResponseExtensionV06 instance = new FeeCheckResponseExtensionV06();
instance.items = items;
return instance;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

@XmlSchema(
namespace = "urn:ietf:params:xml:ns:fee-0.6",
xmlns = @XmlNs(prefix = "fee", namespaceURI = "urn:ietf:params:xml:ns:fee-0.6"),
xmlns = @XmlNs(prefix = "fee06", namespaceURI = "urn:ietf:params:xml:ns:fee-0.6"),
elementFormDefault = XmlNsForm.QUALIFIED)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlJavaTypeAdapter(CurrencyUnitAdapter.class)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,9 @@ public ImmutableList<FeeCheckResponseExtensionItemV11> getItems() {
return items;
}

static FeeCheckResponseExtensionV11
create(ImmutableList<FeeCheckResponseExtensionItemV11> items) {
@VisibleForTesting
public static FeeCheckResponseExtensionV11 create(
ImmutableList<FeeCheckResponseExtensionItemV11> items) {
FeeCheckResponseExtensionV11 instance = new FeeCheckResponseExtensionV11();
instance.items = items;
return instance;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,9 @@ public ImmutableList<FeeCheckResponseExtensionItemV12> getItems() {
return items;
}

static FeeCheckResponseExtensionV12
create(CurrencyUnit currency, ImmutableList<FeeCheckResponseExtensionItemV12> items) {
@VisibleForTesting
public static FeeCheckResponseExtensionV12 create(
CurrencyUnit currency, ImmutableList<FeeCheckResponseExtensionItemV12> items) {
FeeCheckResponseExtensionV12 instance = new FeeCheckResponseExtensionV12();
instance.currency = currency;
instance.items = items;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,8 @@ public ImmutableList<FeeCheckResponseExtensionItemStdV1> getItems() {
return items;
}

static FeeCheckResponseExtensionStdV1 create(
@VisibleForTesting
public static FeeCheckResponseExtensionStdV1 create(
CurrencyUnit currency, ImmutableList<FeeCheckResponseExtensionItemStdV1> items) {
FeeCheckResponseExtensionStdV1 instance = new FeeCheckResponseExtensionStdV1();
instance.currency = currency;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

@XmlSchema(
namespace = "urn:ietf:params:xml:ns:epp:fee-1.0",
xmlns = @XmlNs(prefix = "fee_1_00", namespaceURI = "urn:ietf:params:xml:ns:epp:fee-1.0"),
xmlns = @XmlNs(prefix = "fee", namespaceURI = "urn:ietf:params:xml:ns:epp:fee-1.0"),
elementFormDefault = XmlNsForm.QUALIFIED)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlJavaTypeAdapters({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@
import static google.registry.testing.EppExceptionSubject.assertAboutEppExceptions;
import static google.registry.util.DateTimeUtils.END_OF_TIME;
import static google.registry.util.DateTimeUtils.START_OF_TIME;
import static google.registry.xml.XmlTestUtils.assertXmlEquals;
import static org.joda.money.CurrencyUnit.JPY;
import static org.joda.money.CurrencyUnit.USD;
import static org.junit.jupiter.api.Assertions.assertThrows;
Expand Down Expand Up @@ -2543,8 +2544,9 @@ void testFailure_blockedByBsa() throws Exception {
.setResult(thrown.getResult())
.build()),
ValidationMode.STRICT);
assertThat(new String(responseXmlBytes, StandardCharsets.UTF_8))
.isEqualTo(loadFile("domain_create_blocked_by_bsa.xml"));
assertXmlEquals(
new String(responseXmlBytes, StandardCharsets.UTF_8),
loadFile("domain_create_blocked_by_bsa.xml"));
}

@Test
Expand Down Expand Up @@ -2577,8 +2579,9 @@ void testFailure_blockedByBsa_hasWrongToken() throws Exception {
.setResult(thrown.getResult())
.build()),
ValidationMode.STRICT);
assertThat(new String(responseXmlBytes, StandardCharsets.UTF_8))
.isEqualTo(loadFile("domain_create_blocked_by_bsa.xml"));
assertXmlEquals(
new String(responseXmlBytes, StandardCharsets.UTF_8),
loadFile("domain_create_blocked_by_bsa.xml"));
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,36 @@
package google.registry.model.eppcommon;

import static com.google.common.truth.Truth.assertThat;
import static google.registry.model.eppcommon.EppXmlTransformer.marshal;
import static google.registry.model.eppcommon.EppXmlTransformer.unmarshal;
import static google.registry.testing.TestDataHelper.loadBytes;
import static java.nio.charset.StandardCharsets.UTF_8;
import static org.junit.jupiter.api.Assertions.assertThrows;

import com.google.common.collect.ImmutableList;
import google.registry.model.domain.Period;
import google.registry.model.domain.fee.FeeCheckResponseExtension;
import google.registry.model.domain.fee.FeeCheckResponseExtensionItem;
import google.registry.model.domain.fee.FeeQueryCommandExtensionItem;
import google.registry.model.domain.fee06.FeeCheckResponseExtensionItemV06;
import google.registry.model.domain.fee06.FeeCheckResponseExtensionV06;
import google.registry.model.domain.fee11.FeeCheckResponseExtensionItemV11;
import google.registry.model.domain.fee11.FeeCheckResponseExtensionV11;
import google.registry.model.domain.fee12.FeeCheckResponseExtensionItemV12;
import google.registry.model.domain.fee12.FeeCheckResponseExtensionV12;
import google.registry.model.domain.feestdv1.FeeCheckResponseExtensionItemStdV1;
import google.registry.model.domain.feestdv1.FeeCheckResponseExtensionStdV1;
import google.registry.model.eppinput.EppInput;
import google.registry.model.eppoutput.EppOutput;
import google.registry.model.eppoutput.EppResponse;
import google.registry.model.eppoutput.Result;
import google.registry.xml.ValidationMode;
import java.util.stream.Stream;
import org.joda.money.CurrencyUnit;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;

/** Tests for {@link EppXmlTransformer}. */
class EppXmlTransformerTest {
Expand All @@ -38,4 +61,66 @@ void testUnmarshalingWrongClassThrows() {
ClassCastException.class,
() -> unmarshal(EppOutput.class, loadBytes(getClass(), "contact_info.xml").read()));
}

@ParameterizedTest
@MethodSource("provideFeeTestParams")
void testFeeXmlNamespaceTagLiteral(
String tag, FeeCheckResponseExtension feeCheckResponseExtension) throws Exception {
var eppOutput =
EppOutput.create(
new EppResponse.Builder()
.setTrid(Trid.create("clTrid", "svrTrid"))
.setResultFromCode(Result.Code.SUCCESS)
.setOnlyExtension(feeCheckResponseExtension)
.build());
var xmlOutput = new String(marshal(eppOutput, ValidationMode.STRICT), UTF_8);
String expected = String.format("<%s:chkData>", tag);
assertThat(xmlOutput).contains(expected);
}

@SuppressWarnings("unused")
private static Stream<Arguments> provideFeeTestParams() {
return Stream.of(
Arguments.of(
"fee06",
FeeCheckResponseExtensionV06.create(
ImmutableList.of(
createCannedExtensionItem(
FeeCheckResponseExtensionItemV06.class,
new FeeCheckResponseExtensionItemV06.Builder()))),
Arguments.of(
"fee11",
FeeCheckResponseExtensionV11.create(
ImmutableList.of(
createCannedExtensionItem(
FeeCheckResponseExtensionItemV11.class,
new FeeCheckResponseExtensionItemV11.Builder()))))),
Arguments.of(
"fee12",
FeeCheckResponseExtensionV12.create(
CurrencyUnit.USD,
ImmutableList.of(
createCannedExtensionItem(
FeeCheckResponseExtensionItemV12.class,
new FeeCheckResponseExtensionItemV12.Builder())))),
Arguments.of(
"fee",
FeeCheckResponseExtensionStdV1.create(
CurrencyUnit.USD,
ImmutableList.of(
createCannedExtensionItem(
FeeCheckResponseExtensionItemStdV1.class,
new FeeCheckResponseExtensionItemStdV1.Builder())))));
}

private static <T extends FeeCheckResponseExtensionItem> T createCannedExtensionItem(
Class<T> itemType, FeeCheckResponseExtensionItem.Builder<T> builder) {
return itemType.cast(
builder
.setCommand(FeeQueryCommandExtensionItem.CommandName.CREATE, null, null)
.setDomainNameIfSupported("example.tld")
.setCurrencyIfSupported(CurrencyUnit.USD)
.setPeriod(Period.create(1, Period.Unit.YEARS))
.build());
}
}
Loading