public void Dispose_IsIdempotent()
 {
     using (var test = new AutomaticProgressReporterTest())
     {
         test.Reporter.Dispose();
         test.Reporter.Dispose();
     }
 }
 public void Progress_FiredOnInterval()
 {
     using (var test = new AutomaticProgressReporterTest(
                TimeSpan.FromMilliseconds(50),
                expectedSentCount: 3))
     {
         test.SentEvent.Wait();
     }
 }
 public void Create_ThrowsIfCancelled()
 {
     using (var test = new AutomaticProgressReporterTest())
     {
         Assert.Throws <OperationCanceledException>(
             () => AutomaticProgressReporter.Create(
                 test.Connection.Object,
                 test.Request,
                 test.Interval,
                 new CancellationToken(canceled: true)));
     }
 }
        public void Create_ThrowsForNullRequest()
        {
            using (var test = new AutomaticProgressReporterTest())
            {
                var exception = Assert.Throws <ArgumentNullException>(
                    () => AutomaticProgressReporter.Create(
                        test.Connection.Object,
                        request: null,
                        interval: test.Interval,
                        cancellationToken: CancellationToken.None));

                Assert.Equal("request", exception.ParamName);
            }
        }
        private static void VerifyInvalidInterval(TimeSpan interval)
        {
            using (var test = new AutomaticProgressReporterTest())
            {
                var exception = Assert.Throws <ArgumentOutOfRangeException>(
                    () => AutomaticProgressReporter.Create(
                        test.Connection.Object,
                        test.Request,
                        interval,
                        CancellationToken.None));

                Assert.Equal("interval", exception.ParamName);
            }
        }
 public void Dispose_DisposesDisposables()
 {
     using (var test = new AutomaticProgressReporterTest())
     {
     }
 }