| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- using System.Threading;
- using Renci.SshNet.Common;
- using Microsoft.VisualStudio.TestTools.UnitTesting;
- using System;
- using Renci.SshNet.Tests.Common;
- namespace Renci.SshNet.Tests.Classes.Common
- {
- [TestClass()]
- public class SemaphoreLightTest : TestBase
- {
- [TestMethod()]
- public void SemaphoreLightConstructorTest()
- {
- var initialCount = new Random().Next(1, 10);
- var target = new SemaphoreLight(initialCount);
- Assert.AreEqual(initialCount, target.CurrentCount);
- }
- [TestMethod()]
- 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);
- }
- /// <summary>
- ///A test for Release
- ///</summary>
- [TestMethod()]
- 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);
- }
- /// <summary>
- ///A test for Wait
- ///</summary>
- [TestMethod()]
- 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);
- }
- [TestMethod()]
- public void CurrentCountTest()
- {
- var initialCount = new Random().Next(1, 20);
- var target = new SemaphoreLight(initialCount);
- Assert.AreEqual(initialCount, target.CurrentCount);
- }
- }
- }
|