public void Start_GetControlDefinitionReturnsNull_PauseCallbackIsCalled() { // Arrange bool pauseCallbackWasCalled = false; var runDurationInMilliseconds = AgentCoordinationService.AgentControlDefinitionCheckIntervalInMilliseconds * 1; var agentControlDefinitionProvider = new Mock <IAgentControlDefinitionProvider>(); AgentControlDefinition agentControlDefinition = null; agentControlDefinitionProvider.Setup(a => a.GetControlDefinition()).Returns(agentControlDefinition); var agentCoordinationService = new AgentCoordinationService( agentControlDefinitionProvider.Object, pauseCallback: () => { pauseCallbackWasCalled = true; }, resumeCallback: () => { }); // Act var agentCoordinationServiceTask = new Task(agentCoordinationService.Start); agentCoordinationServiceTask.Start(); Task.WaitAll(new[] { agentCoordinationServiceTask }, runDurationInMilliseconds); // Assert Assert.IsTrue(pauseCallbackWasCalled); }
public void Start_RunsForThreeIntervals_GetControlDefinitionIsCalledThreeTimes() { // Arrange var runDurationInMilliseconds = AgentCoordinationService.AgentControlDefinitionCheckIntervalInMilliseconds * 3; var agentControlDefinitionProvider = new Mock <IAgentControlDefinitionProvider>(); var agentControlDefinition = new AgentControlDefinition { AgentIsEnabled = true, Hostaddress = "127.0.0.1", Hostname = "www.example.com", CheckIntervalInSeconds = AgentCoordinationService.AgentControlDefinitionCheckIntervalInMilliseconds, SystemInformationSenderPath = "/api/systeminformation" }; agentControlDefinitionProvider.Setup(a => a.GetControlDefinition()).Returns(agentControlDefinition); var agentCoordinationService = new AgentCoordinationService(agentControlDefinitionProvider.Object, () => { }, () => { }); // Act var agentCoordinationServiceTask = new Task(agentCoordinationService.Start); agentCoordinationServiceTask.Start(); Task.WaitAll(new[] { agentCoordinationServiceTask }, runDurationInMilliseconds); // Assert agentControlDefinitionProvider.Verify(a => a.GetControlDefinition(), Times.Between(3, 4, Range.Inclusive)); }
public void Constructor_AllParametersAreSet_ObjectIsInstantiated() { // Arrange var agentControlDefinitionProvider = new Mock <IAgentControlDefinitionProvider>(); // Act var agentCoordinationService = new AgentCoordinationService(agentControlDefinitionProvider.Object, () => { }, () => { }); // Assert Assert.IsNotNull(agentCoordinationService); }
public void Start_AgentsAreDisabled_PauseCallbackIsCalled() { // Arrange bool pauseCallbackWasCalled = false; var runDurationInMilliseconds = AgentCoordinationService.AgentControlDefinitionCheckIntervalInMilliseconds * 1; var agentControlDefinitionProvider = new Mock <IAgentControlDefinitionProvider>(); var agentControlDefinition = new AgentControlDefinition { AgentIsEnabled = false, Hostaddress = "127.0.0.1", Hostname = "www.example.com", CheckIntervalInSeconds = AgentCoordinationService.AgentControlDefinitionCheckIntervalInMilliseconds, SystemInformationSenderPath = "/api/systeminformation" }; agentControlDefinitionProvider.Setup(a => a.GetControlDefinition()).Returns(agentControlDefinition); var agentCoordinationService = new AgentCoordinationService( agentControlDefinitionProvider.Object, pauseCallback: () => { pauseCallbackWasCalled = true; }, resumeCallback: () => { }); // Act var agentCoordinationServiceTask = new Task(agentCoordinationService.Start); agentCoordinationServiceTask.Start(); Task.WaitAll(new[] { agentCoordinationServiceTask }, runDurationInMilliseconds); // Assert Assert.IsTrue(pauseCallbackWasCalled); }
public void Dispose_EndsTheService() { // Arrange var maxDurationInMilliseconds = AgentCoordinationService.AgentControlDefinitionCheckIntervalInMilliseconds * 3; var agentControlDefinitionProvider = new Mock <IAgentControlDefinitionProvider>(); var agentControlDefinition = new AgentControlDefinition { AgentIsEnabled = true, Hostaddress = "127.0.0.1", Hostname = "www.example.com", CheckIntervalInSeconds = AgentCoordinationService.AgentControlDefinitionCheckIntervalInMilliseconds, SystemInformationSenderPath = "/api/systeminformation" }; agentControlDefinitionProvider.Setup(a => a.GetControlDefinition()).Returns(agentControlDefinition); var agentCoordinationService = new AgentCoordinationService(agentControlDefinitionProvider.Object, () => { }, () => { }); // Act var stopwatch = new Stopwatch(); stopwatch.Start(); var agentCoordinationServiceTask = new Task(agentCoordinationService.Start); agentCoordinationServiceTask.Start(); Thread.Sleep(500); agentCoordinationService.Dispose(); Task.WaitAll(new[] { agentCoordinationServiceTask }, maxDurationInMilliseconds); stopwatch.Stop(); // Assert Assert.Less(stopwatch.ElapsedMilliseconds, maxDurationInMilliseconds); }