mirror of
https://github.com/google/nomulus.git
synced 2025-08-03 00:12:11 +02:00
Create OT&E entities directly, instead of calling sub-commands
This is in preparation for having a web-console endpoint to create OTE. In addition - we streamline the code: - we remove support for different premium lists - we remove support for different DNS writers - we never want a "real" DnsWriter for OTE - we remove support of --eap_only, because we don't need it anymore - We use a single password for all the Registrars ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=225841694
This commit is contained in:
parent
1004ef5621
commit
9d6a7ef66a
6 changed files with 904 additions and 488 deletions
302
javatests/google/registry/model/OteAccountBuilderTest.java
Normal file
302
javatests/google/registry/model/OteAccountBuilderTest.java
Normal file
|
@ -0,0 +1,302 @@
|
|||
// 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.model;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static com.google.common.truth.Truth8.assertThat;
|
||||
import static google.registry.testing.CertificateSamples.SAMPLE_CERT;
|
||||
import static google.registry.testing.CertificateSamples.SAMPLE_CERT_HASH;
|
||||
import static google.registry.testing.DatastoreHelper.persistPremiumList;
|
||||
import static google.registry.testing.JUnitBackports.assertThrows;
|
||||
import static google.registry.util.DateTimeUtils.START_OF_TIME;
|
||||
import static org.joda.money.CurrencyUnit.USD;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import google.registry.model.registrar.Registrar;
|
||||
import google.registry.model.registrar.RegistrarContact;
|
||||
import google.registry.model.registry.Registry;
|
||||
import google.registry.model.registry.Registry.TldState;
|
||||
import google.registry.testing.AppEngineRule;
|
||||
import google.registry.testing.DatastoreHelper;
|
||||
import google.registry.util.CidrAddressBlock;
|
||||
import google.registry.util.SystemClock;
|
||||
import org.joda.money.Money;
|
||||
import org.joda.time.DateTime;
|
||||
import org.joda.time.DateTimeZone;
|
||||
import org.joda.time.Duration;
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.JUnit4;
|
||||
|
||||
@RunWith(JUnit4.class)
|
||||
public final class OteAccountBuilderTest {
|
||||
|
||||
@Rule public final AppEngineRule appEngine = AppEngineRule.builder().withDatastore().build();
|
||||
|
||||
@Test
|
||||
public void testGetRegistrarToTldMap() {
|
||||
assertThat(OteAccountBuilder.forClientId("myclientid").getClientIdToTldMap())
|
||||
.containsExactly(
|
||||
"myclientid-1", "myclientid-sunrise",
|
||||
"myclientid-2", "myclientid-landrush",
|
||||
"myclientid-3", "myclientid-ga",
|
||||
"myclientid-4", "myclientid-ga",
|
||||
"myclientid-5", "myclientid-eap");
|
||||
}
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
persistPremiumList("default_sandbox_list", "sandbox,USD 1000");
|
||||
}
|
||||
|
||||
private void assertTldExists(String tld, Registry.TldState tldState) {
|
||||
Registry registry = Registry.get(tld);
|
||||
assertThat(registry).isNotNull();
|
||||
assertThat(registry.getPremiumList().getName()).isEqualTo("default_sandbox_list");
|
||||
assertThat(registry.getTldStateTransitions()).containsExactly(START_OF_TIME, tldState);
|
||||
assertThat(registry.getDnsWriters()).containsExactly("VoidDnsWriter");
|
||||
assertThat(registry.getAddGracePeriodLength()).isEqualTo(Duration.standardDays(5));
|
||||
assertThat(registry.getPendingDeleteLength()).isEqualTo(Duration.standardDays(5));
|
||||
assertThat(registry.getRedemptionGracePeriodLength()).isEqualTo(Duration.standardDays(30));
|
||||
assertThat(registry.getEapFeeScheduleAsMap()).containsExactly(START_OF_TIME, Money.of(USD, 0));
|
||||
}
|
||||
|
||||
private void assertTldExistsGa(String tld, Money eapFee) {
|
||||
Registry registry = Registry.get(tld);
|
||||
assertThat(registry).isNotNull();
|
||||
assertThat(registry.getPremiumList().getName()).isEqualTo("default_sandbox_list");
|
||||
assertThat(registry.getTldStateTransitions())
|
||||
.containsExactly(START_OF_TIME, TldState.GENERAL_AVAILABILITY);
|
||||
assertThat(registry.getDnsWriters()).containsExactly("VoidDnsWriter");
|
||||
assertThat(registry.getAddGracePeriodLength()).isEqualTo(Duration.standardHours(1));
|
||||
assertThat(registry.getPendingDeleteLength()).isEqualTo(Duration.standardMinutes(5));
|
||||
assertThat(registry.getRedemptionGracePeriodLength()).isEqualTo(Duration.standardMinutes(10));
|
||||
assertThat(registry.getCurrency()).isEqualTo(eapFee.getCurrencyUnit());
|
||||
// This uses "now" on purpose - so the test will break at 2022 when the current EapFee in OTE
|
||||
// goes back to 0
|
||||
assertThat(registry.getEapFeeFor(DateTime.now(DateTimeZone.UTC)).getCost())
|
||||
.isEqualTo(eapFee.getAmount());
|
||||
}
|
||||
|
||||
private void assertRegistrarExists(String clientId, String tld) {
|
||||
Registrar registrar = Registrar.loadByClientId(clientId).orElse(null);
|
||||
assertThat(registrar).isNotNull();
|
||||
assertThat(registrar.getType()).isEqualTo(Registrar.Type.OTE);
|
||||
assertThat(registrar.getState()).isEqualTo(Registrar.State.ACTIVE);
|
||||
assertThat(registrar.getAllowedTlds()).containsExactly(tld);
|
||||
}
|
||||
|
||||
private void assertContactExists(String clientId, String email) {
|
||||
Registrar registrar = Registrar.loadByClientId(clientId).get();
|
||||
assertThat(registrar.getContacts().stream().map(RegistrarContact::getEmailAddress))
|
||||
.contains(email);
|
||||
RegistrarContact contact =
|
||||
registrar.getContacts().stream()
|
||||
.filter(c -> email.equals(c.getEmailAddress()))
|
||||
.findAny()
|
||||
.get();
|
||||
assertThat(contact.getEmailAddress()).isEqualTo(email);
|
||||
assertThat(contact.getGaeUserId()).isNotEmpty();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateOteEntities_success() {
|
||||
OteAccountBuilder.forClientId("myclientid").addContact("email@example.com").buildAndPersist();
|
||||
|
||||
assertTldExists("myclientid-sunrise", TldState.START_DATE_SUNRISE);
|
||||
assertTldExists("myclientid-landrush", TldState.LANDRUSH);
|
||||
assertTldExistsGa("myclientid-ga", Money.of(USD, 0));
|
||||
assertTldExistsGa("myclientid-eap", Money.of(USD, 100));
|
||||
assertRegistrarExists("myclientid-1", "myclientid-sunrise");
|
||||
assertRegistrarExists("myclientid-2", "myclientid-landrush");
|
||||
assertRegistrarExists("myclientid-3", "myclientid-ga");
|
||||
assertRegistrarExists("myclientid-4", "myclientid-ga");
|
||||
assertRegistrarExists("myclientid-5", "myclientid-eap");
|
||||
assertContactExists("myclientid-1", "email@example.com");
|
||||
assertContactExists("myclientid-2", "email@example.com");
|
||||
assertContactExists("myclientid-3", "email@example.com");
|
||||
assertContactExists("myclientid-4", "email@example.com");
|
||||
assertContactExists("myclientid-5", "email@example.com");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateOteEntities_multipleContacts_success() {
|
||||
OteAccountBuilder.forClientId("myclientid")
|
||||
.addContact("email@example.com")
|
||||
.addContact("other@example.com")
|
||||
.addContact("someone@example.com")
|
||||
.buildAndPersist();
|
||||
|
||||
assertTldExists("myclientid-sunrise", TldState.START_DATE_SUNRISE);
|
||||
assertTldExists("myclientid-landrush", TldState.LANDRUSH);
|
||||
assertTldExistsGa("myclientid-ga", Money.of(USD, 0));
|
||||
assertTldExistsGa("myclientid-eap", Money.of(USD, 100));
|
||||
assertRegistrarExists("myclientid-1", "myclientid-sunrise");
|
||||
assertRegistrarExists("myclientid-2", "myclientid-landrush");
|
||||
assertRegistrarExists("myclientid-3", "myclientid-ga");
|
||||
assertRegistrarExists("myclientid-4", "myclientid-ga");
|
||||
assertRegistrarExists("myclientid-5", "myclientid-eap");
|
||||
assertContactExists("myclientid-1", "email@example.com");
|
||||
assertContactExists("myclientid-2", "email@example.com");
|
||||
assertContactExists("myclientid-3", "email@example.com");
|
||||
assertContactExists("myclientid-4", "email@example.com");
|
||||
assertContactExists("myclientid-5", "email@example.com");
|
||||
assertContactExists("myclientid-1", "other@example.com");
|
||||
assertContactExists("myclientid-2", "other@example.com");
|
||||
assertContactExists("myclientid-3", "other@example.com");
|
||||
assertContactExists("myclientid-4", "other@example.com");
|
||||
assertContactExists("myclientid-5", "other@example.com");
|
||||
assertContactExists("myclientid-1", "someone@example.com");
|
||||
assertContactExists("myclientid-2", "someone@example.com");
|
||||
assertContactExists("myclientid-3", "someone@example.com");
|
||||
assertContactExists("myclientid-4", "someone@example.com");
|
||||
assertContactExists("myclientid-5", "someone@example.com");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateOteEntities_setPassword() {
|
||||
OteAccountBuilder.forClientId("myclientid").setPassword("myPassword").buildAndPersist();
|
||||
|
||||
assertThat(Registrar.loadByClientId("myclientid-3").get().testPassword("myPassword")).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateOteEntities_setCertificateHash() {
|
||||
OteAccountBuilder.forClientId("myclientid")
|
||||
.setCertificateHash(SAMPLE_CERT_HASH)
|
||||
.buildAndPersist();
|
||||
|
||||
assertThat(Registrar.loadByClientId("myclientid-3").get().getClientCertificateHash())
|
||||
.isEqualTo(SAMPLE_CERT_HASH);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateOteEntities_setCertificate() {
|
||||
OteAccountBuilder.forClientId("myclientid")
|
||||
.setCertificate(SAMPLE_CERT, new SystemClock().nowUtc())
|
||||
.buildAndPersist();
|
||||
|
||||
assertThat(Registrar.loadByClientId("myclientid-3").get().getClientCertificateHash())
|
||||
.isEqualTo(SAMPLE_CERT_HASH);
|
||||
assertThat(Registrar.loadByClientId("myclientid-3").get().getClientCertificate())
|
||||
.isEqualTo(SAMPLE_CERT);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateOteEntities_setIpWhitelist() {
|
||||
OteAccountBuilder.forClientId("myclientid")
|
||||
.setIpWhitelist(ImmutableList.of("1.1.1.0/24"))
|
||||
.buildAndPersist();
|
||||
|
||||
assertThat(Registrar.loadByClientId("myclientid-3").get().getIpAddressWhitelist())
|
||||
.containsExactly(CidrAddressBlock.create("1.1.1.0/24"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateOteEntities_invalidClientId_fails() {
|
||||
assertThat(
|
||||
assertThrows(
|
||||
IllegalArgumentException.class, () -> OteAccountBuilder.forClientId("3blobio")))
|
||||
.hasMessageThat()
|
||||
.isEqualTo("Invalid registrar name: 3blobio");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateOteEntities_clientIdTooShort_fails() {
|
||||
assertThat(
|
||||
assertThrows(IllegalArgumentException.class, () -> OteAccountBuilder.forClientId("bl")))
|
||||
.hasMessageThat()
|
||||
.isEqualTo("Invalid registrar name: bl");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateOteEntities_clientIdTooLong_fails() {
|
||||
assertThat(
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> OteAccountBuilder.forClientId("blobiotoooolong")))
|
||||
.hasMessageThat()
|
||||
.isEqualTo("Invalid registrar name: blobiotoooolong");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateOteEntities_clientIdBadCharacter_fails() {
|
||||
assertThat(
|
||||
assertThrows(
|
||||
IllegalArgumentException.class, () -> OteAccountBuilder.forClientId("blo#bio")))
|
||||
.hasMessageThat()
|
||||
.isEqualTo("Invalid registrar name: blo#bio");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateOteEntities_entityExists_failsWhenNotReplaceExisting() {
|
||||
DatastoreHelper.persistSimpleResource(
|
||||
AppEngineRule.makeRegistrar1().asBuilder().setClientId("myclientid-1").build());
|
||||
OteAccountBuilder oteSetupHelper = OteAccountBuilder.forClientId("myclientid");
|
||||
|
||||
assertThat(assertThrows(IllegalStateException.class, () -> oteSetupHelper.buildAndPersist()))
|
||||
.hasMessageThat()
|
||||
.contains("Found existing object(s) conflicting with OT&E objects");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateOteEntities_entityExists_succeedsWhenReplaceExisting() {
|
||||
DatastoreHelper.persistSimpleResource(
|
||||
AppEngineRule.makeRegistrar1().asBuilder().setClientId("myclientid-1").build());
|
||||
DatastoreHelper.createTld("myclientid-landrush", Registry.TldState.SUNRUSH);
|
||||
|
||||
OteAccountBuilder.forClientId("myclientid").setReplaceExisting(true).buildAndPersist();
|
||||
|
||||
assertTldExists("myclientid-landrush", TldState.LANDRUSH);
|
||||
assertRegistrarExists("myclientid-3", "myclientid-ga");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateOteEntities_doubleCreation_actuallyReplaces() {
|
||||
OteAccountBuilder.forClientId("myclientid")
|
||||
.setPassword("oldPassword")
|
||||
.addContact("email@example.com")
|
||||
.buildAndPersist();
|
||||
|
||||
assertThat(Registrar.loadByClientId("myclientid-3").get().testPassword("oldPassword")).isTrue();
|
||||
|
||||
OteAccountBuilder.forClientId("myclientid")
|
||||
.setPassword("newPassword")
|
||||
.addContact("email@example.com")
|
||||
.setReplaceExisting(true)
|
||||
.buildAndPersist();
|
||||
|
||||
assertThat(Registrar.loadByClientId("myclientid-3").get().testPassword("oldPassword"))
|
||||
.isFalse();
|
||||
assertThat(Registrar.loadByClientId("myclientid-3").get().testPassword("newPassword")).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateOteEntities_doubleCreation_keepsOldContacts() {
|
||||
OteAccountBuilder.forClientId("myclientid").addContact("email@example.com").buildAndPersist();
|
||||
|
||||
assertContactExists("myclientid-3", "email@example.com");
|
||||
|
||||
OteAccountBuilder.forClientId("myclientid")
|
||||
.addContact("other@example.com")
|
||||
.setReplaceExisting(true)
|
||||
.buildAndPersist();
|
||||
|
||||
assertContactExists("myclientid-3", "other@example.com");
|
||||
assertContactExists("myclientid-3", "email@example.com");
|
||||
}
|
||||
}
|
|
@ -23,6 +23,7 @@ import static google.registry.testing.CertificateSamples.SAMPLE_CERT2_HASH;
|
|||
import static google.registry.testing.CertificateSamples.SAMPLE_CERT_HASH;
|
||||
import static google.registry.testing.DatastoreHelper.cloneAndSetAutoTimestamps;
|
||||
import static google.registry.testing.DatastoreHelper.createTld;
|
||||
import static google.registry.testing.DatastoreHelper.newRegistry;
|
||||
import static google.registry.testing.DatastoreHelper.persistResource;
|
||||
import static google.registry.testing.DatastoreHelper.persistSimpleResource;
|
||||
import static google.registry.testing.DatastoreHelper.persistSimpleResources;
|
||||
|
@ -33,10 +34,12 @@ import com.google.common.collect.ImmutableMap;
|
|||
import com.google.common.collect.ImmutableSet;
|
||||
import com.google.common.collect.ImmutableSortedSet;
|
||||
import com.googlecode.objectify.Key;
|
||||
import google.registry.config.RegistryConfig;
|
||||
import google.registry.model.EntityTestCase;
|
||||
import google.registry.model.common.EntityGroupRoot;
|
||||
import google.registry.model.registrar.Registrar.State;
|
||||
import google.registry.model.registrar.Registrar.Type;
|
||||
import google.registry.model.registry.Registries;
|
||||
import google.registry.util.CidrAddressBlock;
|
||||
import org.joda.money.CurrencyUnit;
|
||||
import org.junit.Before;
|
||||
|
@ -415,6 +418,77 @@ public class RegistrarTest extends EntityTestCase {
|
|||
IllegalArgumentException.class, () -> new Registrar.Builder().setPhonePasscode("code1"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSuccess_setAllowedTlds() {
|
||||
assertThat(
|
||||
registrar.asBuilder()
|
||||
.setAllowedTlds(ImmutableSet.of("xn--q9jyb4c"))
|
||||
.build()
|
||||
.getAllowedTlds())
|
||||
.containsExactly("xn--q9jyb4c");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSuccess_setAllowedTldsUncached() {
|
||||
assertThat(
|
||||
registrar.asBuilder()
|
||||
.setAllowedTldsUncached(ImmutableSet.of("xn--q9jyb4c"))
|
||||
.build()
|
||||
.getAllowedTlds())
|
||||
.containsExactly("xn--q9jyb4c");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFailure_setAllowedTlds_nonexistentTld() {
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> registrar.asBuilder().setAllowedTlds(ImmutableSet.of("bad")));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFailure_setAllowedTldsUncached_nonexistentTld() {
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> registrar.asBuilder().setAllowedTldsUncached(ImmutableSet.of("bad")));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSuccess_setAllowedTldsUncached_newTldNotInCache() {
|
||||
// Cache duration in tests is 0. To make sure the data isn't in the cache we have to set it to a
|
||||
// higher value and reset the cache.
|
||||
RegistryConfig.CONFIG_SETTINGS.get().caching.singletonCacheRefreshSeconds = 600;
|
||||
Registries.resetCache();
|
||||
// Make sure the TLD we want to create doesn't exist yet.
|
||||
// This is also important because getTlds fills out the cache when used.
|
||||
assertThat(Registries.getTlds()).doesNotContain("newtld");
|
||||
// We can't use createTld here because it failes when the cache is used.
|
||||
persistResource(newRegistry("newtld", "NEWTLD"));
|
||||
// Make sure we set up the cache correctly, so the newly created TLD isn't in the cache
|
||||
assertThat(Registries.getTlds()).doesNotContain("newtld");
|
||||
|
||||
// Test that the uncached version works
|
||||
assertThat(
|
||||
registrar.asBuilder()
|
||||
.setAllowedTldsUncached(ImmutableSet.of("newtld"))
|
||||
.build()
|
||||
.getAllowedTlds())
|
||||
.containsExactly("newtld");
|
||||
|
||||
// Test that the "regular" cached version fails. If this doesn't throw - then we changed how the
|
||||
// cached version works:
|
||||
// - either we switched to a different cache type/duration, and we haven't actually set up that
|
||||
// cache in the test
|
||||
// - or we stopped using the cache entirely and we should rethink if the Uncached version is
|
||||
// still needed
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> registrar.asBuilder().setAllowedTlds(ImmutableSet.of("newtld")));
|
||||
|
||||
// Make sure the cache hasn't expired during the test and "newtld" is still not in the cached
|
||||
// TLDs
|
||||
assertThat(Registries.getTlds()).doesNotContain("newtld");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLoadByClientIdCached_isTransactionless() {
|
||||
ofy()
|
||||
|
|
|
@ -34,6 +34,7 @@ import google.registry.model.registrar.RegistrarContact;
|
|||
import google.registry.model.registry.Registry;
|
||||
import google.registry.model.registry.Registry.TldState;
|
||||
import google.registry.testing.DeterministicStringGenerator;
|
||||
import google.registry.testing.FakeClock;
|
||||
import google.registry.util.CidrAddressBlock;
|
||||
import java.security.cert.CertificateParsingException;
|
||||
import org.joda.money.CurrencyUnit;
|
||||
|
@ -46,23 +47,16 @@ import org.junit.Test;
|
|||
/** Unit tests for {@link SetupOteCommand}. */
|
||||
public class SetupOteCommandTest extends CommandTestCase<SetupOteCommand> {
|
||||
|
||||
ImmutableList<String> passwords =
|
||||
ImmutableList.of(
|
||||
"abcdefghijklmnop",
|
||||
"qrstuvwxyzabcdef",
|
||||
"ghijklmnopqrstuv",
|
||||
"wxyzabcdefghijkl",
|
||||
"mnopqrstuvwxyzab");
|
||||
static final String PASSWORD = "abcdefghijklmnop";
|
||||
|
||||
DeterministicStringGenerator passwordGenerator =
|
||||
new DeterministicStringGenerator("abcdefghijklmnopqrstuvwxyz");
|
||||
|
||||
@Before
|
||||
public void init() {
|
||||
SetupOteCommand.interactive = false;
|
||||
command.validDnsWriterNames = ImmutableSet.of("FooDnsWriter", "BarDnsWriter", "VoidDnsWriter");
|
||||
command.passwordGenerator = passwordGenerator;
|
||||
command.clock = new FakeClock(DateTime.parse("2018-07-07TZ"));
|
||||
persistPremiumList("default_sandbox_list", "sandbox,USD 1000");
|
||||
persistPremiumList("alternate_list", "rich,USD 3000");
|
||||
}
|
||||
|
||||
/** Verify TLD creation. */
|
||||
|
@ -70,8 +64,6 @@ public class SetupOteCommandTest extends CommandTestCase<SetupOteCommand> {
|
|||
String tldName,
|
||||
String roidSuffix,
|
||||
TldState tldState,
|
||||
String dnsWriter,
|
||||
String premiumList,
|
||||
Duration addGracePeriodLength,
|
||||
Duration redemptionGracePeriodLength,
|
||||
Duration pendingDeleteLength,
|
||||
|
@ -80,9 +72,9 @@ public class SetupOteCommandTest extends CommandTestCase<SetupOteCommand> {
|
|||
assertThat(registry).isNotNull();
|
||||
assertThat(registry.getRoidSuffix()).isEqualTo(roidSuffix);
|
||||
assertThat(registry.getTldState(DateTime.now(UTC))).isEqualTo(tldState);
|
||||
assertThat(registry.getDnsWriters()).containsExactly(dnsWriter);
|
||||
assertThat(registry.getDnsWriters()).containsExactly("VoidDnsWriter");
|
||||
assertThat(registry.getPremiumList()).isNotNull();
|
||||
assertThat(registry.getPremiumList().getName()).isEqualTo(premiumList);
|
||||
assertThat(registry.getPremiumList().getName()).isEqualTo("default_sandbox_list");
|
||||
assertThat(registry.getAddGracePeriodLength()).isEqualTo(addGracePeriodLength);
|
||||
assertThat(registry.getRedemptionGracePeriodLength()).isEqualTo(redemptionGracePeriodLength);
|
||||
assertThat(registry.getPendingDeleteLength()).isEqualTo(pendingDeleteLength);
|
||||
|
@ -98,20 +90,18 @@ public class SetupOteCommandTest extends CommandTestCase<SetupOteCommand> {
|
|||
Money.of(CurrencyUnit.USD, 0),
|
||||
DateTime.parse("2018-03-01T00:00:00Z"),
|
||||
Money.of(CurrencyUnit.USD, 100),
|
||||
DateTime.parse("2022-03-01T00:00:00Z"),
|
||||
DateTime.parse("2030-03-01T00:00:00Z"),
|
||||
Money.of(CurrencyUnit.USD, 0)));
|
||||
}
|
||||
}
|
||||
|
||||
/** Verify TLD creation with registry default durations. */
|
||||
private void verifyTldCreation(
|
||||
String tldName, String roidSuffix, TldState tldState, String dnsWriter, String premiumList) {
|
||||
String tldName, String roidSuffix, TldState tldState) {
|
||||
verifyTldCreation(
|
||||
tldName,
|
||||
roidSuffix,
|
||||
tldState,
|
||||
dnsWriter,
|
||||
premiumList,
|
||||
Registry.DEFAULT_ADD_GRACE_PERIOD,
|
||||
Registry.DEFAULT_REDEMPTION_GRACE_PERIOD,
|
||||
Registry.DEFAULT_PENDING_DELETE_LENGTH,
|
||||
|
@ -162,23 +152,14 @@ public class SetupOteCommandTest extends CommandTestCase<SetupOteCommand> {
|
|||
"--ip_whitelist=1.1.1.1",
|
||||
"--registrar=blobio",
|
||||
"--email=contact@email.com",
|
||||
"--dns_writers=VoidDnsWriter",
|
||||
"--certfile=" + getCertFilename());
|
||||
|
||||
verifyTldCreation(
|
||||
"blobio-sunrise",
|
||||
"BLOBIOS0",
|
||||
TldState.START_DATE_SUNRISE,
|
||||
"VoidDnsWriter",
|
||||
"default_sandbox_list");
|
||||
verifyTldCreation(
|
||||
"blobio-landrush", "BLOBIOL1", TldState.LANDRUSH, "VoidDnsWriter", "default_sandbox_list");
|
||||
verifyTldCreation("blobio-sunrise", "BLOBIOS0", TldState.START_DATE_SUNRISE);
|
||||
verifyTldCreation("blobio-landrush", "BLOBIOL1", TldState.LANDRUSH);
|
||||
verifyTldCreation(
|
||||
"blobio-ga",
|
||||
"BLOBIOG2",
|
||||
TldState.GENERAL_AVAILABILITY,
|
||||
"VoidDnsWriter",
|
||||
"default_sandbox_list",
|
||||
Duration.standardMinutes(60),
|
||||
Duration.standardMinutes(10),
|
||||
Duration.standardMinutes(5),
|
||||
|
@ -187,8 +168,6 @@ public class SetupOteCommandTest extends CommandTestCase<SetupOteCommand> {
|
|||
"blobio-eap",
|
||||
"BLOBIOE3",
|
||||
TldState.GENERAL_AVAILABILITY,
|
||||
"VoidDnsWriter",
|
||||
"default_sandbox_list",
|
||||
Duration.standardMinutes(60),
|
||||
Duration.standardMinutes(10),
|
||||
Duration.standardMinutes(5),
|
||||
|
@ -197,11 +176,11 @@ public class SetupOteCommandTest extends CommandTestCase<SetupOteCommand> {
|
|||
ImmutableList<CidrAddressBlock> ipAddress = ImmutableList.of(
|
||||
CidrAddressBlock.create("1.1.1.1"));
|
||||
|
||||
verifyRegistrarCreation("blobio-1", "blobio-sunrise", passwords.get(0), ipAddress);
|
||||
verifyRegistrarCreation("blobio-2", "blobio-landrush", passwords.get(1), ipAddress);
|
||||
verifyRegistrarCreation("blobio-3", "blobio-ga", passwords.get(2), ipAddress);
|
||||
verifyRegistrarCreation("blobio-4", "blobio-ga", passwords.get(3), ipAddress);
|
||||
verifyRegistrarCreation("blobio-5", "blobio-eap", passwords.get(4), ipAddress);
|
||||
verifyRegistrarCreation("blobio-1", "blobio-sunrise", PASSWORD, ipAddress);
|
||||
verifyRegistrarCreation("blobio-2", "blobio-landrush", PASSWORD, ipAddress);
|
||||
verifyRegistrarCreation("blobio-3", "blobio-ga", PASSWORD, ipAddress);
|
||||
verifyRegistrarCreation("blobio-4", "blobio-ga", PASSWORD, ipAddress);
|
||||
verifyRegistrarCreation("blobio-5", "blobio-eap", PASSWORD, ipAddress);
|
||||
|
||||
verifyRegistrarContactCreation("blobio-1", "contact@email.com");
|
||||
verifyRegistrarContactCreation("blobio-2", "contact@email.com");
|
||||
|
@ -216,23 +195,14 @@ public class SetupOteCommandTest extends CommandTestCase<SetupOteCommand> {
|
|||
"--ip_whitelist=1.1.1.1",
|
||||
"--registrar=abc",
|
||||
"--email=abc@email.com",
|
||||
"--dns_writers=VoidDnsWriter",
|
||||
"--certfile=" + getCertFilename());
|
||||
|
||||
verifyTldCreation(
|
||||
"abc-sunrise",
|
||||
"ABCSUNR0",
|
||||
TldState.START_DATE_SUNRISE,
|
||||
"VoidDnsWriter",
|
||||
"default_sandbox_list");
|
||||
verifyTldCreation(
|
||||
"abc-landrush", "ABCLAND1", TldState.LANDRUSH, "VoidDnsWriter", "default_sandbox_list");
|
||||
verifyTldCreation("abc-sunrise", "ABCSUNR0", TldState.START_DATE_SUNRISE);
|
||||
verifyTldCreation("abc-landrush", "ABCLAND1", TldState.LANDRUSH);
|
||||
verifyTldCreation(
|
||||
"abc-ga",
|
||||
"ABCGA2",
|
||||
TldState.GENERAL_AVAILABILITY,
|
||||
"VoidDnsWriter",
|
||||
"default_sandbox_list",
|
||||
Duration.standardMinutes(60),
|
||||
Duration.standardMinutes(10),
|
||||
Duration.standardMinutes(5),
|
||||
|
@ -241,8 +211,6 @@ public class SetupOteCommandTest extends CommandTestCase<SetupOteCommand> {
|
|||
"abc-eap",
|
||||
"ABCEAP3",
|
||||
TldState.GENERAL_AVAILABILITY,
|
||||
"VoidDnsWriter",
|
||||
"default_sandbox_list",
|
||||
Duration.standardMinutes(60),
|
||||
Duration.standardMinutes(10),
|
||||
Duration.standardMinutes(5),
|
||||
|
@ -251,11 +219,11 @@ public class SetupOteCommandTest extends CommandTestCase<SetupOteCommand> {
|
|||
ImmutableList<CidrAddressBlock> ipAddress =
|
||||
ImmutableList.of(CidrAddressBlock.create("1.1.1.1"));
|
||||
|
||||
verifyRegistrarCreation("abc-1", "abc-sunrise", passwords.get(0), ipAddress);
|
||||
verifyRegistrarCreation("abc-2", "abc-landrush", passwords.get(1), ipAddress);
|
||||
verifyRegistrarCreation("abc-3", "abc-ga", passwords.get(2), ipAddress);
|
||||
verifyRegistrarCreation("abc-4", "abc-ga", passwords.get(3), ipAddress);
|
||||
verifyRegistrarCreation("abc-5", "abc-eap", passwords.get(4), ipAddress);
|
||||
verifyRegistrarCreation("abc-1", "abc-sunrise", PASSWORD, ipAddress);
|
||||
verifyRegistrarCreation("abc-2", "abc-landrush", PASSWORD, ipAddress);
|
||||
verifyRegistrarCreation("abc-3", "abc-ga", PASSWORD, ipAddress);
|
||||
verifyRegistrarCreation("abc-4", "abc-ga", PASSWORD, ipAddress);
|
||||
verifyRegistrarCreation("abc-5", "abc-eap", PASSWORD, ipAddress);
|
||||
|
||||
verifyRegistrarContactCreation("abc-1", "abc@email.com");
|
||||
verifyRegistrarContactCreation("abc-2", "abc@email.com");
|
||||
|
@ -267,19 +235,15 @@ public class SetupOteCommandTest extends CommandTestCase<SetupOteCommand> {
|
|||
@Test
|
||||
public void testSuccess_certificateHash() throws Exception {
|
||||
runCommandForced(
|
||||
"--eap_only",
|
||||
"--ip_whitelist=1.1.1.1",
|
||||
"--registrar=blobio",
|
||||
"--email=contact@email.com",
|
||||
"--dns_writers=VoidDnsWriter",
|
||||
"--certhash=" + SAMPLE_CERT_HASH);
|
||||
|
||||
verifyTldCreation(
|
||||
"blobio-eap",
|
||||
"BLOBIOE3",
|
||||
TldState.GENERAL_AVAILABILITY,
|
||||
"VoidDnsWriter",
|
||||
"default_sandbox_list",
|
||||
Duration.standardMinutes(60),
|
||||
Duration.standardMinutes(10),
|
||||
Duration.standardMinutes(5),
|
||||
|
@ -288,36 +252,7 @@ public class SetupOteCommandTest extends CommandTestCase<SetupOteCommand> {
|
|||
ImmutableList<CidrAddressBlock> ipAddress =
|
||||
ImmutableList.of(CidrAddressBlock.create("1.1.1.1"));
|
||||
|
||||
verifyRegistrarCreation("blobio-5", "blobio-eap", passwords.get(0), ipAddress, true);
|
||||
|
||||
verifyRegistrarContactCreation("blobio-5", "contact@email.com");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSuccess_eapOnly() throws Exception {
|
||||
runCommandForced(
|
||||
"--eap_only",
|
||||
"--ip_whitelist=1.1.1.1",
|
||||
"--registrar=blobio",
|
||||
"--email=contact@email.com",
|
||||
"--dns_writers=VoidDnsWriter",
|
||||
"--certfile=" + getCertFilename());
|
||||
|
||||
verifyTldCreation(
|
||||
"blobio-eap",
|
||||
"BLOBIOE3",
|
||||
TldState.GENERAL_AVAILABILITY,
|
||||
"VoidDnsWriter",
|
||||
"default_sandbox_list",
|
||||
Duration.standardMinutes(60),
|
||||
Duration.standardMinutes(10),
|
||||
Duration.standardMinutes(5),
|
||||
true);
|
||||
|
||||
ImmutableList<CidrAddressBlock> ipAddress = ImmutableList.of(
|
||||
CidrAddressBlock.create("1.1.1.1"));
|
||||
|
||||
verifyRegistrarCreation("blobio-5", "blobio-eap", passwords.get(0), ipAddress);
|
||||
verifyRegistrarCreation("blobio-5", "blobio-eap", PASSWORD, ipAddress, true);
|
||||
|
||||
verifyRegistrarContactCreation("blobio-5", "contact@email.com");
|
||||
}
|
||||
|
@ -328,23 +263,14 @@ public class SetupOteCommandTest extends CommandTestCase<SetupOteCommand> {
|
|||
"--ip_whitelist=1.1.1.1,2.2.2.2",
|
||||
"--registrar=blobio",
|
||||
"--email=contact@email.com",
|
||||
"--dns_writers=FooDnsWriter",
|
||||
"--certfile=" + getCertFilename());
|
||||
|
||||
verifyTldCreation(
|
||||
"blobio-sunrise",
|
||||
"BLOBIOS0",
|
||||
TldState.START_DATE_SUNRISE,
|
||||
"FooDnsWriter",
|
||||
"default_sandbox_list");
|
||||
verifyTldCreation(
|
||||
"blobio-landrush", "BLOBIOL1", TldState.LANDRUSH, "FooDnsWriter", "default_sandbox_list");
|
||||
verifyTldCreation("blobio-sunrise", "BLOBIOS0", TldState.START_DATE_SUNRISE);
|
||||
verifyTldCreation("blobio-landrush", "BLOBIOL1", TldState.LANDRUSH);
|
||||
verifyTldCreation(
|
||||
"blobio-ga",
|
||||
"BLOBIOG2",
|
||||
TldState.GENERAL_AVAILABILITY,
|
||||
"FooDnsWriter",
|
||||
"default_sandbox_list",
|
||||
Duration.standardMinutes(60),
|
||||
Duration.standardMinutes(10),
|
||||
Duration.standardMinutes(5),
|
||||
|
@ -353,8 +279,6 @@ public class SetupOteCommandTest extends CommandTestCase<SetupOteCommand> {
|
|||
"blobio-eap",
|
||||
"BLOBIOE3",
|
||||
TldState.GENERAL_AVAILABILITY,
|
||||
"FooDnsWriter",
|
||||
"default_sandbox_list",
|
||||
Duration.standardMinutes(60),
|
||||
Duration.standardMinutes(10),
|
||||
Duration.standardMinutes(5),
|
||||
|
@ -364,66 +288,11 @@ public class SetupOteCommandTest extends CommandTestCase<SetupOteCommand> {
|
|||
CidrAddressBlock.create("1.1.1.1"),
|
||||
CidrAddressBlock.create("2.2.2.2"));
|
||||
|
||||
verifyRegistrarCreation("blobio-1", "blobio-sunrise", passwords.get(0), ipAddresses);
|
||||
verifyRegistrarCreation("blobio-2", "blobio-landrush", passwords.get(1), ipAddresses);
|
||||
verifyRegistrarCreation("blobio-3", "blobio-ga", passwords.get(2), ipAddresses);
|
||||
verifyRegistrarCreation("blobio-4", "blobio-ga", passwords.get(3), ipAddresses);
|
||||
verifyRegistrarCreation("blobio-5", "blobio-eap", passwords.get(4), ipAddresses);
|
||||
|
||||
verifyRegistrarContactCreation("blobio-1", "contact@email.com");
|
||||
verifyRegistrarContactCreation("blobio-2", "contact@email.com");
|
||||
verifyRegistrarContactCreation("blobio-3", "contact@email.com");
|
||||
verifyRegistrarContactCreation("blobio-4", "contact@email.com");
|
||||
verifyRegistrarContactCreation("blobio-5", "contact@email.com");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSuccess_alternatePremiumList() throws Exception {
|
||||
runCommandForced(
|
||||
"--ip_whitelist=1.1.1.1",
|
||||
"--registrar=blobio",
|
||||
"--email=contact@email.com",
|
||||
"--certfile=" + getCertFilename(),
|
||||
"--dns_writers=BarDnsWriter",
|
||||
"--premium_list=alternate_list");
|
||||
|
||||
verifyTldCreation(
|
||||
"blobio-sunrise",
|
||||
"BLOBIOS0",
|
||||
TldState.START_DATE_SUNRISE,
|
||||
"BarDnsWriter",
|
||||
"alternate_list");
|
||||
verifyTldCreation(
|
||||
"blobio-landrush", "BLOBIOL1", TldState.LANDRUSH, "BarDnsWriter", "alternate_list");
|
||||
verifyTldCreation(
|
||||
"blobio-ga",
|
||||
"BLOBIOG2",
|
||||
TldState.GENERAL_AVAILABILITY,
|
||||
"BarDnsWriter",
|
||||
"alternate_list",
|
||||
Duration.standardMinutes(60),
|
||||
Duration.standardMinutes(10),
|
||||
Duration.standardMinutes(5),
|
||||
false);
|
||||
verifyTldCreation(
|
||||
"blobio-eap",
|
||||
"BLOBIOE3",
|
||||
TldState.GENERAL_AVAILABILITY,
|
||||
"BarDnsWriter",
|
||||
"alternate_list",
|
||||
Duration.standardMinutes(60),
|
||||
Duration.standardMinutes(10),
|
||||
Duration.standardMinutes(5),
|
||||
true);
|
||||
|
||||
ImmutableList<CidrAddressBlock> ipAddress = ImmutableList.of(
|
||||
CidrAddressBlock.create("1.1.1.1"));
|
||||
|
||||
verifyRegistrarCreation("blobio-1", "blobio-sunrise", passwords.get(0), ipAddress);
|
||||
verifyRegistrarCreation("blobio-2", "blobio-landrush", passwords.get(1), ipAddress);
|
||||
verifyRegistrarCreation("blobio-3", "blobio-ga", passwords.get(2), ipAddress);
|
||||
verifyRegistrarCreation("blobio-4", "blobio-ga", passwords.get(3), ipAddress);
|
||||
verifyRegistrarCreation("blobio-5", "blobio-eap", passwords.get(4), ipAddress);
|
||||
verifyRegistrarCreation("blobio-1", "blobio-sunrise", PASSWORD, ipAddresses);
|
||||
verifyRegistrarCreation("blobio-2", "blobio-landrush", PASSWORD, ipAddresses);
|
||||
verifyRegistrarCreation("blobio-3", "blobio-ga", PASSWORD, ipAddresses);
|
||||
verifyRegistrarCreation("blobio-4", "blobio-ga", PASSWORD, ipAddresses);
|
||||
verifyRegistrarCreation("blobio-5", "blobio-eap", PASSWORD, ipAddresses);
|
||||
|
||||
verifyRegistrarContactCreation("blobio-1", "contact@email.com");
|
||||
verifyRegistrarContactCreation("blobio-2", "contact@email.com");
|
||||
|
@ -441,7 +310,6 @@ public class SetupOteCommandTest extends CommandTestCase<SetupOteCommand> {
|
|||
runCommandForced(
|
||||
"--registrar=blobio",
|
||||
"--email=contact@email.com",
|
||||
"--dns_writers=VoidDnsWriter",
|
||||
"--certfile=" + getCertFilename()));
|
||||
assertThat(thrown).hasMessageThat().contains("option is required: -w, --ip_whitelist");
|
||||
}
|
||||
|
@ -455,7 +323,6 @@ public class SetupOteCommandTest extends CommandTestCase<SetupOteCommand> {
|
|||
runCommandForced(
|
||||
"--ip_whitelist=1.1.1.1",
|
||||
"--email=contact@email.com",
|
||||
"--dns_writers=VoidDnsWriter",
|
||||
"--certfile=" + getCertFilename()));
|
||||
assertThat(thrown).hasMessageThat().contains("option is required: -r, --registrar");
|
||||
}
|
||||
|
@ -469,7 +336,6 @@ public class SetupOteCommandTest extends CommandTestCase<SetupOteCommand> {
|
|||
runCommandForced(
|
||||
"--ip_whitelist=1.1.1.1",
|
||||
"--email=contact@email.com",
|
||||
"--dns_writers=VoidDnsWriter",
|
||||
"--registrar=blobio"));
|
||||
assertThat(thrown)
|
||||
.hasMessageThat()
|
||||
|
@ -486,7 +352,6 @@ public class SetupOteCommandTest extends CommandTestCase<SetupOteCommand> {
|
|||
runCommandForced(
|
||||
"--ip_whitelist=1.1.1.1",
|
||||
"--email=contact@email.com",
|
||||
"--dns_writers=VoidDnsWriter",
|
||||
"--registrar=blobio",
|
||||
"--certfile=" + getCertFilename(),
|
||||
"--certhash=" + SAMPLE_CERT_HASH));
|
||||
|
@ -496,20 +361,6 @@ public class SetupOteCommandTest extends CommandTestCase<SetupOteCommand> {
|
|||
"Must specify exactly one of client certificate file or client certificate hash.");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFailure_missingDnsWriter() {
|
||||
ParameterException thrown =
|
||||
assertThrows(
|
||||
ParameterException.class,
|
||||
() ->
|
||||
runCommandForced(
|
||||
"--ip_whitelist=1.1.1.1",
|
||||
"--email=contact@email.com",
|
||||
"--certfile=" + getCertFilename(),
|
||||
"--registrar=blobio"));
|
||||
assertThat(thrown).hasMessageThat().contains("option is required: --dns_writers");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFailure_missingEmail() {
|
||||
ParameterException thrown =
|
||||
|
@ -518,7 +369,6 @@ public class SetupOteCommandTest extends CommandTestCase<SetupOteCommand> {
|
|||
() ->
|
||||
runCommandForced(
|
||||
"--ip_whitelist=1.1.1.1",
|
||||
"--dns_writers=VoidDnsWriter",
|
||||
"--certfile=" + getCertFilename(),
|
||||
"--registrar=blobio"));
|
||||
assertThat(thrown).hasMessageThat().contains("option is required: --email");
|
||||
|
@ -534,7 +384,6 @@ public class SetupOteCommandTest extends CommandTestCase<SetupOteCommand> {
|
|||
"--ip_whitelist=1.1.1.1",
|
||||
"--registrar=blobio",
|
||||
"--email=contact@email.com",
|
||||
"--dns_writers=VoidDnsWriter",
|
||||
"--certfile=/dev/null"));
|
||||
assertThat(thrown).hasMessageThat().contains("No X509Certificate found");
|
||||
}
|
||||
|
@ -549,26 +398,8 @@ public class SetupOteCommandTest extends CommandTestCase<SetupOteCommand> {
|
|||
"--ip_whitelist=1.1.1.1",
|
||||
"--registrar=3blobio",
|
||||
"--email=contact@email.com",
|
||||
"--dns_writers=VoidDnsWriter",
|
||||
"--certfile=" + getCertFilename()));
|
||||
assertThat(thrown).hasMessageThat().contains("Registrar name is invalid");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFailure_invalidDnsWriter() {
|
||||
IllegalArgumentException thrown =
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() ->
|
||||
runCommandForced(
|
||||
"--ip_whitelist=1.1.1.1",
|
||||
"--registrar=blobio",
|
||||
"--email=contact@email.com",
|
||||
"--dns_writers=InvalidDnsWriter",
|
||||
"--certfile=" + getCertFilename()));
|
||||
assertThat(thrown)
|
||||
.hasMessageThat()
|
||||
.contains("Invalid DNS writer name(s) specified: [InvalidDnsWriter]");
|
||||
assertThat(thrown).hasMessageThat().contains("Invalid registrar name: 3blobio");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -581,9 +412,8 @@ public class SetupOteCommandTest extends CommandTestCase<SetupOteCommand> {
|
|||
"--ip_whitelist=1.1.1.1",
|
||||
"--registrar=bl",
|
||||
"--email=contact@email.com",
|
||||
"--dns_writers=VoidDnsWriter",
|
||||
"--certfile=" + getCertFilename()));
|
||||
assertThat(thrown).hasMessageThat().contains("Registrar name is invalid");
|
||||
assertThat(thrown).hasMessageThat().contains("Invalid registrar name: bl");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -596,9 +426,8 @@ public class SetupOteCommandTest extends CommandTestCase<SetupOteCommand> {
|
|||
"--ip_whitelist=1.1.1.1",
|
||||
"--registrar=blobiotoooolong",
|
||||
"--email=contact@email.com",
|
||||
"--dns_writers=VoidDnsWriter",
|
||||
"--certfile=" + getCertFilename()));
|
||||
assertThat(thrown).hasMessageThat().contains("Registrar name is invalid");
|
||||
assertThat(thrown).hasMessageThat().contains("Invalid registrar name: blobiotoooolong");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -611,25 +440,8 @@ public class SetupOteCommandTest extends CommandTestCase<SetupOteCommand> {
|
|||
"--ip_whitelist=1.1.1.1",
|
||||
"--registrar=blo#bio",
|
||||
"--email=contact@email.com",
|
||||
"--dns_writers=VoidDnsWriter",
|
||||
"--certfile=" + getCertFilename()));
|
||||
assertThat(thrown).hasMessageThat().contains("Registrar name is invalid");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFailure_invalidPremiumList() {
|
||||
IllegalArgumentException thrown =
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() ->
|
||||
runCommandForced(
|
||||
"--ip_whitelist=1.1.1.1",
|
||||
"--registrar=blobio",
|
||||
"--email=contact@email.com",
|
||||
"--dns_writers=VoidDnsWriter",
|
||||
"--certfile=" + getCertFilename(),
|
||||
"--premium_list=foo"));
|
||||
assertThat(thrown).hasMessageThat().contains("The premium list 'foo' doesn't exist");
|
||||
assertThat(thrown).hasMessageThat().contains("Invalid registrar name: blo#bio");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -643,9 +455,23 @@ public class SetupOteCommandTest extends CommandTestCase<SetupOteCommand> {
|
|||
"--ip_whitelist=1.1.1.1",
|
||||
"--registrar=blobio",
|
||||
"--email=contact@email.com",
|
||||
"--dns_writers=VoidDnsWriter",
|
||||
"--certfile=" + getCertFilename()));
|
||||
assertThat(thrown).hasMessageThat().contains("TLD 'blobio-sunrise' already exists");
|
||||
assertThat(thrown).hasMessageThat().contains("Registry(\"blobio-sunrise\")");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSuccess_tldExists_replaceExisting() throws Exception {
|
||||
createTld("blobio-sunrise");
|
||||
|
||||
runCommandForced(
|
||||
"--overwrite",
|
||||
"--ip_whitelist=1.1.1.1",
|
||||
"--registrar=blobio",
|
||||
"--email=contact@email.com",
|
||||
"--certfile=" + getCertFilename());
|
||||
|
||||
verifyTldCreation("blobio-sunrise", "BLOBIOS0", TldState.START_DATE_SUNRISE);
|
||||
verifyTldCreation("blobio-landrush", "BLOBIOL1", TldState.LANDRUSH);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -663,8 +489,29 @@ public class SetupOteCommandTest extends CommandTestCase<SetupOteCommand> {
|
|||
"--ip_whitelist=1.1.1.1",
|
||||
"--registrar=blobio",
|
||||
"--email=contact@email.com",
|
||||
"--dns_writers=VoidDnsWriter",
|
||||
"--certfile=" + getCertFilename()));
|
||||
assertThat(thrown).hasMessageThat().contains("Registrar blobio-1 already exists");
|
||||
assertThat(thrown).hasMessageThat().contains("Registrar(\"blobio-1\")");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSuccess_registrarExists_replaceExisting() throws Exception {
|
||||
Registrar registrar = loadRegistrar("TheRegistrar").asBuilder()
|
||||
.setClientId("blobio-1")
|
||||
.setRegistrarName("blobio-1")
|
||||
.build();
|
||||
persistResource(registrar);
|
||||
|
||||
runCommandForced(
|
||||
"--overwrite",
|
||||
"--ip_whitelist=1.1.1.1",
|
||||
"--registrar=blobio",
|
||||
"--email=contact@email.com",
|
||||
"--certfile=" + getCertFilename());
|
||||
|
||||
ImmutableList<CidrAddressBlock> ipAddress = ImmutableList.of(
|
||||
CidrAddressBlock.create("1.1.1.1"));
|
||||
|
||||
verifyRegistrarCreation("blobio-1", "blobio-sunrise", PASSWORD, ipAddress);
|
||||
verifyRegistrarCreation("blobio-2", "blobio-landrush", PASSWORD, ipAddress);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue