mirror of
https://github.com/google/nomulus.git
synced 2025-06-27 06:44:51 +02:00
Fix some issues caught by IntelliJ static code analysis
The most common issues were: * Arrays.asList() shouldn't be called with a single parameter. * Broken Javadoc @links. * Unnecessary casts and type declarations. * Unnecessary unused variable initializations. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=230994311
This commit is contained in:
parent
3cf26ff9b6
commit
c6e58d3bff
39 changed files with 132 additions and 165 deletions
|
@ -29,7 +29,6 @@ import static google.registry.model.ofy.ObjectifyService.ofy;
|
||||||
import static google.registry.util.DateTimeUtils.START_OF_TIME;
|
import static google.registry.util.DateTimeUtils.START_OF_TIME;
|
||||||
import static google.registry.util.DateTimeUtils.isAtOrAfter;
|
import static google.registry.util.DateTimeUtils.isAtOrAfter;
|
||||||
import static java.nio.channels.Channels.newOutputStream;
|
import static java.nio.channels.Channels.newOutputStream;
|
||||||
import static java.util.Arrays.asList;
|
|
||||||
import static java.util.Comparator.comparingLong;
|
import static java.util.Comparator.comparingLong;
|
||||||
|
|
||||||
import com.google.appengine.tools.cloudstorage.GcsFileOptions;
|
import com.google.appengine.tools.cloudstorage.GcsFileOptions;
|
||||||
|
@ -208,7 +207,7 @@ public final class ExportCommitLogDiffAction implements Runnable {
|
||||||
ImmutableList.Builder<Iterable<? extends ImmutableObject>> entities =
|
ImmutableList.Builder<Iterable<? extends ImmutableObject>> entities =
|
||||||
new ImmutableList.Builder<>();
|
new ImmutableList.Builder<>();
|
||||||
for (CommitLogManifest manifest : chunk) {
|
for (CommitLogManifest manifest : chunk) {
|
||||||
entities.add(asList(manifest));
|
entities.add(ImmutableList.of(manifest));
|
||||||
entities.add(ofy().load().type(CommitLogMutation.class).ancestor(manifest));
|
entities.add(ofy().load().type(CommitLogMutation.class).ancestor(manifest));
|
||||||
}
|
}
|
||||||
for (ImmutableObject entity : concat(entities.build())) {
|
for (ImmutableObject entity : concat(entities.build())) {
|
||||||
|
|
|
@ -19,13 +19,13 @@ import static com.google.common.collect.ImmutableList.toImmutableList;
|
||||||
import static com.google.common.collect.Iterators.peekingIterator;
|
import static com.google.common.collect.Iterators.peekingIterator;
|
||||||
import static google.registry.backup.BackupUtils.createDeserializingIterator;
|
import static google.registry.backup.BackupUtils.createDeserializingIterator;
|
||||||
import static google.registry.model.ofy.ObjectifyService.ofy;
|
import static google.registry.model.ofy.ObjectifyService.ofy;
|
||||||
import static java.util.Arrays.asList;
|
|
||||||
|
|
||||||
import com.google.appengine.api.datastore.DatastoreService;
|
import com.google.appengine.api.datastore.DatastoreService;
|
||||||
import com.google.appengine.api.datastore.Entity;
|
import com.google.appengine.api.datastore.Entity;
|
||||||
import com.google.appengine.api.datastore.EntityTranslator;
|
import com.google.appengine.api.datastore.EntityTranslator;
|
||||||
import com.google.appengine.tools.cloudstorage.GcsFileMetadata;
|
import com.google.appengine.tools.cloudstorage.GcsFileMetadata;
|
||||||
import com.google.appengine.tools.cloudstorage.GcsService;
|
import com.google.appengine.tools.cloudstorage.GcsService;
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.common.collect.PeekingIterator;
|
import com.google.common.collect.PeekingIterator;
|
||||||
import com.google.common.collect.Streams;
|
import com.google.common.collect.Streams;
|
||||||
|
@ -106,7 +106,7 @@ public class RestoreCommitLogsAction implements Runnable {
|
||||||
PeekingIterator<ImmutableObject> commitLogs =
|
PeekingIterator<ImmutableObject> commitLogs =
|
||||||
peekingIterator(createDeserializingIterator(input));
|
peekingIterator(createDeserializingIterator(input));
|
||||||
lastCheckpoint = (CommitLogCheckpoint) commitLogs.next();
|
lastCheckpoint = (CommitLogCheckpoint) commitLogs.next();
|
||||||
saveOfy(asList(lastCheckpoint)); // Save the checkpoint itself.
|
saveOfy(ImmutableList.of(lastCheckpoint)); // Save the checkpoint itself.
|
||||||
while (commitLogs.hasNext()) {
|
while (commitLogs.hasNext()) {
|
||||||
CommitLogManifest manifest = restoreOneTransaction(commitLogs);
|
CommitLogManifest manifest = restoreOneTransaction(commitLogs);
|
||||||
bucketTimestamps.put(manifest.getBucketId(), manifest.getCommitTime());
|
bucketTimestamps.put(manifest.getBucketId(), manifest.getCommitTime());
|
||||||
|
|
|
@ -61,7 +61,7 @@ import org.joda.time.Duration;
|
||||||
* {@link ReadDnsQueueAction}, which is run as a cron job with running time shorter than the cron
|
* {@link ReadDnsQueueAction}, which is run as a cron job with running time shorter than the cron
|
||||||
* repeat time - meaning there should never be two instances running at once.
|
* repeat time - meaning there should never be two instances running at once.
|
||||||
*
|
*
|
||||||
* @see google.registry.config.RegistryConfig#provideReadDnsQueueRuntime
|
* @see google.registry.config.RegistryConfig.ConfigModule#provideReadDnsQueueRuntime
|
||||||
*/
|
*/
|
||||||
public class DnsQueue {
|
public class DnsQueue {
|
||||||
|
|
||||||
|
|
|
@ -110,7 +110,7 @@ public class CheckBackupAction implements Runnable {
|
||||||
throw e;
|
throw e;
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
throw new InternalServerErrorException(
|
throw new InternalServerErrorException(
|
||||||
String.format("Exception occurred while checking datastore exports."), e);
|
"Exception occurred while checking datastore exports.", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -181,7 +181,7 @@ public final class ComparatorKeyring extends ComparingInvocationHandler<Keyring>
|
||||||
return "null";
|
return "null";
|
||||||
}
|
}
|
||||||
|
|
||||||
StringBuilder builder = new StringBuilder("");
|
StringBuilder builder = new StringBuilder();
|
||||||
for (byte b : a.getFingerprint()) {
|
for (byte b : a.getFingerprint()) {
|
||||||
builder.append(String.format("%02x:", b));
|
builder.append(String.format("%02x:", b));
|
||||||
}
|
}
|
||||||
|
|
|
@ -137,7 +137,7 @@ public final class KmsUpdater {
|
||||||
* Encrypts updated secrets using KMS. If the configured {@code KeyRing} or {@code CryptoKey}
|
* Encrypts updated secrets using KMS. If the configured {@code KeyRing} or {@code CryptoKey}
|
||||||
* associated with a secret doesn't exist, they will first be created.
|
* associated with a secret doesn't exist, they will first be created.
|
||||||
*
|
*
|
||||||
* @see google.registry.config.RegistryConfigSettings#kms
|
* @see google.registry.config.RegistryConfigSettings.Kms
|
||||||
*/
|
*/
|
||||||
private ImmutableMap<String, EncryptResponse> encryptValues(Map<String, byte[]> keyValues) {
|
private ImmutableMap<String, EncryptResponse> encryptValues(Map<String, byte[]> keyValues) {
|
||||||
ImmutableMap.Builder<String, EncryptResponse> encryptedValues = new ImmutableMap.Builder<>();
|
ImmutableMap.Builder<String, EncryptResponse> encryptedValues = new ImmutableMap.Builder<>();
|
||||||
|
|
|
@ -369,15 +369,8 @@ public abstract class EppResource extends BackupGroupRoot implements Buildable {
|
||||||
Streams.stream(keys).map(key -> (Key<EppResource>) key).collect(toImmutableList());
|
Streams.stream(keys).map(key -> (Key<EppResource>) key).collect(toImmutableList());
|
||||||
|
|
||||||
// Typing shenanigans are required to return the map with the correct required generic type.
|
// Typing shenanigans are required to return the map with the correct required generic type.
|
||||||
return ofy()
|
return ofy().load().keys(typedKeys).entrySet().stream()
|
||||||
.load()
|
.collect(ImmutableMap.toImmutableMap(Entry::getKey, Entry::getValue));
|
||||||
.keys(typedKeys)
|
|
||||||
.entrySet()
|
|
||||||
.stream()
|
|
||||||
.collect(
|
|
||||||
ImmutableMap
|
|
||||||
.<Map.Entry<Key<EppResource>, EppResource>, Key<? extends EppResource>, EppResource>
|
|
||||||
toImmutableMap(Entry::getKey, Entry::getValue));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -33,11 +33,10 @@ public final class SchemaVersion {
|
||||||
*/
|
*/
|
||||||
private static SortedSet<Class<?>> getAllPersistedTypes() {
|
private static SortedSet<Class<?>> getAllPersistedTypes() {
|
||||||
SortedSet<Class<?>> persistedTypes = new TreeSet<>(Ordering.usingToString());
|
SortedSet<Class<?>> persistedTypes = new TreeSet<>(Ordering.usingToString());
|
||||||
Queue<Class<?>> queue = new ArrayDeque<>();
|
|
||||||
// Do a breadth-first search for persisted types, starting with @Entity types and expanding each
|
// Do a breadth-first search for persisted types, starting with @Entity types and expanding each
|
||||||
// ImmutableObject by querying it for all its persisted field types.
|
// ImmutableObject by querying it for all its persisted field types.
|
||||||
persistedTypes.addAll(EntityClasses.ALL_CLASSES);
|
persistedTypes.addAll(EntityClasses.ALL_CLASSES);
|
||||||
queue.addAll(persistedTypes);
|
Queue<Class<?>> queue = new ArrayDeque<>(persistedTypes);
|
||||||
while (!queue.isEmpty()) {
|
while (!queue.isEmpty()) {
|
||||||
Class<?> clazz = queue.remove();
|
Class<?> clazz = queue.remove();
|
||||||
if (ImmutableObject.class.isAssignableFrom(clazz)) {
|
if (ImmutableObject.class.isAssignableFrom(clazz)) {
|
||||||
|
|
|
@ -60,7 +60,7 @@ abstract class AugmentedDeleter implements Deleter {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Result<Void> key(Key<?> key) {
|
public Result<Void> key(Key<?> key) {
|
||||||
handleDeletion(Arrays.asList(key));
|
handleDeletion(ImmutableList.of(key));
|
||||||
return delegate.keys(key);
|
return delegate.keys(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ import javax.xml.bind.annotation.XmlNsForm;
|
||||||
import javax.xml.bind.annotation.XmlSchema;
|
import javax.xml.bind.annotation.XmlSchema;
|
||||||
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
|
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* This package defines all entities which are managed via EPP XML and persisted to the Datastore
|
* This package defines all entities which are managed via EPP XML and persisted to the Datastore
|
||||||
* via Objectify.
|
* via Objectify.
|
||||||
*
|
*
|
||||||
|
|
|
@ -126,7 +126,7 @@ public class TmchXmlSignature {
|
||||||
StringBuilder builder = new StringBuilder();
|
StringBuilder builder = new StringBuilder();
|
||||||
builder.append("Signature failed core validation\n");
|
builder.append("Signature failed core validation\n");
|
||||||
boolean sv = signature.getSignatureValue().validate(context);
|
boolean sv = signature.getSignatureValue().validate(context);
|
||||||
builder.append("Signature validation status: " + sv + "\n");
|
builder.append(String.format("Signature validation status: %s\n", sv));
|
||||||
for (Reference ref : references) {
|
for (Reference ref : references) {
|
||||||
builder.append("references[");
|
builder.append("references[");
|
||||||
builder.append(ref.getURI());
|
builder.append(ref.getURI());
|
||||||
|
|
|
@ -12,12 +12,12 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
package google.registry.tools;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Marker interface for commands that use the remote api.
|
* Marker interface for commands that use the remote api.
|
||||||
*
|
*
|
||||||
* <p>Just implementing this is sufficient to use the remote api; {@link RegistryTool} will
|
* <p>Just implementing this is sufficient to use the remote api; {@link RegistryTool} will install
|
||||||
* install it as needed.
|
* it as needed.
|
||||||
*/
|
*/
|
||||||
package google.registry.tools;
|
|
||||||
|
|
||||||
interface CommandWithRemoteApi extends Command {}
|
interface CommandWithRemoteApi extends Command {}
|
||||||
|
|
|
@ -43,10 +43,12 @@ final class GetResourceByKeyCommand implements CommandWithRemoteApi {
|
||||||
public void run() {
|
public void run() {
|
||||||
for (String keyString : mainParameters) {
|
for (String keyString : mainParameters) {
|
||||||
System.out.println("\n");
|
System.out.println("\n");
|
||||||
Key<EppResource> resourceKey = checkNotNull(
|
Key<EppResource> resourceKey =
|
||||||
Key.<EppResource>create(keyString), "Could not parse key string: " + keyString);
|
checkNotNull(Key.create(keyString), "Could not parse key string: " + keyString);
|
||||||
EppResource resource = checkNotNull(
|
EppResource resource =
|
||||||
ofy().load().key(resourceKey).now(), "Could not load resource for key: " + resourceKey);
|
checkNotNull(
|
||||||
|
ofy().load().key(resourceKey).now(),
|
||||||
|
"Could not load resource for key: " + resourceKey);
|
||||||
System.out.println(expand ? resource.toHydratedString() : resource.toString());
|
System.out.println(expand ? resource.toHydratedString() : resource.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -131,7 +131,7 @@ final class ValidateEscrowDepositCommand implements Command {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
System.out.println();
|
System.out.println();
|
||||||
System.out.printf("Contents:\n");
|
System.out.println("Contents:");
|
||||||
for (Map.Entry<String, Long> count : counts.entrySet()) {
|
for (Map.Entry<String, Long> count : counts.entrySet()) {
|
||||||
System.out.printf(" - %s: %,d %s\n",
|
System.out.printf(" - %s: %,d %s\n",
|
||||||
count.getKey(),
|
count.getKey(),
|
||||||
|
@ -158,9 +158,9 @@ final class ValidateEscrowDepositCommand implements Command {
|
||||||
good = false;
|
good = false;
|
||||||
}
|
}
|
||||||
if (good) {
|
if (good) {
|
||||||
System.out.printf("RDE deposit is XML schema valid\n");
|
System.out.println("RDE deposit is XML schema valid");
|
||||||
} else {
|
} else {
|
||||||
System.out.printf("RDE deposit is XML schema valid but has bad references\n");
|
System.out.println("RDE deposit is XML schema valid but has bad references");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -83,13 +83,13 @@ public class CreateGroupsAction implements Runnable {
|
||||||
// that type.
|
// that type.
|
||||||
groupsConnection.createGroup(groupKey);
|
groupsConnection.createGroup(groupKey);
|
||||||
groupsConnection.addMemberToGroup(parentGroup, groupKey, Role.MEMBER);
|
groupsConnection.addMemberToGroup(parentGroup, groupKey, Role.MEMBER);
|
||||||
return Optional.<Exception>empty();
|
return Optional.empty();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
return Optional.of(e);
|
return Optional.of(e);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// Return the correct server response based on the results of the group creations.
|
// Return the correct server response based on the results of the group creations.
|
||||||
if (results.stream().filter(Optional::isPresent).count() > 0) {
|
if (results.stream().anyMatch(Optional::isPresent)) {
|
||||||
StringWriter responseString = new StringWriter();
|
StringWriter responseString = new StringWriter();
|
||||||
PrintWriter responseWriter = new PrintWriter(responseString);
|
PrintWriter responseWriter = new PrintWriter(responseString);
|
||||||
for (int i = 0; i < results.size(); i++) {
|
for (int i = 0; i < results.size(); i++) {
|
||||||
|
|
|
@ -31,8 +31,8 @@ import javax.annotation.concurrent.NotThreadSafe;
|
||||||
/**
|
/**
|
||||||
* Exception thrown when a form field contains a bad value.
|
* Exception thrown when a form field contains a bad value.
|
||||||
*
|
*
|
||||||
* <p>You can safely throw {@code FormFieldException} from within your validator functions, and
|
* <p>You can safely throw {@code FormFieldException} from within your validator functions, and the
|
||||||
* the field name will automatically be propagated into the exception object for you.
|
* field name will automatically be propagated into the exception object for you.
|
||||||
*
|
*
|
||||||
* <p>The way that field names work is a bit complicated, because we need to support complex nested
|
* <p>The way that field names work is a bit complicated, because we need to support complex nested
|
||||||
* field names like {@code foo[3].bar}. So what happens is the original exception will be thrown by
|
* field names like {@code foo[3].bar}. So what happens is the original exception will be thrown by
|
||||||
|
@ -41,9 +41,9 @@ import javax.annotation.concurrent.NotThreadSafe;
|
||||||
* name of that component. Then when the exception reaches the user, the {@link #getFieldName()}
|
* name of that component. Then when the exception reaches the user, the {@link #getFieldName()}
|
||||||
* method will produce the fully-qualified field name.
|
* method will produce the fully-qualified field name.
|
||||||
*
|
*
|
||||||
* <p>This propagation mechanism is also very important when writing
|
* <p>This propagation mechanism is also very important when writing {@link
|
||||||
* {@link FormField.Builder#transform(com.google.common.base.Function) transform} functions, which
|
* FormField.Builder#transform} functions, which oftentimes will not know the name of the field
|
||||||
* oftentimes will not know the name of the field they're validating.
|
* they're validating.
|
||||||
*/
|
*/
|
||||||
@NotThreadSafe
|
@NotThreadSafe
|
||||||
@SuppressWarnings("OverrideThrowableToString")
|
@SuppressWarnings("OverrideThrowableToString")
|
||||||
|
|
|
@ -50,27 +50,27 @@ public class CollectionUtils {
|
||||||
|
|
||||||
/** Turns a null set into an empty set. JAXB leaves lots of null sets lying around. */
|
/** Turns a null set into an empty set. JAXB leaves lots of null sets lying around. */
|
||||||
public static <T> Set<T> nullToEmpty(@Nullable Set<T> potentiallyNull) {
|
public static <T> Set<T> nullToEmpty(@Nullable Set<T> potentiallyNull) {
|
||||||
return firstNonNull(potentiallyNull, ImmutableSet.<T>of());
|
return firstNonNull(potentiallyNull, ImmutableSet.of());
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Turns a null list into an empty list. */
|
/** Turns a null list into an empty list. */
|
||||||
public static <T> List<T> nullToEmpty(@Nullable List<T> potentiallyNull) {
|
public static <T> List<T> nullToEmpty(@Nullable List<T> potentiallyNull) {
|
||||||
return firstNonNull(potentiallyNull, ImmutableList.<T>of());
|
return firstNonNull(potentiallyNull, ImmutableList.of());
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Turns a null map into an empty map. */
|
/** Turns a null map into an empty map. */
|
||||||
public static <T, U> Map<T, U> nullToEmpty(@Nullable Map<T, U> potentiallyNull) {
|
public static <T, U> Map<T, U> nullToEmpty(@Nullable Map<T, U> potentiallyNull) {
|
||||||
return firstNonNull(potentiallyNull, ImmutableMap.<T, U>of());
|
return firstNonNull(potentiallyNull, ImmutableMap.of());
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Turns a null multimap into an empty multimap. */
|
/** Turns a null multimap into an empty multimap. */
|
||||||
public static <T, U> Multimap<T, U> nullToEmpty(@Nullable Multimap<T, U> potentiallyNull) {
|
public static <T, U> Multimap<T, U> nullToEmpty(@Nullable Multimap<T, U> potentiallyNull) {
|
||||||
return firstNonNull(potentiallyNull, ImmutableMultimap.<T, U>of());
|
return firstNonNull(potentiallyNull, ImmutableMultimap.of());
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Turns a null sorted map into an empty sorted map.. */
|
/** Turns a null sorted map into an empty sorted map.. */
|
||||||
public static <T, U> SortedMap<T, U> nullToEmpty(@Nullable SortedMap<T, U> potentiallyNull) {
|
public static <T, U> SortedMap<T, U> nullToEmpty(@Nullable SortedMap<T, U> potentiallyNull) {
|
||||||
return firstNonNull(potentiallyNull, ImmutableSortedMap.<T, U>of());
|
return firstNonNull(potentiallyNull, ImmutableSortedMap.of());
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Defensive copy helper for {@link Set}. */
|
/** Defensive copy helper for {@link Set}. */
|
||||||
|
|
|
@ -14,13 +14,12 @@
|
||||||
|
|
||||||
package google.registry.util;
|
package google.registry.util;
|
||||||
|
|
||||||
import static java.util.Arrays.asList;
|
|
||||||
|
|
||||||
import com.google.appengine.api.taskqueue.Queue;
|
import com.google.appengine.api.taskqueue.Queue;
|
||||||
import com.google.appengine.api.taskqueue.TaskHandle;
|
import com.google.appengine.api.taskqueue.TaskHandle;
|
||||||
import com.google.appengine.api.taskqueue.TaskOptions;
|
import com.google.appengine.api.taskqueue.TaskOptions;
|
||||||
import com.google.appengine.api.taskqueue.TransientFailureException;
|
import com.google.appengine.api.taskqueue.TransientFailureException;
|
||||||
import com.google.common.annotations.VisibleForTesting;
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.common.flogger.FluentLogger;
|
import com.google.common.flogger.FluentLogger;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
@ -65,7 +64,7 @@ public class TaskQueueUtils implements Serializable {
|
||||||
* @return successfully enqueued task
|
* @return successfully enqueued task
|
||||||
*/
|
*/
|
||||||
public TaskHandle enqueue(Queue queue, TaskOptions task) {
|
public TaskHandle enqueue(Queue queue, TaskOptions task) {
|
||||||
return enqueue(queue, asList(task)).get(0);
|
return enqueue(queue, ImmutableList.of(task)).get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -25,7 +25,6 @@ import static google.registry.backup.ExportCommitLogDiffAction.DIFF_FILE_PREFIX;
|
||||||
import static google.registry.model.ofy.CommitLogBucket.getBucketIds;
|
import static google.registry.model.ofy.CommitLogBucket.getBucketIds;
|
||||||
import static google.registry.model.ofy.CommitLogBucket.getBucketKey;
|
import static google.registry.model.ofy.CommitLogBucket.getBucketKey;
|
||||||
import static google.registry.model.ofy.ObjectifyService.ofy;
|
import static google.registry.model.ofy.ObjectifyService.ofy;
|
||||||
import static java.util.Arrays.asList;
|
|
||||||
import static org.joda.time.DateTimeZone.UTC;
|
import static org.joda.time.DateTimeZone.UTC;
|
||||||
|
|
||||||
import com.google.appengine.api.datastore.DatastoreServiceFactory;
|
import com.google.appengine.api.datastore.DatastoreServiceFactory;
|
||||||
|
@ -135,7 +134,7 @@ public class RestoreCommitLogsActionTest {
|
||||||
assertExpectedIds("previous to keep", "b", "d", "e", "f");
|
assertExpectedIds("previous to keep", "b", "d", "e", "f");
|
||||||
assertInDatastore(file1CommitLogs);
|
assertInDatastore(file1CommitLogs);
|
||||||
assertInDatastore(file2CommitLogs);
|
assertInDatastore(file2CommitLogs);
|
||||||
assertInDatastore(asList(CommitLogCheckpointRoot.create(now)));
|
assertInDatastore(CommitLogCheckpointRoot.create(now));
|
||||||
assertCommitLogBuckets(ImmutableMap.of(1, now.minusMinutes(1), 2, now.minusMinutes(2)));
|
assertCommitLogBuckets(ImmutableMap.of(1, now.minusMinutes(1), 2, now.minusMinutes(2)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -149,7 +148,7 @@ public class RestoreCommitLogsActionTest {
|
||||||
ofy().clearSessionCache();
|
ofy().clearSessionCache();
|
||||||
assertExpectedIds("previous to keep");
|
assertExpectedIds("previous to keep");
|
||||||
assertInDatastore(commitLogs);
|
assertInDatastore(commitLogs);
|
||||||
assertInDatastore(asList(CommitLogCheckpointRoot.create(now)));
|
assertInDatastore(CommitLogCheckpointRoot.create(now));
|
||||||
assertCommitLogBuckets(ImmutableMap.of());
|
assertCommitLogBuckets(ImmutableMap.of());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -168,7 +167,7 @@ public class RestoreCommitLogsActionTest {
|
||||||
ofy().clearSessionCache();
|
ofy().clearSessionCache();
|
||||||
assertExpectedIds("previous to keep", "a", "b");
|
assertExpectedIds("previous to keep", "a", "b");
|
||||||
assertInDatastore(commitLogs);
|
assertInDatastore(commitLogs);
|
||||||
assertInDatastore(asList(CommitLogCheckpointRoot.create(now)));
|
assertInDatastore(CommitLogCheckpointRoot.create(now));
|
||||||
assertCommitLogBuckets(ImmutableMap.of(1, now));
|
assertCommitLogBuckets(ImmutableMap.of(1, now));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -188,7 +187,7 @@ public class RestoreCommitLogsActionTest {
|
||||||
ofy().clearSessionCache();
|
ofy().clearSessionCache();
|
||||||
assertExpectedIds("previous to keep");
|
assertExpectedIds("previous to keep");
|
||||||
assertInDatastore(commitLogs);
|
assertInDatastore(commitLogs);
|
||||||
assertInDatastore(asList(CommitLogCheckpointRoot.create(now)));
|
assertInDatastore(CommitLogCheckpointRoot.create(now));
|
||||||
assertCommitLogBuckets(ImmutableMap.of(1, now));
|
assertCommitLogBuckets(ImmutableMap.of(1, now));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -205,7 +204,7 @@ public class RestoreCommitLogsActionTest {
|
||||||
ofy().clearSessionCache();
|
ofy().clearSessionCache();
|
||||||
assertExpectedIds("previous to keep");
|
assertExpectedIds("previous to keep");
|
||||||
assertInDatastore(commitLogs);
|
assertInDatastore(commitLogs);
|
||||||
assertInDatastore(asList(CommitLogCheckpointRoot.create(now)));
|
assertInDatastore(CommitLogCheckpointRoot.create(now));
|
||||||
assertCommitLogBuckets(ImmutableMap.of(1, now));
|
assertCommitLogBuckets(ImmutableMap.of(1, now));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -222,7 +221,7 @@ public class RestoreCommitLogsActionTest {
|
||||||
ofy().clearSessionCache();
|
ofy().clearSessionCache();
|
||||||
assertThat(ofy().load().entity(TestObject.create("existing")).now().getField()).isEqualTo("b");
|
assertThat(ofy().load().entity(TestObject.create("existing")).now().getField()).isEqualTo("b");
|
||||||
assertInDatastore(commitLogs);
|
assertInDatastore(commitLogs);
|
||||||
assertInDatastore(asList(CommitLogCheckpointRoot.create(now)));
|
assertInDatastore(CommitLogCheckpointRoot.create(now));
|
||||||
assertCommitLogBuckets(ImmutableMap.of(1, now));
|
assertCommitLogBuckets(ImmutableMap.of(1, now));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -242,7 +241,7 @@ public class RestoreCommitLogsActionTest {
|
||||||
assertExpectedIds("previous to keep");
|
assertExpectedIds("previous to keep");
|
||||||
assertInDatastore(commitLogs);
|
assertInDatastore(commitLogs);
|
||||||
assertCommitLogBuckets(ImmutableMap.of(1, now));
|
assertCommitLogBuckets(ImmutableMap.of(1, now));
|
||||||
assertInDatastore(asList(CommitLogCheckpointRoot.create(now)));
|
assertInDatastore(CommitLogCheckpointRoot.create(now));
|
||||||
}
|
}
|
||||||
|
|
||||||
private CommitLogCheckpoint createCheckpoint(DateTime now) {
|
private CommitLogCheckpoint createCheckpoint(DateTime now) {
|
||||||
|
@ -280,6 +279,10 @@ public class RestoreCommitLogsActionTest {
|
||||||
.containsExactly((Object[]) ids);
|
.containsExactly((Object[]) ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void assertInDatastore(ImmutableObject entity) {
|
||||||
|
assertThat(ofy().load().entity(entity).now()).isEqualTo(entity);
|
||||||
|
}
|
||||||
|
|
||||||
private void assertInDatastore(Iterable<? extends ImmutableObject> entities) {
|
private void assertInDatastore(Iterable<? extends ImmutableObject> entities) {
|
||||||
assertThat(ofy().load().entities(entities).values()).containsExactlyElementsIn(entities);
|
assertThat(ofy().load().entities(entities).values()).containsExactlyElementsIn(entities);
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,6 @@ import google.registry.export.datastore.Operation.Metadata;
|
||||||
import google.registry.export.datastore.Operation.Progress;
|
import google.registry.export.datastore.Operation.Progress;
|
||||||
import google.registry.testing.FakeClock;
|
import google.registry.testing.FakeClock;
|
||||||
import google.registry.testing.TestDataHelper;
|
import google.registry.testing.TestDataHelper;
|
||||||
import google.registry.util.Clock;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import org.joda.time.DateTime;
|
import org.joda.time.DateTime;
|
||||||
import org.joda.time.Duration;
|
import org.joda.time.Duration;
|
||||||
|
@ -91,8 +90,8 @@ public class OperationTest {
|
||||||
Operation.OperationList operationList =
|
Operation.OperationList operationList =
|
||||||
loadJson("operation_list.json", Operation.OperationList.class);
|
loadJson("operation_list.json", Operation.OperationList.class);
|
||||||
assertThat(operationList.toList()).hasSize(2);
|
assertThat(operationList.toList()).hasSize(2);
|
||||||
Clock clock = new FakeClock(DateTime.parse("2018-10-29T16:01:04.645299Z"));
|
FakeClock clock = new FakeClock(DateTime.parse("2018-10-29T16:01:04.645299Z"));
|
||||||
((FakeClock) clock).advanceOneMilli();
|
clock.advanceOneMilli();
|
||||||
assertThat(operationList.toList().get(0).getRunningTime(clock)).isEqualTo(Duration.millis(1));
|
assertThat(operationList.toList().get(0).getRunningTime(clock)).isEqualTo(Duration.millis(1));
|
||||||
assertThat(operationList.toList().get(0).getProgress())
|
assertThat(operationList.toList().get(0).getProgress())
|
||||||
.isEqualTo("Progress: [51797/54513 entities]");
|
.isEqualTo("Progress: [51797/54513 entities]");
|
||||||
|
|
|
@ -84,9 +84,7 @@ public class SheetSynchronizerTest {
|
||||||
|
|
||||||
// Explicitly constructs a List<Object> to avoid newArrayList typing to ArrayList<String>
|
// Explicitly constructs a List<Object> to avoid newArrayList typing to ArrayList<String>
|
||||||
private List<Object> createRow(Object... elements) {
|
private List<Object> createRow(Object... elements) {
|
||||||
List<Object> row = new ArrayList<>();
|
return new ArrayList<>(Arrays.asList(elements));
|
||||||
row.addAll(Arrays.asList(elements));
|
|
||||||
return row;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -59,15 +59,15 @@ public class EppConsoleActionTest extends ShardableTestCase {
|
||||||
ArgumentCaptor<TransportCredentials> credentialsCaptor =
|
ArgumentCaptor<TransportCredentials> credentialsCaptor =
|
||||||
ArgumentCaptor.forClass(TransportCredentials.class);
|
ArgumentCaptor.forClass(TransportCredentials.class);
|
||||||
ArgumentCaptor<SessionMetadata> metadataCaptor = ArgumentCaptor.forClass(SessionMetadata.class);
|
ArgumentCaptor<SessionMetadata> metadataCaptor = ArgumentCaptor.forClass(SessionMetadata.class);
|
||||||
verify(action.eppRequestHandler).executeEpp(
|
verify(action.eppRequestHandler)
|
||||||
|
.executeEpp(
|
||||||
metadataCaptor.capture(),
|
metadataCaptor.capture(),
|
||||||
credentialsCaptor.capture(),
|
credentialsCaptor.capture(),
|
||||||
eq(EppRequestSource.CONSOLE),
|
eq(EppRequestSource.CONSOLE),
|
||||||
eq(false),
|
eq(false),
|
||||||
eq(false),
|
eq(false),
|
||||||
eq(INPUT_XML_BYTES));
|
eq(INPUT_XML_BYTES));
|
||||||
assertThat(((GaeUserCredentials) credentialsCaptor.getValue()).toString())
|
assertThat(credentialsCaptor.getValue().toString()).contains("user=TestUserId");
|
||||||
.contains("user=TestUserId");
|
|
||||||
assertThat(metadataCaptor.getValue().getClientId()).isEqualTo("ClientIdentifier");
|
assertThat(metadataCaptor.getValue().getClientId()).isEqualTo("ClientIdentifier");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,6 @@ import static org.joda.time.DateTimeZone.UTC;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import com.google.common.collect.Iterables;
|
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import com.google.common.collect.ObjectArrays;
|
import com.google.common.collect.ObjectArrays;
|
||||||
import com.google.common.collect.Streams;
|
import com.google.common.collect.Streams;
|
||||||
|
@ -173,29 +172,6 @@ public abstract class FlowTestCase<F extends Flow> extends ShardableTestCase {
|
||||||
assertThat(ofy().load().type(HistoryEntry.class)).isEmpty();
|
assertThat(ofy().load().type(HistoryEntry.class)).isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> T getOnlyGlobalResource(Class<T> clazz) {
|
|
||||||
return Iterables.getOnlyElement(ofy().load().type(clazz));
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Helper to remove the grace period's billing event key to facilitate comparison. */
|
|
||||||
/** A helper class that sets the billing event parent history entry to facilitate comparison. */
|
|
||||||
public static class BillingEventParentSetter implements Function<BillingEvent, BillingEvent> {
|
|
||||||
private HistoryEntry historyEntry;
|
|
||||||
|
|
||||||
public static BillingEventParentSetter withParent(HistoryEntry historyEntry) {
|
|
||||||
BillingEventParentSetter instance = new BillingEventParentSetter();
|
|
||||||
instance.historyEntry = historyEntry;
|
|
||||||
return instance;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BillingEvent apply(BillingEvent billingEvent) {
|
|
||||||
return billingEvent.asBuilder().setParent(historyEntry).build();
|
|
||||||
}
|
|
||||||
|
|
||||||
private BillingEventParentSetter() {}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper to facilitate comparison of maps of GracePeriods to BillingEvents. This takes a map of
|
* Helper to facilitate comparison of maps of GracePeriods to BillingEvents. This takes a map of
|
||||||
* GracePeriods to BillingEvents and returns a map of the same entries that ignores the keys
|
* GracePeriods to BillingEvents and returns a map of the same entries that ignores the keys
|
||||||
|
@ -340,7 +316,7 @@ public abstract class FlowTestCase<F extends Flow> extends ShardableTestCase {
|
||||||
String.format(
|
String.format(
|
||||||
"Invalid xml.\nExpected:\n%s\n\nActual:\n%s\n",
|
"Invalid xml.\nExpected:\n%s\n\nActual:\n%s\n",
|
||||||
xml,
|
xml,
|
||||||
marshal(output, ValidationMode.LENIENT)),
|
Arrays.toString(marshal(output, ValidationMode.LENIENT))),
|
||||||
e);
|
e);
|
||||||
}
|
}
|
||||||
// Clear the cache so that we don't see stale results in tests.
|
// Clear the cache so that we don't see stale results in tests.
|
||||||
|
|
|
@ -762,12 +762,8 @@ public class DomainDeleteFlowTest extends ResourceFlowTestCase<DomainDeleteFlow,
|
||||||
.asBuilder()
|
.asBuilder()
|
||||||
.setSuperordinateDomain(Key.create(reloadResourceByForeignKey()))
|
.setSuperordinateDomain(Key.create(reloadResourceByForeignKey()))
|
||||||
.build());
|
.build());
|
||||||
domain =
|
|
||||||
persistResource(
|
persistResource(
|
||||||
domain
|
domain.asBuilder().addSubordinateHost(subordinateHost.getFullyQualifiedHostName()).build());
|
||||||
.asBuilder()
|
|
||||||
.addSubordinateHost(subordinateHost.getFullyQualifiedHostName())
|
|
||||||
.build());
|
|
||||||
EppException thrown = assertThrows(DomainToDeleteHasHostsException.class, this::runFlow);
|
EppException thrown = assertThrows(DomainToDeleteHasHostsException.class, this::runFlow);
|
||||||
assertAboutEppExceptions().that(thrown).marshalsToXml();
|
assertAboutEppExceptions().that(thrown).marshalsToXml();
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,7 +99,6 @@ public class DomainRestoreRequestFlowTest
|
||||||
.setType(HistoryEntry.Type.DOMAIN_DELETE)
|
.setType(HistoryEntry.Type.DOMAIN_DELETE)
|
||||||
.setParent(domain)
|
.setParent(domain)
|
||||||
.build());
|
.build());
|
||||||
domain =
|
|
||||||
persistResource(
|
persistResource(
|
||||||
domain
|
domain
|
||||||
.asBuilder()
|
.asBuilder()
|
||||||
|
|
|
@ -325,9 +325,8 @@ public class DomainUpdateFlowTest extends ResourceFlowTestCase<DomainUpdateFlow,
|
||||||
setEppInput("domain_update_subordinate_hosts.xml");
|
setEppInput("domain_update_subordinate_hosts.xml");
|
||||||
persistReferencedEntities();
|
persistReferencedEntities();
|
||||||
DomainBase domain = persistDomain();
|
DomainBase domain = persistDomain();
|
||||||
HostResource existingHost = persistActiveSubordinateHost("ns1.example.tld", domain);
|
persistActiveSubordinateHost("ns1.example.tld", domain);
|
||||||
HostResource addedHost = persistActiveSubordinateHost("ns2.example.tld", domain);
|
HostResource addedHost = persistActiveSubordinateHost("ns2.example.tld", domain);
|
||||||
domain =
|
|
||||||
persistResource(
|
persistResource(
|
||||||
domain
|
domain
|
||||||
.asBuilder()
|
.asBuilder()
|
||||||
|
@ -345,7 +344,8 @@ public class DomainUpdateFlowTest extends ResourceFlowTestCase<DomainUpdateFlow,
|
||||||
domain = reloadResourceByForeignKey();
|
domain = reloadResourceByForeignKey();
|
||||||
assertThat(domain.getNameservers()).containsExactly(Key.create(addedHost));
|
assertThat(domain.getNameservers()).containsExactly(Key.create(addedHost));
|
||||||
assertThat(domain.getSubordinateHosts()).containsExactly("ns1.example.tld", "ns2.example.tld");
|
assertThat(domain.getSubordinateHosts()).containsExactly("ns1.example.tld", "ns2.example.tld");
|
||||||
existingHost = loadByForeignKey(HostResource.class, "ns1.example.tld", clock.nowUtc()).get();
|
HostResource existingHost =
|
||||||
|
loadByForeignKey(HostResource.class, "ns1.example.tld", clock.nowUtc()).get();
|
||||||
addedHost = loadByForeignKey(HostResource.class, "ns2.example.tld", clock.nowUtc()).get();
|
addedHost = loadByForeignKey(HostResource.class, "ns2.example.tld", clock.nowUtc()).get();
|
||||||
assertThat(existingHost.getSuperordinateDomain()).isEqualTo(Key.create(domain));
|
assertThat(existingHost.getSuperordinateDomain()).isEqualTo(Key.create(domain));
|
||||||
assertThat(addedHost.getSuperordinateDomain()).isEqualTo(Key.create(domain));
|
assertThat(addedHost.getSuperordinateDomain()).isEqualTo(Key.create(domain));
|
||||||
|
|
|
@ -30,6 +30,7 @@ import static google.registry.testing.DatastoreHelper.persistReservedList;
|
||||||
import static google.registry.testing.JUnitBackports.assertThrows;
|
import static google.registry.testing.JUnitBackports.assertThrows;
|
||||||
import static google.registry.util.DateTimeUtils.END_OF_TIME;
|
import static google.registry.util.DateTimeUtils.END_OF_TIME;
|
||||||
import static google.registry.util.DateTimeUtils.START_OF_TIME;
|
import static google.registry.util.DateTimeUtils.START_OF_TIME;
|
||||||
|
import static java.math.BigDecimal.ROUND_UNNECESSARY;
|
||||||
import static org.joda.money.CurrencyUnit.EUR;
|
import static org.joda.money.CurrencyUnit.EUR;
|
||||||
import static org.joda.money.CurrencyUnit.USD;
|
import static org.joda.money.CurrencyUnit.USD;
|
||||||
|
|
||||||
|
@ -497,7 +498,7 @@ public class RegistryTest extends EntityTestCase {
|
||||||
@Test
|
@Test
|
||||||
public void testEapFee_undefined() {
|
public void testEapFee_undefined() {
|
||||||
assertThat(Registry.get("tld").getEapFeeFor(clock.nowUtc()).getCost())
|
assertThat(Registry.get("tld").getEapFeeFor(clock.nowUtc()).getCost())
|
||||||
.isEqualTo(BigDecimal.ZERO.setScale(2));
|
.isEqualTo(BigDecimal.ZERO.setScale(2, ROUND_UNNECESSARY));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -514,7 +515,7 @@ public class RegistryTest extends EntityTestCase {
|
||||||
assertThat(registry.getEapFeeFor(clock.nowUtc()).getCost())
|
assertThat(registry.getEapFeeFor(clock.nowUtc()).getCost())
|
||||||
.isEqualTo(new BigDecimal("100.00"));
|
.isEqualTo(new BigDecimal("100.00"));
|
||||||
assertThat(registry.getEapFeeFor(clock.nowUtc().minusDays(2)).getCost())
|
assertThat(registry.getEapFeeFor(clock.nowUtc().minusDays(2)).getCost())
|
||||||
.isEqualTo(BigDecimal.ZERO.setScale(2));
|
.isEqualTo(BigDecimal.ZERO.setScale(2, ROUND_UNNECESSARY));
|
||||||
assertThat(registry.getEapFeeFor(clock.nowUtc().plusDays(2)).getCost())
|
assertThat(registry.getEapFeeFor(clock.nowUtc().plusDays(2)).getCost())
|
||||||
.isEqualTo(new BigDecimal("50.00"));
|
.isEqualTo(new BigDecimal("50.00"));
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,7 +88,8 @@ public class FrontendMetricsTest {
|
||||||
.and()
|
.and()
|
||||||
.hasNoOtherValues();
|
.hasNoOtherValues();
|
||||||
|
|
||||||
ChannelFuture unusedFuture = channel1.close();
|
@SuppressWarnings("unused")
|
||||||
|
ChannelFuture unusedFuture1 = channel1.close();
|
||||||
assertThat(channel1.isActive()).isFalse();
|
assertThat(channel1.isActive()).isFalse();
|
||||||
assertThat(FrontendMetrics.activeConnectionsGauge)
|
assertThat(FrontendMetrics.activeConnectionsGauge)
|
||||||
.hasValueForLabels(1, PROTOCOL, CERT_HASH)
|
.hasValueForLabels(1, PROTOCOL, CERT_HASH)
|
||||||
|
@ -99,7 +100,8 @@ public class FrontendMetricsTest {
|
||||||
.and()
|
.and()
|
||||||
.hasNoOtherValues();
|
.hasNoOtherValues();
|
||||||
|
|
||||||
unusedFuture = channel2.close();
|
@SuppressWarnings("unused")
|
||||||
|
ChannelFuture unusedFuture2 = channel2.close();
|
||||||
assertThat(channel2.isActive()).isFalse();
|
assertThat(channel2.isActive()).isFalse();
|
||||||
assertThat(FrontendMetrics.activeConnectionsGauge).hasNoOtherValues();
|
assertThat(FrontendMetrics.activeConnectionsGauge).hasNoOtherValues();
|
||||||
assertThat(FrontendMetrics.totalConnectionsCounter)
|
assertThat(FrontendMetrics.totalConnectionsCounter)
|
||||||
|
|
|
@ -46,6 +46,7 @@ import google.registry.model.domain.secdns.DelegationSignerData;
|
||||||
import google.registry.model.eppcommon.StatusValue;
|
import google.registry.model.eppcommon.StatusValue;
|
||||||
import google.registry.model.host.HostResource;
|
import google.registry.model.host.HostResource;
|
||||||
import google.registry.model.poll.PollMessage;
|
import google.registry.model.poll.PollMessage;
|
||||||
|
import google.registry.model.poll.PollMessage.Autorenew;
|
||||||
import google.registry.model.reporting.HistoryEntry;
|
import google.registry.model.reporting.HistoryEntry;
|
||||||
import google.registry.model.transfer.TransferData;
|
import google.registry.model.transfer.TransferData;
|
||||||
import google.registry.model.transfer.TransferStatus;
|
import google.registry.model.transfer.TransferStatus;
|
||||||
|
@ -377,9 +378,9 @@ public class XjcToDomainBaseConverterTest {
|
||||||
// First import in a transaction, then verify in another transaction.
|
// First import in a transaction, then verify in another transaction.
|
||||||
// Ancestor queries don't work within the same transaction.
|
// Ancestor queries don't work within the same transaction.
|
||||||
DomainBase domain = persistResource(convertDomainInTransaction(xjcDomain));
|
DomainBase domain = persistResource(convertDomainInTransaction(xjcDomain));
|
||||||
PollMessage pollMessage = ofy().load().key(domain.getAutorenewPollMessage()).now();
|
Autorenew pollMessage = ofy().load().key(domain.getAutorenewPollMessage()).now();
|
||||||
assertThat(pollMessage).isInstanceOf(PollMessage.Autorenew.class);
|
assertThat(pollMessage).isInstanceOf(PollMessage.Autorenew.class);
|
||||||
assertThat(((PollMessage.Autorenew) pollMessage).getTargetId()).isEqualTo(xjcDomain.getRoid());
|
assertThat(pollMessage.getTargetId()).isEqualTo(xjcDomain.getRoid());
|
||||||
assertThat(pollMessage.getClientId()).isEqualTo("RegistrarX");
|
assertThat(pollMessage.getClientId()).isEqualTo("RegistrarX");
|
||||||
assertThat(pollMessage.getEventTime()).isEqualTo(xjcDomain.getExDate());
|
assertThat(pollMessage.getEventTime()).isEqualTo(xjcDomain.getExDate());
|
||||||
assertThat(pollMessage.getMsg()).isEqualTo("Domain was auto-renewed.");
|
assertThat(pollMessage.getMsg()).isEqualTo("Domain was auto-renewed.");
|
||||||
|
|
|
@ -290,10 +290,12 @@ public final class AppEngineRule extends ExternalResource {
|
||||||
|
|
||||||
if (withUserService) {
|
if (withUserService) {
|
||||||
// Set top-level properties on LocalServiceTestConfig for user login.
|
// Set top-level properties on LocalServiceTestConfig for user login.
|
||||||
helper.setEnvIsLoggedIn(userInfo.isLoggedIn())
|
helper
|
||||||
|
.setEnvIsLoggedIn(userInfo.isLoggedIn())
|
||||||
// This envAttributes thing is the only way to set userId.
|
// This envAttributes thing is the only way to set userId.
|
||||||
// see https://code.google.com/p/googleappengine/issues/detail?id=3579
|
// see https://code.google.com/p/googleappengine/issues/detail?id=3579
|
||||||
.setEnvAttributes(ImmutableMap.<String, Object>of(
|
.setEnvAttributes(
|
||||||
|
ImmutableMap.of(
|
||||||
"com.google.appengine.api.users.UserService.user_id_key", userInfo.gaeUserId()))
|
"com.google.appengine.api.users.UserService.user_id_key", userInfo.gaeUserId()))
|
||||||
.setEnvAuthDomain(userInfo.authDomain())
|
.setEnvAuthDomain(userInfo.authDomain())
|
||||||
.setEnvEmail(userInfo.email())
|
.setEnvEmail(userInfo.email())
|
||||||
|
|
|
@ -26,7 +26,7 @@ public class FakeLockHandler implements LockHandler {
|
||||||
|
|
||||||
private static final long serialVersionUID = 6437880915118738492L;
|
private static final long serialVersionUID = 6437880915118738492L;
|
||||||
|
|
||||||
boolean lockSucceeds = true;
|
boolean lockSucceeds;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param lockSucceeds if true - the lock acquisition will succeed and the callable will be
|
* @param lockSucceeds if true - the lock acquisition will succeed and the callable will be
|
||||||
|
|
|
@ -23,6 +23,7 @@ import static google.registry.testing.DatastoreHelper.persistPremiumList;
|
||||||
import static google.registry.testing.DatastoreHelper.persistReservedList;
|
import static google.registry.testing.DatastoreHelper.persistReservedList;
|
||||||
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;
|
||||||
|
import static java.math.BigDecimal.ROUND_UNNECESSARY;
|
||||||
import static org.joda.money.CurrencyUnit.JPY;
|
import static org.joda.money.CurrencyUnit.JPY;
|
||||||
import static org.joda.money.CurrencyUnit.USD;
|
import static org.joda.money.CurrencyUnit.USD;
|
||||||
import static org.joda.time.DateTimeZone.UTC;
|
import static org.joda.time.DateTimeZone.UTC;
|
||||||
|
@ -135,7 +136,7 @@ public class CreateTldCommandTest extends CommandTestCase<CreateTldCommand> {
|
||||||
|
|
||||||
Registry registry = Registry.get("xn--q9jyb4c");
|
Registry registry = Registry.get("xn--q9jyb4c");
|
||||||
assertThat(registry.getEapFeeFor(now.minusHours(1)).getCost())
|
assertThat(registry.getEapFeeFor(now.minusHours(1)).getCost())
|
||||||
.isEqualTo(BigDecimal.ZERO.setScale(2));
|
.isEqualTo(BigDecimal.ZERO.setScale(2, ROUND_UNNECESSARY));
|
||||||
assertThat(registry.getEapFeeFor(now.plusHours(1)).getCost())
|
assertThat(registry.getEapFeeFor(now.plusHours(1)).getCost())
|
||||||
.isEqualTo(new BigDecimal("50.00"));
|
.isEqualTo(new BigDecimal("50.00"));
|
||||||
assertThat(registry.getEapFeeFor(now.plusDays(1).plusHours(1)).getCost())
|
assertThat(registry.getEapFeeFor(now.plusDays(1).plusHours(1)).getCost())
|
||||||
|
|
|
@ -36,10 +36,11 @@ import org.mockito.ArgumentCaptor;
|
||||||
/**
|
/**
|
||||||
* Class for verifying EPP commands sent to the server via the tool endpoint.
|
* Class for verifying EPP commands sent to the server via the tool endpoint.
|
||||||
*
|
*
|
||||||
* <p>Provides its own (mock) {@link Connection} that will be monitored for EPP transmission. This
|
* <p>Provides its own (mock) {@link AppEngineConnection} that will be monitored for EPP
|
||||||
* Connection needs to be registered with the tool endpoint - something like this:
|
* transmission. This Connection needs to be registered with the tool endpoint - something like
|
||||||
|
* this:
|
||||||
*
|
*
|
||||||
* <pre> {@code
|
* <pre>{@code
|
||||||
* SomeToolCommand command = ...;
|
* SomeToolCommand command = ...;
|
||||||
* EppToolVerifier eppToolVerifier = EppToolVerifier.create(command);
|
* EppToolVerifier eppToolVerifier = EppToolVerifier.create(command);
|
||||||
* // run command...
|
* // run command...
|
||||||
|
|
|
@ -20,7 +20,6 @@ import static google.registry.testing.DatastoreHelper.persistResource;
|
||||||
import static google.registry.testing.TaskQueueHelper.assertNoTasksEnqueued;
|
import static google.registry.testing.TaskQueueHelper.assertNoTasksEnqueued;
|
||||||
import static google.registry.testing.TaskQueueHelper.assertTasksEnqueued;
|
import static google.registry.testing.TaskQueueHelper.assertTasksEnqueued;
|
||||||
import static google.registry.testing.TestDataHelper.loadFile;
|
import static google.registry.testing.TestDataHelper.loadFile;
|
||||||
import static java.util.Arrays.asList;
|
|
||||||
import static org.mockito.Matchers.anyInt;
|
import static org.mockito.Matchers.anyInt;
|
||||||
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.never;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
|
@ -108,7 +107,7 @@ public class RegistrarSettingsActionTest extends RegistrarSettingsActionTestCase
|
||||||
.containsExactly(
|
.containsExactly(
|
||||||
"status", "SUCCESS",
|
"status", "SUCCESS",
|
||||||
"message", "Success",
|
"message", "Success",
|
||||||
"results", asList(loadRegistrar(CLIENT_ID).toJsonMap()));
|
"results", ImmutableList.of(loadRegistrar(CLIENT_ID).toJsonMap()));
|
||||||
assertMetric(CLIENT_ID, "read", "[OWNER]", "SUCCESS");
|
assertMetric(CLIENT_ID, "read", "[OWNER]", "SUCCESS");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -164,7 +163,7 @@ public class RegistrarSettingsActionTest extends RegistrarSettingsActionTestCase
|
||||||
assertThat(response).containsExactly(
|
assertThat(response).containsExactly(
|
||||||
"status", "SUCCESS",
|
"status", "SUCCESS",
|
||||||
"message", "Saved TheRegistrar",
|
"message", "Saved TheRegistrar",
|
||||||
"results", asList(loadRegistrar(CLIENT_ID).toJsonMap()));
|
"results", ImmutableList.of(loadRegistrar(CLIENT_ID).toJsonMap()));
|
||||||
assertMetric(CLIENT_ID, "update", "[OWNER]", "SUCCESS");
|
assertMetric(CLIENT_ID, "update", "[OWNER]", "SUCCESS");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -285,7 +284,7 @@ public class RegistrarSettingsActionTest extends RegistrarSettingsActionTestCase
|
||||||
// This role is authorized to perform this change, make sure the change succeeded
|
// This role is authorized to perform this change, make sure the change succeeded
|
||||||
// We got a success result:
|
// We got a success result:
|
||||||
assertThat(response).containsEntry("status", "SUCCESS");
|
assertThat(response).containsEntry("status", "SUCCESS");
|
||||||
assertThat(response).containsEntry("results", asList(updatedRegistrar.toJsonMap()));
|
assertThat(response).containsEntry("results", ImmutableList.of(updatedRegistrar.toJsonMap()));
|
||||||
// The updatedRegistrar had its value changed:
|
// The updatedRegistrar had its value changed:
|
||||||
// (We check it separately from the next assert to get better error message on failure)
|
// (We check it separately from the next assert to get better error message on failure)
|
||||||
assertThat(getter.apply(updatedRegistrar)).isEqualTo(newValue);
|
assertThat(getter.apply(updatedRegistrar)).isEqualTo(newValue);
|
||||||
|
@ -467,7 +466,7 @@ public class RegistrarSettingsActionTest extends RegistrarSettingsActionTestCase
|
||||||
.containsExactly(
|
.containsExactly(
|
||||||
"status", "SUCCESS",
|
"status", "SUCCESS",
|
||||||
"message", "Saved TheRegistrar",
|
"message", "Saved TheRegistrar",
|
||||||
"results", asList(loadRegistrar(CLIENT_ID).toJsonMap()));
|
"results", ImmutableList.of(loadRegistrar(CLIENT_ID).toJsonMap()));
|
||||||
assertMetric(CLIENT_ID, "update", "[OWNER]", "SUCCESS");
|
assertMetric(CLIENT_ID, "update", "[OWNER]", "SUCCESS");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,8 +22,8 @@ import static google.registry.testing.CertificateSamples.SAMPLE_CERT_HASH;
|
||||||
import static google.registry.testing.DatastoreHelper.loadRegistrar;
|
import static google.registry.testing.DatastoreHelper.loadRegistrar;
|
||||||
import static google.registry.testing.DatastoreHelper.persistResource;
|
import static google.registry.testing.DatastoreHelper.persistResource;
|
||||||
import static google.registry.util.DateTimeUtils.START_OF_TIME;
|
import static google.registry.util.DateTimeUtils.START_OF_TIME;
|
||||||
import static java.util.Arrays.asList;
|
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
import google.registry.model.registrar.Registrar;
|
import google.registry.model.registrar.Registrar;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -52,7 +52,7 @@ public class SecuritySettingsTest extends RegistrarSettingsActionTestCase {
|
||||||
"id", CLIENT_ID,
|
"id", CLIENT_ID,
|
||||||
"args", modified.toJsonMap()));
|
"args", modified.toJsonMap()));
|
||||||
assertThat(response).containsEntry("status", "SUCCESS");
|
assertThat(response).containsEntry("status", "SUCCESS");
|
||||||
assertThat(response).containsEntry("results", asList(modified.toJsonMap()));
|
assertThat(response).containsEntry("results", ImmutableList.of(modified.toJsonMap()));
|
||||||
assertThat(loadRegistrar(CLIENT_ID)).isEqualTo(modified);
|
assertThat(loadRegistrar(CLIENT_ID)).isEqualTo(modified);
|
||||||
assertMetric(CLIENT_ID, "update", "[OWNER]", "SUCCESS");
|
assertMetric(CLIENT_ID, "update", "[OWNER]", "SUCCESS");
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,6 @@ package google.registry.ui.server.registrar;
|
||||||
import static com.google.common.base.Strings.repeat;
|
import static com.google.common.base.Strings.repeat;
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
import static google.registry.testing.DatastoreHelper.loadRegistrar;
|
import static google.registry.testing.DatastoreHelper.loadRegistrar;
|
||||||
import static java.util.Arrays.asList;
|
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
|
@ -59,7 +58,7 @@ public class WhoisSettingsTest extends RegistrarSettingsActionTestCase {
|
||||||
action.handleJsonRequest(
|
action.handleJsonRequest(
|
||||||
ImmutableMap.of("op", "update", "id", CLIENT_ID, "args", modified.toJsonMap()));
|
ImmutableMap.of("op", "update", "id", CLIENT_ID, "args", modified.toJsonMap()));
|
||||||
assertThat(response.get("status")).isEqualTo("SUCCESS");
|
assertThat(response.get("status")).isEqualTo("SUCCESS");
|
||||||
assertThat(response.get("results")).isEqualTo(asList(modified.toJsonMap()));
|
assertThat(response.get("results")).isEqualTo(ImmutableList.of(modified.toJsonMap()));
|
||||||
assertThat(loadRegistrar(CLIENT_ID)).isEqualTo(modified);
|
assertThat(loadRegistrar(CLIENT_ID)).isEqualTo(modified);
|
||||||
assertMetric(CLIENT_ID, "update", "[OWNER]", "SUCCESS");
|
assertMetric(CLIENT_ID, "update", "[OWNER]", "SUCCESS");
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,8 +67,6 @@ public class CidrAddressBlockTest extends TestCase {
|
||||||
assertEquals(32, b1.getNetmask());
|
assertEquals(32, b1.getNetmask());
|
||||||
b1 = new CidrAddressBlock("2001:db8::1");
|
b1 = new CidrAddressBlock("2001:db8::1");
|
||||||
assertEquals(128, b1.getNetmask());
|
assertEquals(128, b1.getNetmask());
|
||||||
b1 = new CidrAddressBlock("3ffe::/16");
|
|
||||||
|
|
||||||
b1 = new CidrAddressBlock(InetAddresses.forString("5ffe::1"));
|
b1 = new CidrAddressBlock(InetAddresses.forString("5ffe::1"));
|
||||||
assertEquals(128, b1.getNetmask());
|
assertEquals(128, b1.getNetmask());
|
||||||
assertEquals("5ffe:0:0:0:0:0:0:1", b1.getIp());
|
assertEquals("5ffe:0:0:0:0:0:0:1", b1.getIp());
|
||||||
|
|
|
@ -19,6 +19,7 @@ import static google.registry.testing.JUnitBackports.assertThrows;
|
||||||
import static java.nio.charset.StandardCharsets.UTF_8;
|
import static java.nio.charset.StandardCharsets.UTF_8;
|
||||||
import static java.util.Arrays.asList;
|
import static java.util.Arrays.asList;
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
|
@ -60,7 +61,7 @@ public class TeeOutputStreamTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testWriteInteger_failsAfterClose() throws Exception {
|
public void testWriteInteger_failsAfterClose() throws Exception {
|
||||||
OutputStream tee = new TeeOutputStream(asList(outputA));
|
OutputStream tee = new TeeOutputStream(ImmutableList.of(outputA));
|
||||||
tee.close();
|
tee.close();
|
||||||
IllegalStateException thrown = assertThrows(IllegalStateException.class, () -> tee.write(1));
|
IllegalStateException thrown = assertThrows(IllegalStateException.class, () -> tee.write(1));
|
||||||
assertThat(thrown).hasMessageThat().contains("outputstream closed");
|
assertThat(thrown).hasMessageThat().contains("outputstream closed");
|
||||||
|
@ -68,7 +69,7 @@ public class TeeOutputStreamTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testWriteByteArray_failsAfterClose() throws Exception {
|
public void testWriteByteArray_failsAfterClose() throws Exception {
|
||||||
OutputStream tee = new TeeOutputStream(asList(outputA));
|
OutputStream tee = new TeeOutputStream(ImmutableList.of(outputA));
|
||||||
tee.close();
|
tee.close();
|
||||||
IllegalStateException thrown =
|
IllegalStateException thrown =
|
||||||
assertThrows(IllegalStateException.class, () -> tee.write("hello".getBytes(UTF_8)));
|
assertThrows(IllegalStateException.class, () -> tee.write("hello".getBytes(UTF_8)));
|
||||||
|
@ -77,7 +78,7 @@ public class TeeOutputStreamTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testWriteByteSubarray_failsAfterClose() throws Exception {
|
public void testWriteByteSubarray_failsAfterClose() throws Exception {
|
||||||
OutputStream tee = new TeeOutputStream(asList(outputA));
|
OutputStream tee = new TeeOutputStream(ImmutableList.of(outputA));
|
||||||
tee.close();
|
tee.close();
|
||||||
IllegalStateException thrown =
|
IllegalStateException thrown =
|
||||||
assertThrows(IllegalStateException.class, () -> tee.write("hello".getBytes(UTF_8), 1, 3));
|
assertThrows(IllegalStateException.class, () -> tee.write("hello".getBytes(UTF_8), 1, 3));
|
||||||
|
|
|
@ -139,8 +139,7 @@ public class XmlTestUtils {
|
||||||
}
|
}
|
||||||
// First, handle all namespace specifications, updating our ns-to-URI map. Use a HashMap
|
// First, handle all namespace specifications, updating our ns-to-URI map. Use a HashMap
|
||||||
// rather than an ImmutableMap.Builder so that we can override existing map entries.
|
// rather than an ImmutableMap.Builder so that we can override existing map entries.
|
||||||
HashMap<String, String> newNsMap = new HashMap<>();
|
HashMap<String, String> newNsMap = new HashMap<>(nsMap);
|
||||||
newNsMap.putAll(nsMap);
|
|
||||||
for (String key : namespacesBuilder.build()) {
|
for (String key : namespacesBuilder.build()) {
|
||||||
// Parse the attribute name, of the form xmlns:nsid, and extract the namespace identifier.
|
// Parse the attribute name, of the form xmlns:nsid, and extract the namespace identifier.
|
||||||
// If there's no colon, we are setting the default namespace.
|
// If there's no colon, we are setting the default namespace.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue