aboutsummaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHarald Musum <musum@yahoo-inc.com>2016-12-07 09:15:16 +0100
committerHarald Musum <musum@yahoo-inc.com>2016-12-07 09:15:16 +0100
commit39ea43088d8fa0ccd33916953001e5185760e982 (patch)
tree77df9e8a40d08fdfbb567b53f2b1e0f7669f1306 /configserver
parent94e5ce4291236d97b3dbcc45591efcd977902b49 (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')
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java21
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/session/MockFileDistributionFactory.java8
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;