Exemplo n.º 1
0
        public async Task CompositeProgress()
        {
            var display = new TestableProgressDisplay();
            _registry.Register<IProgressDisplay>(display);

            using (var p = _progressService.CreateCompositeProgress("CompositeProgress"))
            {
                AssertStarted(display, "CompositeProgress");
                AssertCompleted(display);
                AssertProgressIs(display, "CompositeProgress", 0, false);

                p.Title = "Hello";
                p.Description = "World";


                var subTasks = new List<Task<int>>();
                subTasks.Add(DoSomething(p, 1));
                subTasks.Add(DoSomething(p, 2));
                subTasks.Add(DoSomething(p, 3));



                foreach (var subTask in subTasks)
                {
                    var result = await subTask;
                    AssertProgressIs(display, "CompositeProgress", result, true);
                }
            }

            AssertStarted(display, "CompositeProgress");
            AssertProgressIs(display, "CompositeProgress", 3, false);
            AssertCompleted(display, "CompositeProgress");
        }
Exemplo n.º 2
0
        public async Task SimpleProgress()
        {
            var display = new TestableProgressDisplay();
            _registry.Register<IProgressDisplay>(display);
            using (var p = _progressService.CreateProgress("SimpleProgress"))
            {
                AssertStarted(display, "SimpleProgress");
                AssertCompleted(display);
                p.Title = "Hello";
                p.Description = "World";
                await DoSomething();
            }


            AssertStarted(display, "SimpleProgress");
            AssertCompleted(display, "SimpleProgress");
        }
Exemplo n.º 3
0
        private static void AssertCompleted(TestableProgressDisplay display, params string[] keys)
        {
            Assert.AreEqual(keys.Length, display.CompletedKeys.Count);

            for (int i = 0; i < keys.Length; i++)
            {
                Assert.AreEqual(keys[i], display.CompletedKeys[i]);
            }
        }
Exemplo n.º 4
0
        private static void AssertProgressIs(TestableProgressDisplay display, string key, int expected, bool orHigher)
        {
            var change =
                display.Changes.ToArray().Where(c => c.Key == key).OrderBy(c => c.Current.GetValueOrDefault()).LastOrDefault();

            if (ReferenceEquals(change, null))
            {
                if (expected == 0)
                {
                    return;
                }
                Assert.Fail();
            }

            var value = change.Current.GetValueOrDefault();

            if (orHigher)
            {
                Assert.IsTrue(value >= expected);
            }
            else
            {
                Assert.AreEqual(expected, value);
            }
        }