ALE.Tests.Promise_Tests.Future_When_Test C# (CSharp) Method

Future_When_Test() private method

private Future_When_Test ( ) : void
return void
        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();
        }