Ejemplo n.º 1
0
        private void WaitDownloaded(Attachment attachment)
        {
            var events = attachment.Changed().Where(c => c.EventArgs.PropertyName == "IsDownloading").Take(1).PublishLast();

            using (events.Connect()) {
                Assert.IsTrue(attachment.IsDownloading, attachment.ToString());
                //что бы избежать конкуренции
                if (Env.Barrier != null)
                {
                    Assert.IsTrue(Env.Barrier.SignalAndWait(10.Second()), "не удалось дождаться загрузки");
                }
                Assert.IsFalse(attachment.IsDownloaded, attachment.ToString());
                events.Timeout(10.Second()).First();
            }
            Assert.IsNull(attachment.Exception);
            Assert.IsFalse(attachment.IsError, attachment.ToString());
            Assert.IsTrue(attachment.IsDownloaded, attachment.ToString());
        }