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()); }