public void ProcessThreadList_GivenInvalidConfig_ExpectThreadListStopMonitoring() { var mockConfig = new Mock <IJobConfig>(); mockConfig.Setup(o => o.Concurrency).Returns(3); var mockProcessFactory = new Mock <ITestProcessFactory>(); var mockProcessThread1 = CreateMockProcessThread(); var mockProcessThread2 = CreateMockProcessThread(); var mockProcessThread3 = CreateMockProcessThread(); var processThread1 = mockProcessThread1.Object; var processThread2 = mockProcessThread2.Object; var processThread3 = mockProcessThread3.Object; mockProcessFactory.SetupSequence(o => o.New()) .Returns(mockProcessThread1.Object) .Returns(mockProcessThread2.Object) .Returns(mockProcessThread3.Object); var expectedConfig = mockConfig.Object; var list = new ProcessThreadListForTesting(expectedConfig, mockProcessFactory.Object); list.UpdateConfig(null); list.Monitor(); Assert.IsTrue(list.NeedUpdate); Assert.IsFalse(processThread1.IsAlive); Assert.IsFalse(processThread2.IsAlive); Assert.IsFalse(processThread3.IsAlive); mockProcessThread1.Verify(o => o.Start(), Times.Never); mockProcessThread2.Verify(o => o.Start(), Times.Never); mockProcessThread3.Verify(o => o.Start(), Times.Never); }
public void ProcessThreadList_GivenConfig_ExpectNeedsUpdate() { var mockConfig = new Mock <IJobConfig>(); var expectedConfig = mockConfig.Object; var list = new ProcessThreadListForTesting(expectedConfig, null); Assert.AreEqual(expectedConfig, list.Config); Assert.IsTrue(list.NeedUpdate); var newConfig = new Mock <IJobConfig>().Object; list.UpdateConfig(newConfig); Assert.AreEqual(newConfig, list.Config); }