コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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));
        }