|
|
@@ -1,57 +1,51 @@
|
|
|
-using Renci.SshNet.Common;
|
|
|
+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
|
|
|
{
|
|
|
- /// <summary>
|
|
|
- ///This is a test class for SemaphoreLightTest and is intended
|
|
|
- ///to contain all SemaphoreLightTest Unit Tests
|
|
|
- ///</summary>
|
|
|
[TestClass()]
|
|
|
public class SemaphoreLightTest : TestBase
|
|
|
{
|
|
|
- /// <summary>
|
|
|
- ///A test for SemaphoreLight Constructor
|
|
|
- ///</summary>
|
|
|
[TestMethod()]
|
|
|
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");
|
|
|
+ var initialCount = new Random().Next(1, 10);
|
|
|
+ var target = new SemaphoreLight(initialCount);
|
|
|
+ Assert.AreEqual(initialCount, target.CurrentCount);
|
|
|
}
|
|
|
|
|
|
- /// <summary>
|
|
|
- ///A test for Release
|
|
|
- ///</summary>
|
|
|
[TestMethod()]
|
|
|
- public void ReleaseTest()
|
|
|
+ public void Release()
|
|
|
{
|
|
|
- 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.");
|
|
|
+ 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 ReleaseTest1()
|
|
|
+ public void Release_ReleaseCount()
|
|
|
{
|
|
|
- int initialCount = 0; // TODO: Initialize to an appropriate value
|
|
|
- SemaphoreLight target = new SemaphoreLight(initialCount); // TODO: Initialize to an appropriate value
|
|
|
- int releaseCount = 0; // TODO: Initialize to an appropriate value
|
|
|
- int expected = 0; // TODO: Initialize to an appropriate value
|
|
|
- int actual;
|
|
|
- actual = target.Release(releaseCount);
|
|
|
- Assert.AreEqual(expected, actual);
|
|
|
- Assert.Inconclusive("Verify the correctness of this test method.");
|
|
|
+ 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>
|
|
|
@@ -60,23 +54,41 @@ namespace Renci.SshNet.Tests.Classes.Common
|
|
|
[TestMethod()]
|
|
|
public void WaitTest()
|
|
|
{
|
|
|
- int initialCount = 0; // TODO: Initialize to an appropriate value
|
|
|
- SemaphoreLight target = new SemaphoreLight(initialCount); // TODO: Initialize to an appropriate value
|
|
|
+ const int sleepTime = 200;
|
|
|
+ const int initialCount = 2;
|
|
|
+ var target = new SemaphoreLight(initialCount);
|
|
|
+
|
|
|
+ var start = DateTime.Now;
|
|
|
+
|
|
|
target.Wait();
|
|
|
- Assert.Inconclusive("A method that does not return a value cannot be verified.");
|
|
|
+ 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);
|
|
|
}
|
|
|
|
|
|
- /// <summary>
|
|
|
- ///A test for CurrentCount
|
|
|
- ///</summary>
|
|
|
[TestMethod()]
|
|
|
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.");
|
|
|
+ var initialCount = new Random().Next(1, 20);
|
|
|
+ var target = new SemaphoreLight(initialCount);
|
|
|
+
|
|
|
+ Assert.AreEqual(initialCount, target.CurrentCount);
|
|
|
}
|
|
|
}
|
|
|
}
|