Esempio n. 1
0
        public void After_Ending_async_download_IsBusy_should_be_false()
        {
            var downloader = this.CreateUnitTestableDownloader();

            var waitHandle = new AutoResetEvent(false);
            downloader.DownloadCompleted += (sender, args) => waitHandle.Set();

            downloader.DownloadAsync();
            waitHandle.ThrowIfWaitHandleTimesOut(TimeSpan.FromSeconds(5));

            Assert.AreEqual(false, downloader.IsBusy);
        }
        public void And_DownloadDailyAsync_fails_it_should_raise_event_which_includes_the_exception()
        {
            var downloader = new ReportDownloader(TomatoDailyBandwidthUri, TomatoUsername, TomatoInvalidPassword);

            var waitHandle = new AutoResetEvent(false);
            DownloadCompletedEventArgs args = null;
            downloader.DownloadDailyCompleted += (sender, eventArgs) =>
            {
                args = eventArgs;
                waitHandle.Set();
            };

            downloader.DownloadDailyAsync();

            waitHandle.ThrowIfWaitHandleTimesOut(TimeSpan.FromSeconds(5));

            Assert.IsNotNull(args.Error);
            Assert.IsNull(args.Report);
        }
        public void Then_DownloadDailyAsync_should_raise_event_with_results()
        {
            var downloader = new ReportDownloader(TomatoDailyBandwidthUri, TomatoUsername, TomatoPassword);

            var waitHandle = new AutoResetEvent(false);
            DownloadCompletedEventArgs args = null;
            downloader.DownloadDailyCompleted += (sender, eventArgs) =>
            {
                args = eventArgs;
                waitHandle.Set();
            };

            downloader.DownloadDailyAsync();

            waitHandle.ThrowIfWaitHandleTimesOut(TimeSpan.FromSeconds(5));

            var result = args.Report;
            Assert.IsNull(args.Error);
            Assert.AreEqual(0, result.Monthly.Count(), "Monthly report should be empty");
            Assert.AreNotEqual(0, result.Daily.ToList(), "Daily report should not be empty");
        }