Ejemplo n.º 1
0
        public void SettingResultSyncCompletesPromise()
        {
            var test = new TestDef()
            {
                MaxSteps = 100,
            };

            var  completed = TimeSpan.MinValue;
            bool result    = false;

            test.RunScript(async env => {
                var promise = new SimFuture <bool>(5000);
                promise.SetResult(true);
                result    = await promise.Task;
                completed = env.Time;
            });

            Assert.IsTrue(result);
            Assert.AreEqual(TimeSpan.Zero, completed);
        }
Ejemplo n.º 2
0
        public void SettingErrorSyncCompletesPromise()
        {
            var test = new TestDef();

            var failed = TimeSpan.MinValue;
            var result = false;

            test.RunScript(async env => {
                var promise = new SimFuture <bool>(5000);
                promise.SetError(new IOException());
                try {
                    result = await promise.Task;
                } catch (Exception) {
                    failed = env.Time;
                }
            });


            Assert.IsFalse(result);
            Assert.AreEqual(TimeSpan.Zero, failed);
        }
Ejemplo n.º 3
0
        public void CompletionSourceTimesOut()
        {
            var test = new TestDef()
            {
                MaxSteps = 100,
            };

            TimeSpan timedOut;

            test.RunScript(async env => {
                var promise = new SimFuture <bool>(5000);
                try {
                    await promise.Task;
                } catch (TimeoutException) {
                    timedOut = env.Time;
                }
            });


            Assert.AreEqual(TimeSpan.FromSeconds(5), timedOut);
        }