diff options
author | Harald Musum <musum@yahoo-inc.com> | 2016-12-07 09:15:16 +0100 |
---|---|---|
committer | Harald Musum <musum@yahoo-inc.com> | 2016-12-07 09:15:16 +0100 |
commit | 39ea43088d8fa0ccd33916953001e5185760e982 (patch) | |
tree | 77df9e8a40d08fdfbb567b53f2b1e0f7669f1306 /configserver | |
parent | 94e5ce4291236d97b3dbcc45591efcd977902b49 (diff) |
Refactoring test component registry and mock file distribution
* Make it possible to sepcify config server config and provisioner
* Make sure that we inject (mock) curator to file distribution mock
so that we don't end up testing with two different curator instances
Diffstat (limited to 'configserver')
2 files changed, 25 insertions, 4 deletions
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java b/configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java index 5772f46b6b9..22e3dbd9823 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java @@ -91,11 +91,16 @@ public class TestComponentRegistry implements GlobalComponentRegistry { private MockTenantListener tenantListener = new MockTenantListener(); private Optional<PermanentApplicationPackage> permanentApplicationPackage = Optional.empty(); private HostRegistries hostRegistries = new HostRegistries(); - private FileDistributionFactory fileDistributionFactory = new MockFileDistributionFactory(); + private Optional<FileDistributionFactory> fileDistributionFactory = Optional.empty(); private ModelFactoryRegistry modelFactoryRegistry = new ModelFactoryRegistry(Collections.singletonList(new VespaModelFactory(new NullConfigModelRegistry()))); private Optional<Provisioner> hostProvisioner = Optional.empty(); + public Builder configServerConfig(ConfigserverConfig configserverConfig) { + this.configserverConfig = configserverConfig; + return this; + } + public Builder curator(Curator curator) { this.curator = curator; return this; @@ -121,16 +126,26 @@ public class TestComponentRegistry implements GlobalComponentRegistry { return this; } + public Builder provisioner(Provisioner provisioner) { + this.hostProvisioner = Optional.ofNullable(provisioner); + return this; + } + public TestComponentRegistry build() { final PermanentApplicationPackage permApp = this.permanentApplicationPackage .orElse(new PermanentApplicationPackage(configserverConfig)); + FileDistributionFactory fileDistributionFactory = this.fileDistributionFactory + .orElse(new MockFileDistributionFactory(curator)); + HostProvisionerProvider hostProvisionerProvider = hostProvisioner.isPresent() ? + HostProvisionerProvider.withProvisioner(hostProvisioner.get()) : + HostProvisionerProvider.empty(); SessionPreparer sessionPreparer = new SessionPreparer(modelFactoryRegistry, fileDistributionFactory, - HostProvisionerProvider.empty(), permApp, + hostProvisionerProvider, permApp, configserverConfig, defRepo, curator, new Zone(configserverConfig)); return new TestComponentRegistry(curator, configCurator.orElse(ConfigCurator.create(curator)), metrics, modelFactoryRegistry, permApp, - new MockFileDistributionFactory(), + fileDistributionFactory, new SuperModelGenerationCounter(curator), new ConfigServerDB(configserverConfig), hostRegistries, configserverConfig, sessionPreparer, diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/session/MockFileDistributionFactory.java b/configserver/src/test/java/com/yahoo/vespa/config/server/session/MockFileDistributionFactory.java index 0af74cc9312..b3b40b0c002 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/session/MockFileDistributionFactory.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/session/MockFileDistributionFactory.java @@ -4,6 +4,7 @@ package com.yahoo.vespa.config.server.session; import com.yahoo.config.provision.ApplicationId; import com.yahoo.vespa.config.server.filedistribution.FileDistributionProvider; import com.yahoo.vespa.config.server.filedistribution.MockFileDistributionProvider; +import com.yahoo.vespa.curator.Curator; import com.yahoo.vespa.curator.mock.MockCurator; import java.io.File; @@ -16,10 +17,15 @@ public class MockFileDistributionFactory extends FileDistributionFactory { public final MockFileDistributionProvider mockFileDistributionProvider = new MockFileDistributionProvider(); - public MockFileDistributionFactory() { + // Prevent instantiation without supplied curator instance + private MockFileDistributionFactory() { super(new MockCurator(), ""); } + public MockFileDistributionFactory(Curator curator) { + super(curator, ""); + } + @Override public FileDistributionProvider createProvider(File applicationFile, ApplicationId applicationId) { return mockFileDistributionProvider; |