public void TestApplyRestartPolicyWithUnknownRuntimeStatus() { var manager = new RestartPolicyManager(MaxRestartCount, CoolOffTimeUnitInSeconds); Mock <IRuntimeModule> module = CreateMockRuntimeModule(RestartPolicy.Always, ModuleStatus.Unknown, 0, DateTime.MinValue); Assert.Throws <ArgumentException>(() => manager.ApplyRestartPolicy(new[] { module.Object }).ToList()); }
public void CoolOffPeriodTest(int restartCount, int expectedCoolOffPeriodSecs) { // Arrange var restartPolicyManager = new RestartPolicyManager(20, 10); // Act TimeSpan coolOffPeriod = restartPolicyManager.GetCoolOffPeriod(restartCount); // Assert Assert.Equal(expectedCoolOffPeriodSecs, coolOffPeriod.TotalSeconds); }
public void TestApplyRestartPolicyWithWrongUtcTime() { // Arrange var restartPolicy = RestartPolicy.Always; var runtimeStatus = ModuleStatus.Backoff; int restartCount = 5; DateTime lastExitTime = DateTime.UtcNow.Add(TimeSpan.FromHours(1)); var manager = new RestartPolicyManager(MaxRestartCount, CoolOffTimeUnitInSeconds); Mock <IRuntimeModule> module = CreateMockRuntimeModule(restartPolicy, runtimeStatus, restartCount, lastExitTime); // Act IEnumerable <IRuntimeModule> result = manager.ApplyRestartPolicy(new[] { module.Object }); // Assert Assert.Single(result); }
public void TestApplyRestartPolicy( RestartPolicy restartPolicy, ModuleStatus runtimeStatus, int restartCount, Func <DateTime> getLastExitTimeUtc, bool apply) { // Arrange var manager = new RestartPolicyManager(MaxRestartCount, CoolOffTimeUnitInSeconds); Mock <IRuntimeModule> module = CreateMockRuntimeModule(restartPolicy, runtimeStatus, restartCount, getLastExitTimeUtc()); // Act IEnumerable <IRuntimeModule> result = manager.ApplyRestartPolicy(new[] { module.Object }); int count = result.Count(); // Assert Assert.True(apply ? count == 1 : count == 0); }
public void TestComputeModuleStatusFromRestartPolicy(ModuleStatus status, RestartPolicy restartPolicy, int restartCount, ModuleStatus expectedStatus) { var manager = new RestartPolicyManager(MaxRestartCount, CoolOffTimeUnitInSeconds); Assert.Equal(expectedStatus, manager.ComputeModuleStatusFromRestartPolicy(status, restartPolicy, restartCount, DateTime.MinValue)); }
public void TestComputeModuleStatusFromRestartPolicyInvalidStatus() { var manager = new RestartPolicyManager(MaxRestartCount, CoolOffTimeUnitInSeconds); Assert.Throws <ArgumentException>(() => manager.ComputeModuleStatusFromRestartPolicy(ModuleStatus.Unknown, RestartPolicy.Always, 0, DateTime.MinValue)); }