public void TrackShouldSetIsBusyToTrueThenFalse()
        {
            // Assign
            var isBusyChangedToTrue  = false;
            var isBusyChangedToFalse = false;

            var pts = new ParcelTrackingService();

            pts.IsBusyChanged += (sender, args) =>
            {
                var ibea = args as IsBusyEventArgs;
                if (ibea.IsBusy)
                {
                    isBusyChangedToTrue = true;
                }
                else
                {
                    isBusyChangedToFalse = true;
                }
            };

            // Act
            var trackingNumber = "1234567";
            var result         = pts.Track(trackingNumber).Result;

            // Assert
            Assert.IsTrue(isBusyChangedToTrue);
            Assert.IsTrue(isBusyChangedToFalse);
        }
        public void TrackShouldThrowAnExceptionWhenTrackingNumberIsNull()
        {
            var    pts            = new ParcelTrackingService();
            string trackingNumber = null;

            Task.Run(async() =>
            {
                var result = await pts.Track(trackingNumber);
            }).GetAwaiter().GetResult();
        }
        public void TrackShouldThrowAnExceptionWhenTrackingNumberIsWhitespaces()
        {
            var pts            = new ParcelTrackingService();
            var trackingNumber = "   ";

            Task.Run(async() =>
            {
                var result = await pts.Track(trackingNumber);
            }).GetAwaiter().GetResult();
        }
        public void DicomWebsiteShouldReturnHtmlFormattedForScrapHtmlForTrackingInfosMethod()
        {
            var           pts            = new ParcelTrackingService();
            PrivateObject obj            = new PrivateObject(pts);
            var           trackingNumber = "1234567";

            var task     = obj.Invoke("GetResponseFromServer", trackingNumber) as Task <HttpResponseMessage>;
            var response = task.Result;

            var httpAsString = response.Content.ReadAsStringAsync().Result;
            var doc          = new HtmlDocument();

            doc.LoadHtml(httpAsString);

            var trackingInfos = obj.Invoke("ScrapHtmlForTrackingInfos", doc);

            Assert.IsInstanceOfType(trackingInfos, typeof(List <string>));
        }