private void Arrange() { var random = new Random(); _localChannelNumber = (uint)random.Next(0, int.MaxValue); _localWindowSize = (uint)random.Next(0, int.MaxValue); _localPacketSize = (uint)random.Next(0, int.MaxValue); _remoteChannelNumber = (uint)random.Next(0, int.MaxValue); _remoteWindowSize = (uint)random.Next(0, int.MaxValue); _remotePacketSize = (uint)random.Next(0, int.MaxValue); _channelClosedRegister = new List<ChannelEventArgs>(); _channelExceptionRegister = new List<ExceptionEventArgs>(); _initialSessionSemaphoreCount = random.Next(10, 20); _sessionSemaphore = new SemaphoreLight(_initialSessionSemaphoreCount); _sessionMock = new Mock<ISession>(MockBehavior.Strict); _connectionInfoMock = new Mock<IConnectionInfo>(MockBehavior.Strict); _sequence = new MockSequence(); _sessionMock.InSequence(_sequence).Setup(p => p.ConnectionInfo).Returns(_connectionInfoMock.Object); _connectionInfoMock.InSequence(_sequence).Setup(p => p.RetryAttempts).Returns(1); _sessionMock.Setup(p => p.SessionSemaphore).Returns(_sessionSemaphore); _sessionMock.InSequence(_sequence) .Setup( p => p.SendMessage( It.Is<ChannelOpenMessage>( m => m.LocalChannelNumber == _localChannelNumber && m.InitialWindowSize == _localWindowSize && m.MaximumPacketSize == _localPacketSize && m.Info is SessionChannelOpenInfo))); _sessionMock.InSequence(_sequence) .Setup(p => p.WaitOnHandle(It.IsNotNull<WaitHandle>())) .Callback<WaitHandle>( w => { _sessionMock.Raise( s => s.ChannelOpenConfirmationReceived += null, new MessageEventArgs<ChannelOpenConfirmationMessage>( new ChannelOpenConfirmationMessage( _localChannelNumber, _remoteWindowSize, _remotePacketSize, _remoteChannelNumber))); w.WaitOne(); }); _sessionMock.Setup(p => p.IsConnected).Returns(true); _sessionMock.InSequence(_sequence) .Setup( p => p.TrySendMessage(It.Is<ChannelCloseMessage>(c => c.LocalChannelNumber == _remoteChannelNumber))) .Returns(false); _channel = new ChannelSession(_sessionMock.Object, _localChannelNumber, _localWindowSize, _localPacketSize); _channel.Closed += (sender, args) => _channelClosedRegister.Add(args); _channel.Exception += (sender, args) => _channelExceptionRegister.Add(args); _channel.Open(); _sessionMock.Raise( p => p.ChannelCloseReceived += null, new MessageEventArgs<ChannelCloseMessage>(new ChannelCloseMessage(_localChannelNumber))); }
public void WaitTest() { const int sleepTime = 200; const int initialCount = 2; var target = new SemaphoreLight(initialCount); var start = DateTime.Now; target.Wait(); target.Wait(); Assert.IsTrue((DateTime.Now - start).TotalMilliseconds < 50); var releaseThread = new Thread( () => { Thread.Sleep(sleepTime); target.Release(); }); releaseThread.Start(); target.Wait(); var end = DateTime.Now; var elapsed = end - start; Assert.IsTrue(elapsed.TotalMilliseconds > 200); Assert.IsTrue(elapsed.TotalMilliseconds < 250); }
public void WaitTest() { int initialCount = 0; // TODO: Initialize to an appropriate value SemaphoreLight target = new SemaphoreLight(initialCount); // TODO: Initialize to an appropriate value target.Wait(); Assert.Inconclusive("A method that does not return a value cannot be verified."); }
public void CurrentCountTest() { int initialCount = 0; // TODO: Initialize to an appropriate value SemaphoreLight target = new SemaphoreLight(initialCount); // TODO: Initialize to an appropriate value int actual; actual = target.CurrentCount; Assert.Inconclusive("Verify the correctness of this test method."); }
public void ReleaseTest() { int initialCount = 0; // TODO: Initialize to an appropriate value SemaphoreLight target = new SemaphoreLight(initialCount); // TODO: Initialize to an appropriate value int expected = 0; // TODO: Initialize to an appropriate value int actual; actual = target.Release(); Assert.AreEqual(expected, actual); Assert.Inconclusive("Verify the correctness of this test method."); }
private void Arrange() { var random = new Random(); _localChannelNumber = (uint) random.Next(0, int.MaxValue); _localWindowSize = (uint) random.Next(2000, 3000); _localPacketSize = (uint) random.Next(1000, 2000); _initialSessionSemaphoreCount = random.Next(10, 20); _sessionSemaphore = new SemaphoreLight(_initialSessionSemaphoreCount); _channelClosedRegister = new List<ChannelEventArgs>(); _channelExceptionRegister = new List<ExceptionEventArgs>(); _actualException = null; _failureReasonCode = (uint)random.Next(0, int.MaxValue); _failureDescription = random.Next().ToString(CultureInfo.InvariantCulture); _failureLanguage = random.Next().ToString(CultureInfo.InvariantCulture); _sessionMock = new Mock<ISession>(MockBehavior.Strict); _connectionInfoMock = new Mock<IConnectionInfo>(MockBehavior.Strict); var sequence = new MockSequence(); _sessionMock.InSequence(sequence).Setup(p => p.ConnectionInfo).Returns(_connectionInfoMock.Object); _connectionInfoMock.InSequence(sequence).Setup(p => p.RetryAttempts).Returns(1); _sessionMock.Setup(p => p.SessionSemaphore).Returns(_sessionSemaphore); _sessionMock.InSequence(sequence) .Setup( p => p.SendMessage( It.Is<ChannelOpenMessage>( m => m.LocalChannelNumber == _localChannelNumber && m.InitialWindowSize == _localWindowSize && m.MaximumPacketSize == _localPacketSize && m.Info is SessionChannelOpenInfo))); _sessionMock.InSequence(sequence) .Setup(p => p.WaitOnHandle(It.IsNotNull<WaitHandle>())) .Callback<WaitHandle>( w => { _sessionMock.Raise( s => s.ChannelOpenFailureReceived += null, new MessageEventArgs<ChannelOpenFailureMessage>( new ChannelOpenFailureMessage( _localChannelNumber, _failureDescription, _failureReasonCode, _failureLanguage ))); w.WaitOne(); }); _sessionMock.InSequence(sequence).Setup(p => p.ConnectionInfo).Returns(_connectionInfoMock.Object); _connectionInfoMock.InSequence(sequence).Setup(p => p.RetryAttempts).Returns(1); _channel = new ChannelSession(_sessionMock.Object, _localChannelNumber, _localWindowSize, _localPacketSize); _channel.Closed += (sender, args) => _channelClosedRegister.Add(args); _channel.Exception += (sender, args) => _channelExceptionRegister.Add(args); }
public void Release() { var initialCount = new Random().Next(1, 10); var target = new SemaphoreLight(initialCount); Assert.AreEqual(initialCount, target.Release()); Assert.AreEqual(initialCount + 1, target.CurrentCount); Assert.AreEqual(initialCount + 1, target.Release()); Assert.AreEqual(initialCount + 2, target.CurrentCount); }
public void Release_ReleaseCount() { var initialCount = new Random().Next(1, 10); var target = new SemaphoreLight(initialCount); var releaseCount1 = new Random().Next(1, 10); Assert.AreEqual(initialCount, target.Release(releaseCount1)); Assert.AreEqual(initialCount + releaseCount1, target.CurrentCount); var releaseCount2 = new Random().Next(1, 10); Assert.AreEqual(initialCount + releaseCount1, target.Release(releaseCount2)); Assert.AreEqual(initialCount + releaseCount1 + releaseCount2, target.CurrentCount); }
private void Arrange() { var random = new Random(); _localChannelNumber = (uint)random.Next(0, int.MaxValue); _localWindowSize = (uint)random.Next(2000, 3000); _localPacketSize = (uint)random.Next(1000, 2000); _initialSessionSemaphoreCount = random.Next(10, 20); _sessionSemaphore = new SemaphoreLight(_initialSessionSemaphoreCount); _channelClosedRegister = new List<ChannelEventArgs>(); _channelExceptionRegister = new List<ExceptionEventArgs>(); _waitOnConfirmationException = new SystemException(); _sessionMock = new Mock<ISession>(MockBehavior.Strict); _connectionInfoMock = new Mock<IConnectionInfo>(MockBehavior.Strict); var sequence = new MockSequence(); _sessionMock.InSequence(sequence).Setup(p => p.ConnectionInfo).Returns(_connectionInfoMock.Object); _connectionInfoMock.InSequence(sequence).Setup(p => p.RetryAttempts).Returns(2); _sessionMock.Setup(p => p.SessionSemaphore).Returns(_sessionSemaphore); _sessionMock.InSequence(sequence) .Setup( p => p.SendMessage( It.Is<ChannelOpenMessage>( m => m.LocalChannelNumber == _localChannelNumber && m.InitialWindowSize == _localWindowSize && m.MaximumPacketSize == _localPacketSize && m.Info is SessionChannelOpenInfo))); _sessionMock.InSequence(sequence) .Setup(p => p.WaitOnHandle(It.IsNotNull<WaitHandle>())) .Throws(_waitOnConfirmationException); _channel = new ChannelSession(_sessionMock.Object, _localChannelNumber, _localWindowSize, _localPacketSize); _channel.Closed += (sender, args) => _channelClosedRegister.Add(args); _channel.Exception += (sender, args) => _channelExceptionRegister.Add(args); }
public void CurrentCountTest() { var initialCount = new Random().Next(1, 20); var target = new SemaphoreLight(initialCount); Assert.AreEqual(initialCount, target.CurrentCount); }
public void SemaphoreLightConstructorTest() { int initialCount = 0; // TODO: Initialize to an appropriate value SemaphoreLight target = new SemaphoreLight(initialCount); Assert.Inconclusive("TODO: Implement code to verify target"); }