mirror of
https://github.com/google/nomulus.git
synced 2025-05-14 00:17:20 +02:00
Make return value of ClaimsListShard.getClaimKey() Optional
It was nullable all along, but wasn't tagged as such, and thus it was possible to misuse the method from its call sites. Also adds an assertion about no NORDN tasks being enqueued in a failing domain create test for a required signed mark. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=187649865
This commit is contained in:
parent
fa989e754b
commit
ceed5bdd1c
8 changed files with 22 additions and 14 deletions
|
@ -50,6 +50,7 @@ import google.registry.model.tmch.ClaimsListShard;
|
||||||
import google.registry.util.Clock;
|
import google.registry.util.Clock;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import org.joda.time.DateTime;
|
import org.joda.time.DateTime;
|
||||||
|
@ -109,10 +110,10 @@ public final class DomainClaimsCheckFlow implements Flow {
|
||||||
verifyClaimsPeriodNotEnded(registry, now);
|
verifyClaimsPeriodNotEnded(registry, now);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
String claimKey = ClaimsListShard.get().getClaimKey(domainName.parts().get(0));
|
Optional<String> claimKey = ClaimsListShard.get().getClaimKey(domainName.parts().get(0));
|
||||||
launchChecksBuilder.add(
|
launchChecksBuilder.add(
|
||||||
LaunchCheck.create(
|
LaunchCheck.create(
|
||||||
LaunchCheckName.create(claimKey != null, targetId), claimKey));
|
LaunchCheckName.create(claimKey.isPresent(), targetId), claimKey.orElse(null)));
|
||||||
}
|
}
|
||||||
return responseBuilder
|
return responseBuilder
|
||||||
.setOnlyExtension(LaunchCheckResponseExtension.create(CLAIMS, launchChecksBuilder.build()))
|
.setOnlyExtension(LaunchCheckResponseExtension.create(CLAIMS, launchChecksBuilder.build()))
|
||||||
|
|
|
@ -934,7 +934,8 @@ public class DomainFlowUtils {
|
||||||
static void verifyClaimsNoticeIfAndOnlyIfNeeded(
|
static void verifyClaimsNoticeIfAndOnlyIfNeeded(
|
||||||
InternetDomainName domainName, boolean hasSignedMarks, boolean hasClaimsNotice)
|
InternetDomainName domainName, boolean hasSignedMarks, boolean hasClaimsNotice)
|
||||||
throws EppException {
|
throws EppException {
|
||||||
boolean isInClaimsList = ClaimsListShard.get().getClaimKey(domainName.parts().get(0)) != null;
|
boolean isInClaimsList =
|
||||||
|
ClaimsListShard.get().getClaimKey(domainName.parts().get(0)).isPresent();
|
||||||
if (hasClaimsNotice && !isInClaimsList) {
|
if (hasClaimsNotice && !isInClaimsList) {
|
||||||
throw new UnexpectedClaimsNoticeException(domainName.toString());
|
throw new UnexpectedClaimsNoticeException(domainName.toString());
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,6 +45,7 @@ import google.registry.util.SystemSleeper;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.concurrent.Callable;
|
import java.util.concurrent.Callable;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import org.joda.time.DateTime;
|
import org.joda.time.DateTime;
|
||||||
|
@ -145,8 +146,9 @@ public class ClaimsListShard extends ImmutableObject {
|
||||||
return creationTime;
|
return creationTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getClaimKey(String label) {
|
/** Returns the claim key for a given domain if there is one, empty otherwise. */
|
||||||
return labelsToKeys.get(label);
|
public Optional<String> getClaimKey(String label) {
|
||||||
|
return Optional.ofNullable(labelsToKeys.get(label));
|
||||||
}
|
}
|
||||||
|
|
||||||
public ImmutableMap<String, String> getLabelsToKeys() {
|
public ImmutableMap<String, String> getLabelsToKeys() {
|
||||||
|
|
|
@ -156,7 +156,7 @@ final class GenerateApplicationsReportCommand implements RemoteApiCommand {
|
||||||
&& (domainApplication.getLaunchNotice() == null
|
&& (domainApplication.getLaunchNotice() == null
|
||||||
|| domainApplication.getLaunchNotice().getNoticeId() == null
|
|| domainApplication.getLaunchNotice().getNoticeId() == null
|
||||||
|| isNullOrEmpty(domainApplication.getLaunchNotice().getNoticeId().getTcnId()))
|
|| isNullOrEmpty(domainApplication.getLaunchNotice().getNoticeId().getTcnId()))
|
||||||
&& ClaimsListShard.get().getClaimKey(label) != null) {
|
&& ClaimsListShard.get().getClaimKey(label).isPresent()) {
|
||||||
return Optional.of(makeLine(domainApplication, "Missing claims notice"));
|
return Optional.of(makeLine(domainApplication, "Missing claims notice"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -889,6 +889,7 @@ public class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow,
|
||||||
persistContactsAndHosts();
|
persistContactsAndHosts();
|
||||||
EppException thrown = assertThrows(MissingClaimsNoticeException.class, this::runFlow);
|
EppException thrown = assertThrows(MissingClaimsNoticeException.class, this::runFlow);
|
||||||
assertAboutEppExceptions().that(thrown).marshalsToXml();
|
assertAboutEppExceptions().that(thrown).marshalsToXml();
|
||||||
|
assertNoTasksEnqueued(QUEUE_CLAIMS, QUEUE_SUNRISE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
package google.registry.model.tmch;
|
package google.registry.model.tmch;
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
import static com.google.common.truth.Truth8.assertThat;
|
||||||
import static google.registry.model.ofy.ObjectifyService.ofy;
|
import static google.registry.model.ofy.ObjectifyService.ofy;
|
||||||
import static google.registry.testing.JUnitBackports.assertThrows;
|
import static google.registry.testing.JUnitBackports.assertThrows;
|
||||||
import static google.registry.util.DateTimeUtils.START_OF_TIME;
|
import static google.registry.util.DateTimeUtils.START_OF_TIME;
|
||||||
|
@ -90,8 +91,8 @@ public class ClaimsListShardTest {
|
||||||
assertThat(ClaimsListShard.get().labelsToKeys).isEqualTo(unsharded.labelsToKeys);
|
assertThat(ClaimsListShard.get().labelsToKeys).isEqualTo(unsharded.labelsToKeys);
|
||||||
List<ClaimsListShard> shards1 = ofy().load().type(ClaimsListShard.class).list();
|
List<ClaimsListShard> shards1 = ofy().load().type(ClaimsListShard.class).list();
|
||||||
assertThat(shards1).hasSize(4);
|
assertThat(shards1).hasSize(4);
|
||||||
assertThat(ClaimsListShard.get().getClaimKey("1")).isEqualTo("1");
|
assertThat(ClaimsListShard.get().getClaimKey("1")).hasValue("1");
|
||||||
assertThat(ClaimsListShard.get().getClaimKey("a")).isNull();
|
assertThat(ClaimsListShard.get().getClaimKey("a")).isEmpty();
|
||||||
assertThat(ClaimsListShard.getCurrentRevision()).isEqualTo(shards1.get(0).parent);
|
assertThat(ClaimsListShard.getCurrentRevision()).isEqualTo(shards1.get(0).parent);
|
||||||
|
|
||||||
// Create a smaller ClaimsList that will need only 2 shards to save.
|
// Create a smaller ClaimsList that will need only 2 shards to save.
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
package google.registry.tmch;
|
package google.registry.tmch;
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
import static com.google.common.truth.Truth8.assertThat;
|
||||||
import static org.mockito.Mockito.times;
|
import static org.mockito.Mockito.times;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
@ -36,7 +37,7 @@ public class TmchDnlActionTest extends TmchActionTestCase {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testDnl() throws Exception {
|
public void testDnl() throws Exception {
|
||||||
assertThat(ClaimsListShard.get().getClaimKey("xn----7sbejwbn3axu3d")).isNull();
|
assertThat(ClaimsListShard.get().getClaimKey("xn----7sbejwbn3axu3d")).isEmpty();
|
||||||
when(httpResponse.getContent())
|
when(httpResponse.getContent())
|
||||||
.thenReturn(TmchTestData.loadBytes("dnl-latest.csv").read())
|
.thenReturn(TmchTestData.loadBytes("dnl-latest.csv").read())
|
||||||
.thenReturn(TmchTestData.loadBytes("dnl-latest.sig").read());
|
.thenReturn(TmchTestData.loadBytes("dnl-latest.sig").read());
|
||||||
|
@ -51,7 +52,7 @@ public class TmchDnlActionTest extends TmchActionTestCase {
|
||||||
ClaimsListShard claimsList = ClaimsListShard.get();
|
ClaimsListShard claimsList = ClaimsListShard.get();
|
||||||
assertThat(claimsList.getCreationTime()).isEqualTo(DateTime.parse("2013-11-24T23:15:37.4Z"));
|
assertThat(claimsList.getCreationTime()).isEqualTo(DateTime.parse("2013-11-24T23:15:37.4Z"));
|
||||||
assertThat(claimsList.getClaimKey("xn----7sbejwbn3axu3d"))
|
assertThat(claimsList.getClaimKey("xn----7sbejwbn3axu3d"))
|
||||||
.isEqualTo("2013112500/7/4/8/dIHW0DiuybvhdP8kIz");
|
.hasValue("2013112500/7/4/8/dIHW0DiuybvhdP8kIz");
|
||||||
assertThat(claimsList.getClaimKey("lolcat")).isNull();
|
assertThat(claimsList.getClaimKey("lolcat")).isEmpty();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
package google.registry.tools;
|
package google.registry.tools;
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
import static com.google.common.truth.Truth8.assertThat;
|
||||||
import static google.registry.testing.JUnitBackports.assertThrows;
|
import static google.registry.testing.JUnitBackports.assertThrows;
|
||||||
|
|
||||||
import google.registry.model.tmch.ClaimsListShard;
|
import google.registry.model.tmch.ClaimsListShard;
|
||||||
|
@ -38,11 +39,11 @@ public class UploadClaimsListCommandTest extends CommandTestCase<UploadClaimsLis
|
||||||
ClaimsListShard claimsList = ClaimsListShard.get();
|
ClaimsListShard claimsList = ClaimsListShard.get();
|
||||||
assertThat(claimsList.getCreationTime()).isEqualTo(DateTime.parse("2012-08-16T00:00:00.0Z"));
|
assertThat(claimsList.getCreationTime()).isEqualTo(DateTime.parse("2012-08-16T00:00:00.0Z"));
|
||||||
assertThat(claimsList.getClaimKey("example"))
|
assertThat(claimsList.getClaimKey("example"))
|
||||||
.isEqualTo("2013041500/2/6/9/rJ1NrDO92vDsAzf7EQzgjX4R0000000001");
|
.hasValue("2013041500/2/6/9/rJ1NrDO92vDsAzf7EQzgjX4R0000000001");
|
||||||
assertThat(claimsList.getClaimKey("another-example"))
|
assertThat(claimsList.getClaimKey("another-example"))
|
||||||
.isEqualTo("2013041500/6/A/5/alJAqG2vI2BmCv5PfUvuDkf40000000002");
|
.hasValue("2013041500/6/A/5/alJAqG2vI2BmCv5PfUvuDkf40000000002");
|
||||||
assertThat(claimsList.getClaimKey("anotherexample"))
|
assertThat(claimsList.getClaimKey("anotherexample"))
|
||||||
.isEqualTo("2013041500/A/C/7/rHdC4wnrWRvPY6nneCVtQhFj0000000003");
|
.hasValue("2013041500/A/C/7/rHdC4wnrWRvPY6nneCVtQhFj0000000003");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue