(client) Fix executor tests

This commit is contained in:
Viktor Lofgren 2023-10-16 12:01:34 +02:00
parent 0b19b28a64
commit 8dafd13cd7
3 changed files with 30 additions and 5 deletions

View File

@ -43,7 +43,7 @@ public abstract class AbstractClient implements AutoCloseable {
}
public AbstractClient(ServiceDescriptor service, int timeout, Supplier<Gson> gsonProvider) {
this(RouteProvider.fromService(service), timeout, gsonProvider);
this(new RouteProvider(service), timeout, gsonProvider);
}
public AbstractClient(RouteProvider routeProvider,

View File

@ -2,10 +2,28 @@ package nu.marginalia.client.route;
import nu.marginalia.service.descriptor.ServiceDescriptor;
public interface RouteProvider {
ServiceRoute findRoute(int node);
public class RouteProvider {
private static int defaultPort = 80;
static RouteProvider fromService(ServiceDescriptor serviceDescriptor) {
return (n) -> new ServiceRoute(serviceDescriptor.getHostName(n), 80);
private final ServiceDescriptor descriptor;
public RouteProvider(ServiceDescriptor descriptor) {
this.descriptor = descriptor;
}
ServiceRoute findRoute(int node) {
return new ServiceRoute(descriptor.getHostName(node), defaultPort);
}
public static RouteProvider fromService(ServiceDescriptor serviceDescriptor) {
return new RouteProvider(serviceDescriptor);
}
// Access exists for testing
public static void setDefaultPort(int port) {
defaultPort = port;
}
public static void resetDefaultPort() {
defaultPort = 80;
}
}

View File

@ -8,6 +8,7 @@ import nu.marginalia.actor.Actor;
import nu.marginalia.actor.ActorControlService;
import nu.marginalia.actor.task.CrawlJobExtractorActor;
import nu.marginalia.client.Context;
import nu.marginalia.client.route.RouteProvider;
import nu.marginalia.control.process.ProcessOutboxes;
import nu.marginalia.control.process.ProcessService;
import nu.marginalia.storage.FileStorageService;
@ -44,11 +45,17 @@ public class ExecutorSvcApiIntegrationTest {
@BeforeAll
public static void setUpAll() {
RouteProvider.setDefaultPort(port);
var injector = Guice.createInjector(new TestModule());
testInstances = injector.getInstance(TestInstances.class);
injector.getInstance(Initialization.class).setReady();
}
@AfterAll
public static void tearDownAll() {
RouteProvider.resetDefaultPort();
}
@BeforeEach
public void setUp() {
Mockito.reset(testInstances.actorControlService);