コード例 #1
0
        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();
        }
コード例 #2
0
        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();
        }
コード例 #3
0
        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();
        }
コード例 #4
0
        public async Task Test_001_DefaultConfiguration_Expect_FiveWorker()
        {
            using var container = GetAutofacTestConfiguration();
            var agentConfigMock = new Mock <IAgentConfigProvider>();
            var loggerMock      = new Mock <ILogger>();

            var workerSupervisor = new WorkerSupervisor(container.BeginLifetimeScope(), agentConfigMock.Object, loggerMock.Object, kSupervisorDelay);

            // start host process
            var sut = workerSupervisor as IWorkerSupervisor;

            Assert.NotNull(sut);
            await sut.StartAsync();

            // Test
            Assert.Equal(kDefaultMaxWorker, sut.NumberOfWorkers);

            // clean up
            await sut.StopAsync();
        }