using System; using System.Threading; using Developpez.Dotnet.Threading; using NUnit.Framework; namespace Developpez.Dotnet.Tests.Threading { [TestFixture] public class ThreadUtilsTests : MarshalByRefObject { [Test] public void CheckExecution() { bool val = false; ThreadUtils.ExecuteAsync(new ThreadStart(delegate { val = true; }), "bla bla"); Thread.Sleep(1000); Assert.IsTrue(val); } [Test] public void CheckExecute() { bool hasExecuted = false; /* short operation */ ThreadUtils.Execute(new ThreadStart(delegate { hasExecuted = true; }), "bla bla", new TimeSpan(0, 0, 1)); Assert.IsTrue(hasExecuted, "Timeout"); } [Test] public void Execute_Should_Trigger_TimeoutException_When_Timeout() { Assert.Throws( () => ThreadUtils.Execute(new ThreadStart(delegate { Thread.Sleep(10000); }), "bla bla", new TimeSpan(0, 0, 1))); } } }