public void Repeat_MustStopCurrentAndStartNewSession() { service.Setup(s => s.StopSession(It.IsAny <Guid>())).Returns(new CommunicationResult(true)).Callback(() => serviceEvent.Set()); PerformNormally(); var result = sut.Repeat(); service.Verify(s => s.Connect(It.IsAny <Guid?>(), It.IsAny <bool>()), Times.Once); service.Verify(s => s.StopSession(It.IsAny <Guid>()), Times.Once); service.Verify(s => s.StartSession(It.IsAny <ServiceConfiguration>()), Times.Exactly(2)); service.Verify(s => s.Disconnect(), Times.Never); service.Verify(s => s.RunSystemConfigurationUpdate(), Times.Never); Assert.AreEqual(OperationResult.Success, result); }
public void Repeat_MustStopCurrentAndStartNewSession() { service .Setup(s => s.StopSession(It.IsAny <Guid>())) .Returns(new CommunicationResult(true)) .Callback(() => runtimeHost.Raise(h => h.ServiceSessionStopped += null)); PerformNormally(); var result = sut.Repeat(); service.Verify(s => s.Connect(It.IsAny <Guid?>(), It.IsAny <bool>()), Times.Once); service.Verify(s => s.StopSession(It.IsAny <Guid>()), Times.Once); service.Verify(s => s.StartSession(It.IsAny <Guid>(), It.IsAny <Settings>()), Times.Exactly(2)); service.Verify(s => s.Disconnect(), Times.Never); Assert.AreEqual(OperationResult.Success, result); }
public void Repeat_MustStopCurrentAndStartNewSession() { var order = 0; var start1 = 0; var stop1 = 0; var start2 = 0; var session1Id = Guid.NewGuid(); var session2Id = Guid.NewGuid(); context.Next.SessionId = session1Id; service.SetupGet(s => s.IsConnected).Returns(true); service.Setup(s => s.Connect(null, true)).Returns(true); service .Setup(s => s.StartSession(It.Is <ServiceConfiguration>(c => c.SessionId == session1Id))) .Returns(new CommunicationResult(true)) .Callback(() => { start1 = ++order; serviceEvent.Set(); }); service .Setup(s => s.StartSession(It.Is <ServiceConfiguration>(c => c.SessionId == session2Id))) .Returns(new CommunicationResult(true)) .Callback(() => { start2 = ++order; serviceEvent.Set(); }); service .Setup(s => s.StopSession(It.IsAny <Guid>())) .Returns(new CommunicationResult(true)) .Callback(() => { stop1 = ++order; serviceEvent.Set(); }); sut.Perform(); context.Current.SessionId = session1Id; context.Next.SessionId = session2Id; var result = sut.Repeat(); service.Verify(s => s.Connect(It.IsAny <Guid?>(), It.IsAny <bool>()), Times.Once); service.Verify(s => s.StopSession(It.Is <Guid>(id => id == session1Id)), Times.Once); service.Verify(s => s.StartSession(It.Is <ServiceConfiguration>(c => c.SessionId == session1Id)), Times.Once); service.Verify(s => s.StartSession(It.Is <ServiceConfiguration>(c => c.SessionId == session2Id)), Times.Once); service.Verify(s => s.Disconnect(), Times.Never); service.Verify(s => s.RunSystemConfigurationUpdate(), Times.Never); Assert.AreEqual(OperationResult.Success, result); Assert.IsTrue(start1 == 1); Assert.IsTrue(stop1 == 2); Assert.IsTrue(start2 == 3); }
public void Repeat_MustFailIfSessionNotStoppedWithinTimeout() { const int TIMEOUT = 50; var after = default(DateTime); var before = default(DateTime); service.Setup(s => s.StopSession(It.IsAny <Guid>())).Returns(new CommunicationResult(true)); sut = new ServiceOperation(logger.Object, runtimeHost.Object, service.Object, sessionContext, TIMEOUT, userInfo.Object); PerformNormally(); before = DateTime.Now; var result = sut.Repeat(); after = DateTime.Now; service.Verify(s => s.StopSession(It.IsAny <Guid>()), Times.Once); service.Verify(s => s.Disconnect(), Times.Never); Assert.AreEqual(OperationResult.Failed, result); Assert.IsTrue(after - before >= new TimeSpan(0, 0, 0, 0, TIMEOUT)); }