diff --git a/docs/flows.md b/docs/flows.md index e81f4693e..ac6469389 100644 --- a/docs/flows.md +++ b/docs/flows.md @@ -785,6 +785,8 @@ A flow for an Epp "hello". ### Errors +* 2001 + * Generic XML syntax error that can be thrown by any flow. ## HostCheckFlow diff --git a/java/google/registry/flows/session/HelloFlow.java b/java/google/registry/flows/session/HelloFlow.java index 14b024d37..876fd626c 100644 --- a/java/google/registry/flows/session/HelloFlow.java +++ b/java/google/registry/flows/session/HelloFlow.java @@ -22,7 +22,11 @@ import google.registry.model.eppoutput.Greeting; import google.registry.util.Clock; import javax.inject.Inject; -/** A flow for an Epp "hello". */ +/** + * A flow for an Epp "hello". + * + * @error {@link google.registry.flows.FlowUtils.GenericXmlSyntaxErrorException} + */ public class HelloFlow implements Flow { @Inject ExtensionManager extensionManager; @@ -32,7 +36,7 @@ public class HelloFlow implements Flow { @Override public Greeting run() throws EppException { - extensionManager.validate(); // There are no legal extensions for this flow. + extensionManager.validate(); // There are no legal extensions for this flow. return Greeting.create(clock.nowUtc(), greetingServerId); } } diff --git a/javatests/google/registry/flows/FlowTestCase.java b/javatests/google/registry/flows/FlowTestCase.java index b8f3cc625..e396afe8b 100644 --- a/javatests/google/registry/flows/FlowTestCase.java +++ b/javatests/google/registry/flows/FlowTestCase.java @@ -226,13 +226,6 @@ public abstract class FlowTestCase extends ShardableTestCase { assertPollMessagesHelper(getPollMessages(clientId), expected); } - public void assertPollMessages( - String clientId, - DateTime now, - PollMessage... expected) { - assertPollMessagesHelper(getPollMessages(clientId, now), expected); - } - public void assertPollMessages(PollMessage... expected) { assertPollMessagesHelper(getPollMessages(), expected); } @@ -326,10 +319,6 @@ public abstract class FlowTestCase extends ShardableTestCase { private TmchCaMode tmchCaMode = TmchCaMode.PILOT; - protected void useTmchProdCert() { - tmchCaMode = TmchCaMode.PRODUCTION; - } - public EppOutput dryRunFlowAssertResponse(String xml, String... ignoredPaths) throws Exception { List beforeEntities = ofy().load().list(); EppOutput output = diff --git a/javatests/google/registry/flows/session/HelloFlowTest.java b/javatests/google/registry/flows/session/HelloFlowTest.java index cde115e82..50b6c05f4 100644 --- a/javatests/google/registry/flows/session/HelloFlowTest.java +++ b/javatests/google/registry/flows/session/HelloFlowTest.java @@ -14,10 +14,14 @@ package google.registry.flows.session; +import static google.registry.testing.EppExceptionSubject.assertAboutEppExceptions; +import static google.registry.testing.JUnitBackports.assertThrows; import static org.joda.time.format.ISODateTimeFormat.dateTimeNoMillis; import com.google.common.collect.ImmutableMap; +import google.registry.flows.EppException; import google.registry.flows.FlowTestCase; +import google.registry.flows.FlowUtils.GenericXmlSyntaxErrorException; import org.junit.Test; /** Unit tests for {@link HelloFlow}. */ @@ -31,4 +35,13 @@ public class HelloFlowTest extends FlowTestCase { loadFile( "greeting.xml", ImmutableMap.of("DATE", clock.nowUtc().toString(dateTimeNoMillis())))); } + + @Test + public void testGenericSyntaxException() { + // This is a generic syntax test--we don't have a generic flow test case so this simple + // test class will do. Note: the logic this tests is common to all flows. + setEppInput("generic_syntax_exception.xml"); + EppException thrown = assertThrows(GenericXmlSyntaxErrorException.class, this::runFlow); + assertAboutEppExceptions().that(thrown).marshalsToXml(); + } } diff --git a/javatests/google/registry/flows/session/testdata/generic_syntax_exception.xml b/javatests/google/registry/flows/session/testdata/generic_syntax_exception.xml new file mode 100644 index 000000000..36674df6d --- /dev/null +++ b/javatests/google/registry/flows/session/testdata/generic_syntax_exception.xml @@ -0,0 +1,5 @@ + + + this is some bad XML + +