mirror of
https://github.com/google/nomulus.git
synced 2025-05-16 09:27:16 +02:00
Change the LoadTestAction to use /_dr/epptool
The load tests used to directly build EPP, but that becomes problematic for an upcoming CL that refactors a lot of the EPP flow code. Instead, use the existing tool endpoint (conveniently, LoadTestAction is already in the tools module). This required changing the EppToolServlet to get its xml from a param rather than from the request payload, since task queues won't allow both a payload and request params on the same task. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=124351878
This commit is contained in:
parent
5a2f63cf58
commit
366c5a344d
19 changed files with 227 additions and 255 deletions
|
@ -14,30 +14,13 @@
|
|||
|
||||
package google.registry.tools;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static google.registry.flows.EppServletUtils.APPLICATION_EPP_XML_UTF8;
|
||||
import static google.registry.testing.DatastoreHelper.createTlds;
|
||||
import static google.registry.util.ResourceUtils.readResourceUtf8;
|
||||
import static google.registry.xml.XmlTestUtils.assertXmlEquals;
|
||||
import static java.nio.charset.StandardCharsets.UTF_8;
|
||||
import static java.util.Arrays.binarySearch;
|
||||
import static org.mockito.Matchers.eq;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
|
||||
import google.registry.testing.InjectRule;
|
||||
import google.registry.tools.ServerSideCommand.Connection;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Captor;
|
||||
import org.mockito.Mock;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Abstract class for commands that construct + send EPP commands.
|
||||
*
|
||||
|
@ -45,70 +28,18 @@ import java.util.List;
|
|||
*/
|
||||
public abstract class EppToolCommandTestCase<C extends EppToolCommand> extends CommandTestCase<C> {
|
||||
|
||||
@Rule
|
||||
public InjectRule inject = new InjectRule();
|
||||
|
||||
@Mock
|
||||
Connection connection;
|
||||
|
||||
@Captor
|
||||
ArgumentCaptor<byte[]> xml;
|
||||
|
||||
@Before
|
||||
public void init() throws Exception {
|
||||
// Create two TLDs for commands that allow multiple TLDs at once.
|
||||
createTlds("tld", "tld2");
|
||||
command.setConnection(connection);
|
||||
initEppToolCommandTestCase();
|
||||
}
|
||||
|
||||
/** Subclasses can override this to perform additional initialization. */
|
||||
void initEppToolCommandTestCase() throws Exception {}
|
||||
|
||||
/** Helper to get a new {@link EppVerifier} instance. */
|
||||
EppVerifier eppVerifier() {
|
||||
return new EppVerifier("NewRegistrar", false, false);
|
||||
}
|
||||
|
||||
/** Class for verifying EPP commands sent to the server. */
|
||||
class EppVerifier {
|
||||
|
||||
private final String clientIdentifier;
|
||||
private final boolean superuser;
|
||||
private final boolean dryRun;
|
||||
|
||||
private EppVerifier(String clientIdentifier, boolean superuser, boolean dryRun) {
|
||||
this.clientIdentifier = clientIdentifier;
|
||||
this.superuser = superuser;
|
||||
this.dryRun = dryRun;
|
||||
}
|
||||
|
||||
EppVerifier setClientIdentifier(String clientIdentifier) {
|
||||
return new EppVerifier(clientIdentifier, superuser, dryRun);
|
||||
}
|
||||
|
||||
EppVerifier asSuperuser() {
|
||||
return new EppVerifier(clientIdentifier, true, dryRun);
|
||||
}
|
||||
|
||||
EppVerifier asDryRun() {
|
||||
return new EppVerifier(clientIdentifier, superuser, true);
|
||||
}
|
||||
|
||||
void verifySent(String... filesToMatch) throws Exception {
|
||||
ImmutableMap<String, ?> params = ImmutableMap.of(
|
||||
"clientIdentifier", clientIdentifier,
|
||||
"superuser", superuser,
|
||||
"dryRun", dryRun);
|
||||
verify(connection, times(filesToMatch.length))
|
||||
.send(eq("/_dr/epptool"), eq(params), eq(APPLICATION_EPP_XML_UTF8), xml.capture());
|
||||
List<byte[]> capturedXml = xml.getAllValues();
|
||||
assertThat(filesToMatch).hasLength(capturedXml.size());
|
||||
for (String fileToMatch : filesToMatch) {
|
||||
assertXmlEquals(
|
||||
readResourceUtf8(getClass(), fileToMatch),
|
||||
new String(capturedXml.get(binarySearch(filesToMatch, fileToMatch)), UTF_8));
|
||||
}
|
||||
}
|
||||
/** Helper to get a new {@link EppToolVerifier} instance. */
|
||||
EppToolVerifier eppVerifier() {
|
||||
return new EppToolVerifier().withConnection(connection).withClientIdentifier("NewRegistrar");
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue