public void Future_When_Test()
{
int i = 0;
Func<Promise> createPromise = () =>
{
return Promise.To((deferrer) =>
{
Do.Timeout(() =>
{
i++;
deferrer.Resolve(null);
}, 500);
});
};
EventLoop.Start();
var handle = new ManualResetEvent(false);
EventLoop.Start(() =>
{
Promise.When(createPromise(), createPromise(), createPromise())
.Then((data) =>
{
handle.Set();
});
});
if (handle.WaitOne(2000))
{
Assert.AreEqual(3, i);
}else
{
Assert.Fail();
}
EventLoop.Stop();
}