public async Task Test_004_NegativeMaxWorker_Expect_UseDefaultValue() { using var container = GetAutofacTestConfiguration(); var agentConfig = new TestAgentConfigProvider(); var loggerMock = new Mock <ILogger>(); var healthCheckManagerMock = new Mock <IHealthCheckManager>(); loggerMock.Setup(l => l.Error( It.Is <string>(s => s.Contains("MaxWorker")), It.Is <int>(i => i == kDefaultMaxWorker))) .Verifiable(); var workerSupervisor = new WorkerSupervisor(container.BeginLifetimeScope(), agentConfig, loggerMock.Object, healthCheckManagerMock.Object, kSupervisorDelay); // start host process var sut = workerSupervisor as IWorkerSupervisor; Assert.NotNull(sut); await sut.StartAsync(); // Test const int numberOfWorker = -4; agentConfig.SetMaxWorker(numberOfWorker); await Task.Delay(kDefaultDelay); Assert.Equal(kDefaultMaxWorker, sut.NumberOfWorkers); loggerMock.Verify(); // clean up await sut.StopAsync(); }
public async Task Test_005_IncreaseAndDecreaseMaxWorker_Expect_AdoptionOfWorker() { using var container = GetAutofacTestConfiguration(); var agentConfig = new TestAgentConfigProvider(); var loggerMock = new Mock <ILogger>(); var healthCheckManagerMock = new Mock <IHealthCheckManager>(); var workerSupervisor = new WorkerSupervisor(container.BeginLifetimeScope(), agentConfig, loggerMock.Object, healthCheckManagerMock.Object, kSupervisorDelay); // start host process var sut = workerSupervisor as IWorkerSupervisor; Assert.NotNull(sut); await sut.StartAsync(); // Test int numberOfWorker = 8; //Increase agentConfig.SetMaxWorker(numberOfWorker); await Task.Delay(kDefaultDelay); Assert.Equal(numberOfWorker, sut.NumberOfWorkers); numberOfWorker = 6; //Decrease agentConfig.SetMaxWorker(numberOfWorker); await Task.Delay(kDefaultDelay); Assert.Equal(numberOfWorker, sut.NumberOfWorkers); // clean up await sut.StopAsync(); }
public async Task Test_003_DecreaseMaxWorker_Expect_WorkerTermination() { using var container = GetAutofacTestConfiguration(); var agentConfig = new TestAgentConfigProvider(); var loggerMock = new Mock <ILogger>(); var healthCheckManagerMock = new Mock <IHealthCheckManager>(); var workerSupervisor = new WorkerSupervisor(container.BeginLifetimeScope(), agentConfig, loggerMock.Object, healthCheckManagerMock.Object, kSupervisorDelay); // start host process var sut = workerSupervisor as IWorkerSupervisor; Assert.NotNull(sut); await sut.StartAsync(); // Test const int numberOfWorker = 2; agentConfig.SetMaxWorker(numberOfWorker); await Task.Delay(kDefaultDelay); //Internal timer which creates the Worker run every 10 seconds Assert.Equal(numberOfWorker, sut.NumberOfWorkers); // clean up await sut.StopAsync(); }