mirror of
https://github.com/google/nomulus.git
synced 2025-05-13 16:07:15 +02:00
Don't prompt to confirm non-mutating nomulus EPP tool commands
This is accomplished by making all non-mutating commands function with dry run set to true, which also has the pleasurable side effect of not prompting for dry-run mutating commands either, which also do nothing different/special on the second run. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=192149150
This commit is contained in:
parent
013558c814
commit
3bbaf585e5
15 changed files with 248 additions and 48 deletions
|
@ -32,7 +32,11 @@ public abstract class ConfirmingCommand implements Command {
|
||||||
if (checkExecutionState()) {
|
if (checkExecutionState()) {
|
||||||
init();
|
init();
|
||||||
printLineIfNotEmpty(prompt());
|
printLineIfNotEmpty(prompt());
|
||||||
if (force || promptForYes("Perform this command?")) {
|
if (dontRunCommand()) {
|
||||||
|
// This typically happens when all of the work is accomplished inside of prompt(), so do
|
||||||
|
// nothing further.
|
||||||
|
return;
|
||||||
|
} else if (force || promptForYes("Perform this command?")) {
|
||||||
System.out.println(execute());
|
System.out.println(execute());
|
||||||
printLineIfNotEmpty(postExecute());
|
printLineIfNotEmpty(postExecute());
|
||||||
} else {
|
} else {
|
||||||
|
@ -49,6 +53,11 @@ public abstract class ConfirmingCommand implements Command {
|
||||||
/** Initializes the command. */
|
/** Initializes the command. */
|
||||||
protected void init() throws Exception {}
|
protected void init() throws Exception {}
|
||||||
|
|
||||||
|
/** Whether to NOT run the command. Override to true for dry-run commands. */
|
||||||
|
protected boolean dontRunCommand() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/** Returns the optional extra confirmation prompt for the command. */
|
/** Returns the optional extra confirmation prompt for the command. */
|
||||||
protected String prompt() throws Exception {
|
protected String prompt() throws Exception {
|
||||||
return "";
|
return "";
|
||||||
|
|
|
@ -25,7 +25,7 @@ import google.registry.tools.soy.DomainApplicationInfoSoyInfo;
|
||||||
|
|
||||||
/** A command to execute a domain application info EPP command. */
|
/** A command to execute a domain application info EPP command. */
|
||||||
@Parameters(separators = " =", commandDescription = "Get domain application EPP info")
|
@Parameters(separators = " =", commandDescription = "Get domain application EPP info")
|
||||||
final class DomainApplicationInfoCommand extends EppToolCommand {
|
final class DomainApplicationInfoCommand extends NonMutatingEppToolCommand {
|
||||||
|
|
||||||
@Parameter(
|
@Parameter(
|
||||||
names = {"-c", "--client"},
|
names = {"-c", "--client"},
|
||||||
|
|
|
@ -24,7 +24,7 @@ import java.util.List;
|
||||||
|
|
||||||
/** A command to execute a domain check claims epp command. */
|
/** A command to execute a domain check claims epp command. */
|
||||||
@Parameters(separators = " =", commandDescription = "Check claims on domain(s)")
|
@Parameters(separators = " =", commandDescription = "Check claims on domain(s)")
|
||||||
final class DomainCheckClaimsCommand extends EppToolCommand {
|
final class DomainCheckClaimsCommand extends NonMutatingEppToolCommand {
|
||||||
|
|
||||||
@Parameter(
|
@Parameter(
|
||||||
names = {"-c", "--client"},
|
names = {"-c", "--client"},
|
||||||
|
|
|
@ -24,7 +24,7 @@ import java.util.List;
|
||||||
|
|
||||||
/** A command to execute a domain check epp command. */
|
/** A command to execute a domain check epp command. */
|
||||||
@Parameters(separators = " =", commandDescription = "Check domain availability")
|
@Parameters(separators = " =", commandDescription = "Check domain availability")
|
||||||
final class DomainCheckCommand extends EppToolCommand {
|
final class DomainCheckCommand extends NonMutatingEppToolCommand {
|
||||||
|
|
||||||
@Parameter(
|
@Parameter(
|
||||||
names = {"-c", "--client"},
|
names = {"-c", "--client"},
|
||||||
|
|
|
@ -24,7 +24,7 @@ import java.util.List;
|
||||||
|
|
||||||
/** A command to execute a domain check fees epp command. */
|
/** A command to execute a domain check fees epp command. */
|
||||||
@Parameters(separators = " =", commandDescription = "Check domain fees (for a 1-year create)")
|
@Parameters(separators = " =", commandDescription = "Check domain fees (for a 1-year create)")
|
||||||
final class DomainCheckFeeCommand extends EppToolCommand {
|
final class DomainCheckFeeCommand extends NonMutatingEppToolCommand {
|
||||||
|
|
||||||
@Parameter(
|
@Parameter(
|
||||||
names = {"-c", "--client"},
|
names = {"-c", "--client"},
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
|
|
||||||
package google.registry.tools;
|
package google.registry.tools;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkArgument;
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
import static com.google.common.base.Strings.nullToEmpty;
|
import static com.google.common.base.Strings.nullToEmpty;
|
||||||
import static com.google.common.collect.Maps.filterValues;
|
import static com.google.common.collect.Maps.filterValues;
|
||||||
|
@ -123,9 +122,8 @@ abstract class EppToolCommand extends ConfirmingCommand implements ServerSideCom
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean checkExecutionState() throws Exception {
|
protected boolean dontRunCommand() {
|
||||||
checkArgument(!(force && isDryRun()), "--force and --dry_run are incompatible");
|
return isDryRun();
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -14,6 +14,8 @@
|
||||||
|
|
||||||
package google.registry.tools;
|
package google.registry.tools;
|
||||||
|
|
||||||
|
import static com.google.common.base.Preconditions.checkArgument;
|
||||||
|
|
||||||
import com.beust.jcommander.Parameter;
|
import com.beust.jcommander.Parameter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -27,6 +29,12 @@ public abstract class MutatingEppToolCommand extends EppToolCommand {
|
||||||
description = "Do not actually commit any mutations")
|
description = "Do not actually commit any mutations")
|
||||||
boolean dryRun;
|
boolean dryRun;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean checkExecutionState() throws Exception {
|
||||||
|
checkArgument(!(force && isDryRun()), "--force and --dry_run are incompatible");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean isDryRun() {
|
protected boolean isDryRun() {
|
||||||
return dryRun;
|
return dryRun;
|
||||||
|
|
32
java/google/registry/tools/NonMutatingEppToolCommand.java
Normal file
32
java/google/registry/tools/NonMutatingEppToolCommand.java
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
// Copyright 2018 The Nomulus 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.tools;
|
||||||
|
|
||||||
|
import static com.google.common.base.Preconditions.checkArgument;
|
||||||
|
|
||||||
|
/** A non-mutating EPP command (that does not prompt for confirmation). */
|
||||||
|
abstract class NonMutatingEppToolCommand extends EppToolCommand {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean isDryRun() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean checkExecutionState() {
|
||||||
|
checkArgument(!force, "--force is unnecessary with non-mutating EPP tool commands");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
|
@ -25,17 +25,17 @@ public class DomainApplicationInfoCommandTest
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess() throws Exception {
|
public void testSuccess() throws Exception {
|
||||||
runCommandForced("--client=NewRegistrar", "--domain_name=example.tld",
|
runCommand("--client=NewRegistrar", "--domain_name=example.tld",
|
||||||
"--phase=landrush", "--id=123");
|
"--phase=landrush", "--id=123");
|
||||||
eppVerifier.verifySent("domain_info_landrush.xml");
|
eppVerifier.expectDryRun().verifySent("domain_info_landrush.xml");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_subphase() throws Exception {
|
public void testSuccess_subphase() throws Exception {
|
||||||
// Sunrush: phase=sunrise, subphase=landrush
|
// Sunrush: phase=sunrise, subphase=landrush
|
||||||
runCommandForced("--client=NewRegistrar", "--domain_name=example.tld",
|
runCommand("--client=NewRegistrar", "--domain_name=example.tld",
|
||||||
"--phase=sunrush", "--id=123");
|
"--phase=sunrush", "--id=123");
|
||||||
eppVerifier.verifySent("domain_info_sunrush.xml");
|
eppVerifier.expectDryRun().verifySent("domain_info_sunrush.xml");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -43,7 +43,7 @@ public class DomainApplicationInfoCommandTest
|
||||||
assertThrows(
|
assertThrows(
|
||||||
IllegalArgumentException.class,
|
IllegalArgumentException.class,
|
||||||
() ->
|
() ->
|
||||||
runCommandForced(
|
runCommand(
|
||||||
"--client=NewRegistrar",
|
"--client=NewRegistrar",
|
||||||
"--domain_name=example.tld",
|
"--domain_name=example.tld",
|
||||||
"--phase=landrise",
|
"--phase=landrise",
|
||||||
|
@ -54,14 +54,14 @@ public class DomainApplicationInfoCommandTest
|
||||||
public void testFailure_missingClientId() throws Exception {
|
public void testFailure_missingClientId() throws Exception {
|
||||||
assertThrows(
|
assertThrows(
|
||||||
ParameterException.class,
|
ParameterException.class,
|
||||||
() -> runCommandForced("--domain_name=example.tld", "--phase=sunrush", "--id=123"));
|
() -> runCommand("--domain_name=example.tld", "--phase=sunrush", "--id=123"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_missingPhase() throws Exception {
|
public void testFailure_missingPhase() throws Exception {
|
||||||
assertThrows(
|
assertThrows(
|
||||||
ParameterException.class,
|
ParameterException.class,
|
||||||
() -> runCommandForced("--client=NewRegistrar", "--domain_name=example.tld", "--id=123"));
|
() -> runCommand("--client=NewRegistrar", "--domain_name=example.tld", "--id=123"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -69,7 +69,7 @@ public class DomainApplicationInfoCommandTest
|
||||||
assertThrows(
|
assertThrows(
|
||||||
ParameterException.class,
|
ParameterException.class,
|
||||||
() ->
|
() ->
|
||||||
runCommandForced(
|
runCommand(
|
||||||
"--client=NewRegistrar", "--domain_name=example.tld", "--phase=landrush"));
|
"--client=NewRegistrar", "--domain_name=example.tld", "--phase=landrush"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ public class DomainApplicationInfoCommandTest
|
||||||
assertThrows(
|
assertThrows(
|
||||||
ParameterException.class,
|
ParameterException.class,
|
||||||
() ->
|
() ->
|
||||||
runCommandForced(
|
runCommand(
|
||||||
"--client=NewRegistrar",
|
"--client=NewRegistrar",
|
||||||
"--domain_name=example.tld",
|
"--domain_name=example.tld",
|
||||||
"--phase=landrush",
|
"--phase=landrush",
|
||||||
|
@ -91,7 +91,7 @@ public class DomainApplicationInfoCommandTest
|
||||||
assertThrows(
|
assertThrows(
|
||||||
ParameterException.class,
|
ParameterException.class,
|
||||||
() ->
|
() ->
|
||||||
runCommandForced(
|
runCommand(
|
||||||
"--client=NewRegistrar",
|
"--client=NewRegistrar",
|
||||||
"--domain_name=example.tld",
|
"--domain_name=example.tld",
|
||||||
"--phase=landrush",
|
"--phase=landrush",
|
||||||
|
|
|
@ -24,55 +24,57 @@ public class DomainCheckClaimsCommandTest extends EppToolCommandTestCase<DomainC
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess() throws Exception {
|
public void testSuccess() throws Exception {
|
||||||
runCommandForced("--client=NewRegistrar", "example.tld");
|
runCommand("--client=NewRegistrar", "example.tld");
|
||||||
eppVerifier.verifySent("domain_check_claims.xml");
|
eppVerifier.expectDryRun().verifySent("domain_check_claims.xml");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_multipleTlds() throws Exception {
|
public void testSuccess_multipleTlds() throws Exception {
|
||||||
runCommandForced("--client=NewRegistrar", "example.tld", "example.tld2");
|
runCommand("--client=NewRegistrar", "example.tld", "example.tld2");
|
||||||
eppVerifier
|
eppVerifier
|
||||||
|
.expectDryRun()
|
||||||
.verifySent("domain_check_claims.xml")
|
.verifySent("domain_check_claims.xml")
|
||||||
.verifySent("domain_check_claims_second_tld.xml");
|
.verifySent("domain_check_claims_second_tld.xml");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_multipleDomains() throws Exception {
|
public void testSuccess_multipleDomains() throws Exception {
|
||||||
runCommandForced(
|
runCommand(
|
||||||
"--client=NewRegistrar",
|
"--client=NewRegistrar",
|
||||||
"example.tld",
|
"example.tld",
|
||||||
"example2.tld",
|
"example2.tld",
|
||||||
"example3.tld");
|
"example3.tld");
|
||||||
eppVerifier.verifySent("domain_check_claims_multiple.xml");
|
eppVerifier.expectDryRun().verifySent("domain_check_claims_multiple.xml");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_multipleDomainsAndTlds() throws Exception {
|
public void testSuccess_multipleDomainsAndTlds() throws Exception {
|
||||||
runCommandForced(
|
runCommand(
|
||||||
"--client=NewRegistrar",
|
"--client=NewRegistrar",
|
||||||
"example.tld",
|
"example.tld",
|
||||||
"example2.tld",
|
"example2.tld",
|
||||||
"example3.tld",
|
"example3.tld",
|
||||||
"example.tld2");
|
"example.tld2");
|
||||||
eppVerifier
|
eppVerifier
|
||||||
|
.expectDryRun()
|
||||||
.verifySent("domain_check_claims_multiple.xml")
|
.verifySent("domain_check_claims_multiple.xml")
|
||||||
.verifySent("domain_check_claims_second_tld.xml");
|
.verifySent("domain_check_claims_second_tld.xml");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_missingClientId() throws Exception {
|
public void testFailure_missingClientId() throws Exception {
|
||||||
assertThrows(ParameterException.class, () -> runCommandForced("example.tld"));
|
assertThrows(ParameterException.class, () -> runCommand("example.tld"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_NoMainParameter() throws Exception {
|
public void testFailure_NoMainParameter() throws Exception {
|
||||||
assertThrows(ParameterException.class, () -> runCommandForced("--client=NewRegistrar"));
|
assertThrows(ParameterException.class, () -> runCommand("--client=NewRegistrar"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_unknownFlag() throws Exception {
|
public void testFailure_unknownFlag() throws Exception {
|
||||||
assertThrows(
|
assertThrows(
|
||||||
ParameterException.class,
|
ParameterException.class,
|
||||||
() -> runCommandForced("--client=NewRegistrar", "--unrecognized=foo", "example.tld"));
|
() -> runCommand("--client=NewRegistrar", "--unrecognized=foo", "example.tld"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,55 +24,57 @@ public class DomainCheckCommandTest extends EppToolCommandTestCase<DomainCheckCo
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess() throws Exception {
|
public void testSuccess() throws Exception {
|
||||||
runCommandForced("--client=NewRegistrar", "example.tld");
|
runCommand("--client=NewRegistrar", "example.tld");
|
||||||
eppVerifier.verifySent("domain_check.xml");
|
eppVerifier.expectDryRun().verifySent("domain_check.xml");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_multipleTlds() throws Exception {
|
public void testSuccess_multipleTlds() throws Exception {
|
||||||
runCommandForced("--client=NewRegistrar", "example.tld", "example.tld2");
|
runCommand("--client=NewRegistrar", "example.tld", "example.tld2");
|
||||||
eppVerifier
|
eppVerifier
|
||||||
|
.expectDryRun()
|
||||||
.verifySent("domain_check.xml")
|
.verifySent("domain_check.xml")
|
||||||
.verifySent("domain_check_second_tld.xml");
|
.verifySent("domain_check_second_tld.xml");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_multipleDomains() throws Exception {
|
public void testSuccess_multipleDomains() throws Exception {
|
||||||
runCommandForced(
|
runCommand(
|
||||||
"--client=NewRegistrar",
|
"--client=NewRegistrar",
|
||||||
"example.tld",
|
"example.tld",
|
||||||
"example2.tld",
|
"example2.tld",
|
||||||
"example3.tld");
|
"example3.tld");
|
||||||
eppVerifier.verifySent("domain_check_multiple.xml");
|
eppVerifier.expectDryRun().verifySent("domain_check_multiple.xml");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_multipleDomainsAndTlds() throws Exception {
|
public void testSuccess_multipleDomainsAndTlds() throws Exception {
|
||||||
runCommandForced(
|
runCommand(
|
||||||
"--client=NewRegistrar",
|
"--client=NewRegistrar",
|
||||||
"example.tld",
|
"example.tld",
|
||||||
"example2.tld",
|
"example2.tld",
|
||||||
"example3.tld",
|
"example3.tld",
|
||||||
"example.tld2");
|
"example.tld2");
|
||||||
eppVerifier
|
eppVerifier
|
||||||
|
.expectDryRun()
|
||||||
.verifySent("domain_check_multiple.xml")
|
.verifySent("domain_check_multiple.xml")
|
||||||
.verifySent("domain_check_second_tld.xml");
|
.verifySent("domain_check_second_tld.xml");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_missingClientId() throws Exception {
|
public void testFailure_missingClientId() throws Exception {
|
||||||
assertThrows(ParameterException.class, () -> runCommandForced("example.tld"));
|
assertThrows(ParameterException.class, () -> runCommand("example.tld"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_NoMainParameter() throws Exception {
|
public void testFailure_NoMainParameter() throws Exception {
|
||||||
assertThrows(ParameterException.class, () -> runCommandForced("--client=NewRegistrar"));
|
assertThrows(ParameterException.class, () -> runCommand("--client=NewRegistrar"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_unknownFlag() throws Exception {
|
public void testFailure_unknownFlag() throws Exception {
|
||||||
assertThrows(
|
assertThrows(
|
||||||
ParameterException.class,
|
ParameterException.class,
|
||||||
() -> runCommandForced("--client=NewRegistrar", "--unrecognized=foo", "example.tld"));
|
() -> runCommand("--client=NewRegistrar", "--unrecognized=foo", "example.tld"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,55 +24,57 @@ public class DomainCheckFeeCommandTest extends EppToolCommandTestCase<DomainChec
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess() throws Exception {
|
public void testSuccess() throws Exception {
|
||||||
runCommandForced("--client=NewRegistrar", "example.tld");
|
runCommand("--client=NewRegistrar", "example.tld");
|
||||||
eppVerifier.verifySent("domain_check_fee.xml");
|
eppVerifier.expectDryRun().verifySent("domain_check_fee.xml");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_multipleTlds() throws Exception {
|
public void testSuccess_multipleTlds() throws Exception {
|
||||||
runCommandForced("--client=NewRegistrar", "example.tld", "example.tld2");
|
runCommand("--client=NewRegistrar", "example.tld", "example.tld2");
|
||||||
eppVerifier
|
eppVerifier
|
||||||
|
.expectDryRun()
|
||||||
.verifySent("domain_check_fee.xml")
|
.verifySent("domain_check_fee.xml")
|
||||||
.verifySent("domain_check_fee_second_tld.xml");
|
.verifySent("domain_check_fee_second_tld.xml");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_multipleDomains() throws Exception {
|
public void testSuccess_multipleDomains() throws Exception {
|
||||||
runCommandForced(
|
runCommand(
|
||||||
"--client=NewRegistrar",
|
"--client=NewRegistrar",
|
||||||
"example.tld",
|
"example.tld",
|
||||||
"example2.tld",
|
"example2.tld",
|
||||||
"example3.tld");
|
"example3.tld");
|
||||||
eppVerifier.verifySent("domain_check_fee_multiple.xml");
|
eppVerifier.expectDryRun().verifySent("domain_check_fee_multiple.xml");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_multipleDomainsAndTlds() throws Exception {
|
public void testSuccess_multipleDomainsAndTlds() throws Exception {
|
||||||
runCommandForced(
|
runCommand(
|
||||||
"--client=NewRegistrar",
|
"--client=NewRegistrar",
|
||||||
"example.tld",
|
"example.tld",
|
||||||
"example2.tld",
|
"example2.tld",
|
||||||
"example3.tld",
|
"example3.tld",
|
||||||
"example.tld2");
|
"example.tld2");
|
||||||
eppVerifier
|
eppVerifier
|
||||||
|
.expectDryRun()
|
||||||
.verifySent("domain_check_fee_multiple.xml")
|
.verifySent("domain_check_fee_multiple.xml")
|
||||||
.verifySent("domain_check_fee_second_tld.xml");
|
.verifySent("domain_check_fee_second_tld.xml");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_missingClientId() throws Exception {
|
public void testFailure_missingClientId() throws Exception {
|
||||||
assertThrows(ParameterException.class, () -> runCommandForced("example.tld"));
|
assertThrows(ParameterException.class, () -> runCommand("example.tld"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_NoMainParameter() throws Exception {
|
public void testFailure_NoMainParameter() throws Exception {
|
||||||
assertThrows(ParameterException.class, () -> runCommandForced("--client=NewRegistrar"));
|
assertThrows(ParameterException.class, () -> runCommand("--client=NewRegistrar"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_unknownFlag() throws Exception {
|
public void testFailure_unknownFlag() throws Exception {
|
||||||
assertThrows(
|
assertThrows(
|
||||||
ParameterException.class,
|
ParameterException.class,
|
||||||
() -> runCommandForced("--client=NewRegistrar", "--unrecognized=foo", "example.tld"));
|
() -> runCommand("--client=NewRegistrar", "--unrecognized=foo", "example.tld"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,7 @@ public class EppToolCommandTest extends EppToolCommandTestCase<EppToolCommand> {
|
||||||
List<String> xmlPayloads;
|
List<String> xmlPayloads;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
void initEppToolCommand() throws Exception {
|
void initEppToolCommand() {
|
||||||
for (String xmlData : xmlPayloads) {
|
for (String xmlData : xmlPayloads) {
|
||||||
addXmlCommand(clientId, xmlData);
|
addXmlCommand(clientId, xmlData);
|
||||||
}
|
}
|
||||||
|
@ -73,7 +73,7 @@ public class EppToolCommandTest extends EppToolCommandTestCase<EppToolCommand> {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFailure_nonexistentClientId() throws Exception {
|
public void testFailure_nonexistentClientId() {
|
||||||
IllegalArgumentException thrown =
|
IllegalArgumentException thrown =
|
||||||
assertThrows(
|
assertThrows(
|
||||||
IllegalArgumentException.class,
|
IllegalArgumentException.class,
|
||||||
|
|
|
@ -0,0 +1,75 @@
|
||||||
|
// Copyright 2018 The Nomulus 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.tools;
|
||||||
|
|
||||||
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
import static google.registry.testing.JUnitBackports.assertThrows;
|
||||||
|
|
||||||
|
import com.beust.jcommander.Parameter;
|
||||||
|
import com.beust.jcommander.Parameters;
|
||||||
|
import google.registry.tools.server.ToolsTestData;
|
||||||
|
import java.util.List;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
/** Unit tests for {@link MutatingEppToolCommand}. */
|
||||||
|
public class MutatingEppToolCommandTest extends EppToolCommandTestCase<MutatingEppToolCommand> {
|
||||||
|
|
||||||
|
/** Dummy implementation of MutatingEppToolCommand. */
|
||||||
|
@Parameters(separators = " =", commandDescription = "Dummy MutatingEppToolCommand")
|
||||||
|
static class TestMutatingEppToolCommand extends MutatingEppToolCommand {
|
||||||
|
|
||||||
|
@Parameter(names = {"--client"})
|
||||||
|
String clientId;
|
||||||
|
|
||||||
|
@Parameter
|
||||||
|
List<String> xmlPayloads;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void initMutatingEppToolCommand() {
|
||||||
|
for (String xmlData : xmlPayloads) {
|
||||||
|
addXmlCommand(clientId, xmlData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected MutatingEppToolCommand newCommandInstance() {
|
||||||
|
return new TestMutatingEppToolCommand();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSuccess_dryrun() throws Exception {
|
||||||
|
// The choice of xml file is arbitrary.
|
||||||
|
runCommand(
|
||||||
|
"--client=NewRegistrar",
|
||||||
|
"--dry_run",
|
||||||
|
ToolsTestData.loadFile("contact_create.xml"));
|
||||||
|
eppVerifier.expectDryRun().verifySent("contact_create.xml");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_cantUseForceWithDryRun() {
|
||||||
|
Exception e =
|
||||||
|
assertThrows(
|
||||||
|
IllegalArgumentException.class,
|
||||||
|
() ->
|
||||||
|
runCommand(
|
||||||
|
"--force",
|
||||||
|
"--dry_run",
|
||||||
|
"--client=NewRegistrar",
|
||||||
|
ToolsTestData.loadFile("domain_check.xml")));
|
||||||
|
assertThat(e).hasMessageThat().isEqualTo("--force and --dry_run are incompatible");
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,72 @@
|
||||||
|
// Copyright 2018 The Nomulus 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.tools;
|
||||||
|
|
||||||
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
import static google.registry.testing.JUnitBackports.assertThrows;
|
||||||
|
|
||||||
|
import com.beust.jcommander.Parameter;
|
||||||
|
import com.beust.jcommander.Parameters;
|
||||||
|
import google.registry.tools.server.ToolsTestData;
|
||||||
|
import java.util.List;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
/** Unit tests for {@link NonMutatingEppToolCommand}. */
|
||||||
|
public class NonMutatingEppToolCommandTest
|
||||||
|
extends EppToolCommandTestCase<NonMutatingEppToolCommand> {
|
||||||
|
|
||||||
|
/** Dummy implementation of NonMutatingEppToolCommand. */
|
||||||
|
@Parameters(separators = " =", commandDescription = "Dummy NonMutatingEppToolCommand")
|
||||||
|
static class TestNonMutatingEppToolCommand extends NonMutatingEppToolCommand {
|
||||||
|
|
||||||
|
@Parameter(names = {"--client"})
|
||||||
|
String clientId;
|
||||||
|
|
||||||
|
@Parameter
|
||||||
|
List<String> xmlPayloads;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
void initEppToolCommand() {
|
||||||
|
for (String xmlData : xmlPayloads) {
|
||||||
|
addXmlCommand(clientId, xmlData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected NonMutatingEppToolCommand newCommandInstance() {
|
||||||
|
return new TestNonMutatingEppToolCommand();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSuccess_doesntPrompt_whenNotForced() throws Exception {
|
||||||
|
// The choice of xml file is arbitrary.
|
||||||
|
runCommand("--client=NewRegistrar", ToolsTestData.loadFile("domain_check.xml"));
|
||||||
|
eppVerifier.expectDryRun().verifySent("domain_check.xml");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFailure_doesntAllowForce() {
|
||||||
|
Exception e =
|
||||||
|
assertThrows(
|
||||||
|
IllegalArgumentException.class,
|
||||||
|
() ->
|
||||||
|
runCommand(
|
||||||
|
"--force",
|
||||||
|
"--client=NewRegistrar",
|
||||||
|
ToolsTestData.loadFile("domain_check.xml")));
|
||||||
|
assertThat(e).hasMessageThat().contains("--force is unnecessary");
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue