protected void Arrange()
        {
            var random = new Random();
            _subsystemName = random.Next().ToString(CultureInfo.InvariantCulture);
            _operationTimeout = TimeSpan.FromSeconds(30);
            _encoding = Encoding.UTF8;
            _disconnectedRegister = new List<EventArgs>();
            _errorOccurredRegister = new List<ExceptionEventArgs>();

            _sessionMock = new Mock<ISession>(MockBehavior.Strict);
            _channelMock = new Mock<IChannelSession>(MockBehavior.Strict);

            var sequence = new MockSequence();
            _sessionMock.InSequence(sequence).Setup(p => p.CreateChannelSession()).Returns(_channelMock.Object);
            _channelMock.InSequence(sequence).Setup(p => p.Open());
            _channelMock.InSequence(sequence).Setup(p => p.SendSubsystemRequest(_subsystemName)).Returns(true);
            _channelMock.InSequence(sequence).Setup(p => p.Dispose());

            _subsystemSession = new SubsystemSessionStub(
                _sessionMock.Object,
                _subsystemName,
                _operationTimeout,
                _encoding);
            _subsystemSession.Disconnected += (sender, args) => _disconnectedRegister.Add(args);
            _subsystemSession.ErrorOccurred += (sender, args) => _errorOccurredRegister.Add(args);
            _subsystemSession.Connect();
            _subsystemSession.Disconnect();
        }
예제 #2
0
        protected void Arrange()
        {
            var random = new Random();

            _subsystemName         = random.Next().ToString(CultureInfo.InvariantCulture);
            _operationTimeout      = TimeSpan.FromSeconds(30);
            _encoding              = Encoding.UTF8;
            _disconnectedRegister  = new List <EventArgs>();
            _errorOccurredRegister = new List <ExceptionEventArgs>();

            _sessionMock = new Mock <ISession>(MockBehavior.Strict);
            _channelBeforeDisconnectMock = new Mock <IChannelSession>(MockBehavior.Strict);
            _channelAfterDisconnectMock  = new Mock <IChannelSession>(MockBehavior.Strict);

            _sequence = new MockSequence();
            _sessionMock.InSequence(_sequence).Setup(p => p.CreateChannelSession()).Returns(_channelBeforeDisconnectMock.Object);
            _channelBeforeDisconnectMock.InSequence(_sequence).Setup(p => p.Open());
            _channelBeforeDisconnectMock.InSequence(_sequence).Setup(p => p.SendSubsystemRequest(_subsystemName)).Returns(true);
            _channelBeforeDisconnectMock.InSequence(_sequence).Setup(p => p.Close());
            _channelBeforeDisconnectMock.InSequence(_sequence).Setup(p => p.Dispose());
            _sessionMock.InSequence(_sequence).Setup(p => p.CreateChannelSession()).Returns(_channelAfterDisconnectMock.Object);
            _channelAfterDisconnectMock.InSequence(_sequence).Setup(p => p.Open());
            _channelAfterDisconnectMock.InSequence(_sequence).Setup(p => p.SendSubsystemRequest(_subsystemName)).Returns(true);

            _subsystemSession = new SubsystemSessionStub(
                _sessionMock.Object,
                _subsystemName,
                _operationTimeout,
                _encoding);
            _subsystemSession.Disconnected  += (sender, args) => _disconnectedRegister.Add(args);
            _subsystemSession.ErrorOccurred += (sender, args) => _errorOccurredRegister.Add(args);
            _subsystemSession.Connect();
            _subsystemSession.Disconnect();
        }
예제 #3
0
 protected void Act()
 {
     _subsystemSession.Disconnect();
 }