public void Given_MaintenanceTimeFrame_When_IsWithinMaintenanceHours_Then_GetAvailableUpdatesIsCalled() { var cultureInfo = new CultureInfo("nl-NL"); string configContent = File.ReadAllText(@"..\..\centralConfig.xml"); var serializer = new Serialization <CustomerConfigurationsFile>(); var configInstance = serializer.GetObjectFromXml(configContent); configContent = serializer.Serialize(configInstance); var httpClient = Mock.Of <IHttpClient>(); Mock.Get(httpClient).Setup(c => c.GetResponse(It.IsAny <string>())).Returns(configContent); IUpdateClient updateClient = Mock.Of <IUpdateClient>(); mController = createController(null, httpClient, updateClient); var run = mController.GetType().GetMethod("runUpdateProcedure", BindingFlags.NonPublic | BindingFlags.Instance); bool inactive = false; mController.Inactivated += (s, e) => { inactive = true; }; run.Invoke(mController, new object[] { }); while (!inactive) { Thread.Sleep(0); } Mock.Get(updateClient).Verify(c => c.GetAvailableUpdates(), Times.Once); }
public void Given_TwoCallsOnBeginUpdate_WhenFirstCallInactivates_Then_SecondCallStarts() { var updateClient = Mock.Of <IUpdateClient>(); Mock.Get(updateClient).Setup(u => u.GetAvailableUpdates()).Callback(() => Thread.Sleep(500)).Returns(new UpdateCollectionClass()); mController = createController(null, null, updateClient); int k = 0; mController.Inactivated += (s, e) => { if (k == 0) { Mock.Get(updateClient).Verify(u => u.GetAvailableUpdates(), Times.Once); k++; } else if (k == 1) { Mock.Get(updateClient).Verify(u => u.InstallUpdates(It.IsAny <IUpdateCollection>()), Times.Never); k++; } }; mController.BeginUpdate(); Thread.Sleep(100); var localConfig = Mock.Of <ILocalConfiguration>(); Mock.Get(localConfig).Setup(lc => lc.GroupName).Returns("Not_present"); var updateClientProperty = mController.GetType().GetProperty("LocalConfig", BindingFlags.Public | BindingFlags.Instance); updateClientProperty.SetValue(mController, localConfig); mController.BeginUpdate(); while (k != 2) { Thread.Sleep(100); } }
public void Given_TimeFrameMaintenanceThrowsException_Then_InactivatedIsRaised() { var cultureInfo = new CultureInfo("nl-NL"); string configContent = File.ReadAllText(@"..\..\centralConfig.xml"); var serializer = new Serialization <CustomerConfigurationsFile>(); var configInstance = serializer.GetObjectFromXml(configContent); var timeFrame = configInstance.FirstOrDefault().MaintenanceSchedule.FirstOrDefault(tf => tf.GroupName == CGroupName); timeFrame.DayOfWeek = (int)DateTime.UtcNow.DayOfWeek; timeFrame.StartTime = DateTime.UtcNow.AddMinutes(10).ToString(cultureInfo); timeFrame.EndTime = DateTime.UtcNow.AddMinutes(30).ToString(cultureInfo); configContent = serializer.Serialize(configInstance); var httpClient = Mock.Of <IHttpClient>(); Mock.Get(httpClient).Setup(c => c.GetResponse(It.IsAny <string>())).Returns(configContent); var timeFrameDecision = Mock.Of <ITimeFrameDecision>(); Mock.Get(timeFrameDecision).Setup(t => t.IsWithinTimeFrame(It.IsAny <TimeFrame>())).Throws(new ConfigurationErrorsException()); IUpdateClient updateClient = Mock.Of <IUpdateClient>(); mController = createController(null, httpClient, updateClient, timeFrameDecision: timeFrameDecision); var run = mController.GetType().GetMethod("runUpdateProcedure", BindingFlags.NonPublic | BindingFlags.Instance); bool inactive = false; mController.Inactivated += (s, e) => { inactive = true; }; run.Invoke(mController, new object[] { }); while (!inactive) { Thread.Sleep(0); } Mock.Get(updateClient).Verify(c => c.GetAvailableUpdates(), Times.Never); }
public void Given_FailReadingCentralConfigAndCentralConfigNotInitialized_Then_InactivatedIsRaised() { var httpClient = Mock.Of <IHttpClient>(); Mock.Get(httpClient).Setup(c => c.GetResponse(It.IsAny <string>())).Throws <Exception>(); IUpdateClient updateClient = Mock.Of <IUpdateClient>(); mController = createController(null, httpClient, updateClient); var run = mController.GetType().GetMethod("runUpdateProcedure", BindingFlags.NonPublic | BindingFlags.Instance); bool inactive = false; mController.Inactivated += (s, e) => { inactive = true; }; run.Invoke(mController, new object[] { }); while (!inactive) { Thread.Sleep(0); } Mock.Get(updateClient).Verify(c => c.GetAvailableUpdates(), Times.Never); }