Files
ICD.Common.Utils/ICD.Common.Utils.Tests/ThreadingUtilsTest.cs
Chris Cameron ec2a3ef498 Additional test
2018-03-23 16:56:52 -04:00

67 lines
1.7 KiB
C#

using System;
using NUnit.Framework;
namespace ICD.Common.Utils.Tests
{
[TestFixture]
public sealed class ThreadingUtilsTest
{
[Test]
public static void WaitTest()
{
Assert.IsFalse(ThreadingUtils.Wait(() => false, 100));
Assert.IsTrue(ThreadingUtils.Wait(() => true, 100));
bool complete = false;
DateTime time = IcdEnvironment.GetLocalTime();
ThreadingUtils.SafeInvoke(() =>
{
ThreadingUtils.Sleep(100);
complete = true;
});
Assert.IsTrue(ThreadingUtils.Wait(() => complete, 200));
Assert.AreEqual(100, (IcdEnvironment.GetLocalTime() - time).TotalMilliseconds, 20);
}
[Test]
public void Sleep()
{
DateTime now = IcdEnvironment.GetLocalTime();
ThreadingUtils.Sleep(1000);
DateTime now2 = IcdEnvironment.GetLocalTime();
Assert.AreEqual(1000, (now2 - now).TotalMilliseconds, 100);
}
[Test]
public void SafeInvokeTest()
{
bool result = false;
ThreadingUtils.SafeInvoke(() =>
{
ThreadingUtils.Sleep(100);
result = true;
});
Assert.IsFalse(result);
Assert.IsTrue(ThreadingUtils.Wait(() => result, 1000));
}
[Test]
public void SafeInvokeParamTest()
{
bool result = false;
ThreadingUtils.SafeInvoke(p =>
{
ThreadingUtils.Sleep(100);
result = p;
}, true);
Assert.IsFalse(result);
Assert.IsTrue(ThreadingUtils.Wait(() => result, 1000));
}
}
}