Daggerize TMCH/signed mark util classes

This allows them to support injectable configuration.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=143709052
This commit is contained in:
mcilwain 2017-01-05 14:26:18 -08:00 committed by Ben McIlwain
parent 534e3ba01c
commit c05424b947
19 changed files with 242 additions and 165 deletions

View file

@ -26,7 +26,6 @@ import google.registry.flows.EppTestComponent.FakesAndMocksModule;
import google.registry.model.registrar.Registrar;
import google.registry.model.registry.Registry;
import google.registry.testing.AppEngineRule;
import google.registry.testing.FakeClock;
import google.registry.testing.FakeResponse;
import java.util.Map;
import org.json.simple.JSONValue;
@ -63,7 +62,7 @@ public class CheckApiActionTest {
action.response = new FakeResponse();
action.config = RegistryEnvironment.UNITTEST.config();
action.eppController = DaggerEppTestComponent.builder()
.fakesAndMocksModule(new FakesAndMocksModule(new FakeClock()))
.fakesAndMocksModule(new FakesAndMocksModule())
.build()
.startRequest()
.eppController();

View file

@ -71,7 +71,7 @@ public class EppCommitLogsTest extends ShardableTestCase {
SessionMetadata sessionMetadata = new HttpSessionMetadata(new FakeHttpSession());
sessionMetadata.setClientId("TheRegistrar");
DaggerEppTestComponent.builder()
.fakesAndMocksModule(new FakesAndMocksModule(clock))
.fakesAndMocksModule(new FakesAndMocksModule(clock, true))
.build()
.startRequest()
.flowComponentBuilder()

View file

@ -114,7 +114,7 @@ public class EppTestCase extends ShardableTestCase {
FakeResponse response = new FakeResponse();
handler.response = response;
handler.eppController = DaggerEppTestComponent.builder()
.fakesAndMocksModule(new FakesAndMocksModule(clock))
.fakesAndMocksModule(new FakesAndMocksModule(clock, true))
.build()
.startRequest()
.eppController();

View file

@ -31,6 +31,8 @@ import google.registry.monitoring.whitebox.EppMetric;
import google.registry.request.RequestScope;
import google.registry.testing.FakeClock;
import google.registry.testing.FakeSleeper;
import google.registry.tmch.TmchCertificateAuthority;
import google.registry.tmch.TmchXmlSignature;
import google.registry.util.Clock;
import google.registry.util.Sleeper;
import javax.inject.Singleton;
@ -58,9 +60,15 @@ interface EppTestComponent {
final ModulesService modulesService;
final Sleeper sleeper;
FakesAndMocksModule(FakeClock clock) {
FakesAndMocksModule() {
this(new FakeClock(), true);
}
FakesAndMocksModule(FakeClock clock, boolean tmchCaTestingMode) {
this.clock = clock;
this.domainFlowTmchUtils = new DomainFlowTmchUtils();
this.domainFlowTmchUtils =
new DomainFlowTmchUtils(
new TmchXmlSignature(new TmchCertificateAuthority(tmchCaTestingMode)));
this.sleeper = new FakeSleeper(clock);
this.dnsQueue = DnsQueue.create();
this.metricBuilder = EppMetric.builderForRequest("request-id-1", clock);

View file

@ -277,7 +277,7 @@ public abstract class FlowTestCase<F extends Flow> extends ShardableTestCase {
.isEqualTo(new TypeInstantiator<F>(getClass()){}.getExactType());
// Run the flow.
return DaggerEppTestComponent.builder()
.fakesAndMocksModule(new FakesAndMocksModule(clock))
.fakesAndMocksModule(new FakesAndMocksModule(clock, tmchCaTestingMode))
.build()
.startRequest()
.flowComponentBuilder()
@ -339,6 +339,12 @@ public abstract class FlowTestCase<F extends Flow> extends ShardableTestCase {
return output;
}
private boolean tmchCaTestingMode = true;
protected void useTmchProdCert() {
tmchCaTestingMode = false;
}
public EppOutput dryRunFlowAssertResponse(String xml, String... ignoredPaths) throws Exception {
List<Object> beforeEntities = ofy().load().list();
EppOutput output =

View file

@ -282,7 +282,6 @@ public class DomainApplicationCreateFlowTest
setEppInput("domain_create_sunrush_encoded_signed_mark.xml");
persistContactsAndHosts();
clock.advanceOneMilli();
clock.setTo(DateTime.parse("2012-07-26T00:01:00Z"));
clock.setTo(DateTime.parse("2012-07-22T00:01:00Z"));
thrown.expect(SignedMarkCertificateNotYetValidException.class);
runFlow();
@ -291,7 +290,7 @@ public class DomainApplicationCreateFlowTest
@Test
@Ignore("I'm not sure how to get this to throw without creating a custom CA / certs")
public void testFailure_signedMarkCertificateCorrupt() throws Exception {
configRule.useTmchProdCert();
useTmchProdCert();
createTld("tld", TldState.SUNRUSH);
setEppInput("domain_create_sunrush_encoded_signed_mark_certificate_corrupt.xml");
persistContactsAndHosts();
@ -302,7 +301,7 @@ public class DomainApplicationCreateFlowTest
@Test
public void testFailure_signedMarkCertificateSignature() throws Exception {
configRule.useTmchProdCert();
useTmchProdCert();
createTld("tld", TldState.SUNRUSH);
setEppInput("domain_create_sunrush_encoded_signed_mark.xml");
persistContactsAndHosts();