Exemple #1
0
        public void Test_Extract_Default()
        {
            var source = new Mock <ISourceSpecification>();

            source.Setup(x => x.GetDiscriminatingFilePairs()).Returns(() => { return(new [] { default(Pair) }); });

            var downloader = new Mock <IDownloader>();

            downloader.Setup(x => x.TryDownload(default(FormatObject))).Returns(default(TryDownloadResult));
            downloader.SetupAllProperties();

            var target = new Extracter()
            {
                TempDownloadLocation = TempLocation,
                Source     = source.Object,
                Downloader = downloader.Object,
            };

            var expected = new FileNameExtractionResult[] { };

            var actual = target.Extract(default(FormatObject));

            Assert.IsTrue(actual.SequenceEqual(expected.Cast <IExtractionResult <FormatObject> >()));

            // twice - as attempts to load the default datetime twice in a row
            downloader.Verify(x => x.TryDownload(default(FormatObject)), Times.Exactly(2));
        }
Exemple #2
0
        public void Test_Extract_OnlyStopsWhenCurrentDate()
        {
            var source = new Mock <ISourceSpecification>();

            source.Setup(x => x.GetDiscriminatingFilePairs()).Returns(() => { return(new[] { default(Pair) }); });

            var formatObject1 = new FormatObject("test", DateTime.Now.AddDays(-2));
            var formatObject2 = new FormatObject("test", DateTime.Now.AddDays(-1));

            var downloader = new Mock <IDownloader>();

            downloader.Setup(x => x.TryDownload(default(FormatObject))).Returns(
                new TryDownloadResult()
            {
                IsSuccess           = false,
                DestinationFile     = new FileInfo(@"d:\test.test"),
                FormatObject        = formatObject1,
                UpperBoundExclusive = DateTimeOffset.Now.AddDays(-1),
            });

            downloader.Setup(x => x.TryDownload(It.Is <FormatObject>(y => y.LocalDateTime == formatObject1.LocalDateTime))).Returns(
                new TryDownloadResult()
            {
                IsSuccess           = false,
                DestinationFile     = new FileInfo(@"d:\test.test"),
                FormatObject        = formatObject2,
                UpperBoundExclusive = DateTimeOffset.Now.AddDays(0),
            });

            downloader.Setup(x => x.TryDownload(It.Is <FormatObject>(y => y.LocalDateTime == formatObject2.LocalDateTime))).Returns(
                new TryDownloadResult()
            {
                IsSuccess           = false,
                DestinationFile     = new FileInfo(@"d:\test.test"),
                FormatObject        = formatObject2,
                UpperBoundExclusive = DateTimeOffset.Now.AddDays(1),
            });

            var target = new Extracter()
            {
                TempDownloadLocation = TempLocation,
                Source     = source.Object,
                Downloader = downloader.Object,
            };

            var expected = new FileNameExtractionResult[] {};

            var actual = target.Extract(default(FormatObject));

            Assert.IsTrue(actual.SequenceEqual(expected.Cast <IExtractionResult <FormatObject> >()));

            downloader.Verify(x => x.TryDownload(default(FormatObject)), Times.Exactly(1));
            downloader.Verify(x => x.TryDownload(formatObject1), Times.Exactly(1));
            downloader.Verify(x => x.TryDownload(formatObject2), Times.Exactly(1));
        }
Exemple #3
0
        public void Test_Extract_ExtractBreaksOutOfLoopIfAttemptSameDownloadTwice()
        {
            var source = new Mock <ISourceSpecification>();

            source.Setup(x => x.GetDiscriminatingFilePairs()).Returns(() => { return(new[] { default(Pair) }); });

            var formatObject = new FormatObject("test", new DateTime(2003, 1, 1));

            var downloader = new Mock <IDownloader>();

            downloader.Setup(x => x.TryDownload(default(FormatObject)))
            .Returns(new TryDownloadResult()
            {
                IsSuccess       = true,
                DestinationFile = new FileInfo(@"d:\test.test"),
                FormatObject    = formatObject,
            });

            var target = new Extracter()
            {
                TempDownloadLocation = TempLocation,
                Source     = source.Object,
                Downloader = downloader.Object,
            };

            var expected = new FileNameExtractionResult[]
            {
                new FileNameExtractionResult()
                {
                    FileFullName    = @"d:\test.test",
                    Pair            = default(Pair),
                    CurrentPosition = formatObject,
                    IsSuccess       = true
                },
            };

            var actual = target.Extract(default(FormatObject));

            Assert.IsTrue(actual.SequenceEqual(expected.Cast <IExtractionResult <FormatObject> >()));

            downloader.Verify(x => x.TryDownload(default(FormatObject)), Times.Exactly(1));
            downloader.Verify(x => x.TryDownload(formatObject), Times.Exactly(1));
        }