mirror of
https://github.com/google/nomulus.git
synced 2025-07-22 10:46:10 +02:00
Fix premium list command regressions
This CL fixes bugs introduced when the premium list commands were moved to be server-side commands. Fixes: - omitting the --name parameter actually works now; before it was failing in the local build() call since it uses the name as the @Id and tries to create a key for PremiumListRevision, but key IDs cannot be null. - premium list data larger than about 2K works now (see [] before it was stuffing the list data all into a POST query parameter, and URLs of more than 2K in length were all getting 404s. Fix was changing it to put the inputData param in the POST body. - misc test cleanup ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=119912494
This commit is contained in:
parent
625c34662b
commit
f20b1d89a9
4 changed files with 86 additions and 38 deletions
|
@ -14,34 +14,51 @@
|
|||
|
||||
package com.google.domain.registry.tools;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static java.nio.charset.StandardCharsets.UTF_8;
|
||||
import static org.mockito.Matchers.eq;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.common.io.Files;
|
||||
import com.google.common.net.MediaType;
|
||||
import com.google.domain.registry.testing.UriParameters;
|
||||
import com.google.domain.registry.tools.ServerSideCommand.Connection;
|
||||
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Captor;
|
||||
|
||||
import java.io.File;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
/**
|
||||
* Base class for common testing setup for create and update commands for Premium Lists.
|
||||
*/
|
||||
public final class CreateOrUpdatePremiumListCommandTestCase {
|
||||
public abstract class CreateOrUpdatePremiumListCommandTestCase<
|
||||
T extends CreateOrUpdatePremiumListCommand> extends CommandTestCase<T> {
|
||||
|
||||
@Captor
|
||||
ArgumentCaptor<ImmutableMap<String, String>> urlParamCaptor;
|
||||
|
||||
@Captor
|
||||
ArgumentCaptor<byte[]> requestBodyCaptor;
|
||||
|
||||
static String generateInputData(String premiumTermsPath) throws Exception {
|
||||
Path inputFile = Paths.get(premiumTermsPath);
|
||||
String data = new String(java.nio.file.Files.readAllBytes(inputFile));
|
||||
return data;
|
||||
return Files.toString(new File(premiumTermsPath), StandardCharsets.UTF_8);
|
||||
}
|
||||
|
||||
static void verifySentParams(
|
||||
void verifySentParams(
|
||||
Connection connection, String path, ImmutableMap<String, String> parameterMap)
|
||||
throws Exception {
|
||||
verify(connection).send(
|
||||
eq(path),
|
||||
eq(parameterMap),
|
||||
eq(MediaType.PLAIN_TEXT_UTF_8),
|
||||
eq(new byte[0]));
|
||||
urlParamCaptor.capture(),
|
||||
eq(MediaType.FORM_DATA),
|
||||
requestBodyCaptor.capture());
|
||||
assertThat(new ImmutableMap.Builder<String, String>()
|
||||
.putAll(urlParamCaptor.getValue())
|
||||
.putAll(UriParameters.parse(new String(requestBodyCaptor.getValue(), UTF_8)).entries())
|
||||
.build())
|
||||
.containsExactlyEntriesIn(parameterMap);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue