예제 #1
0
        public void PassCorrectData()
        {
            var parserMock = new Mock <IScheduleParser>();

            parserMock
            .Setup(p => p.ParseTable(It.IsAny <HtmlDocument>(), It.IsAny <string>()))
            .Returns(new List <LessonInfo>());

            var downloaderMock = new Mock <IWebDownloader>();
            var data           = @"
<!DOCTYPE html>
<html>
<body>
<h1>My First Heading</h1>
</body>
</html>";

            downloaderMock.Setup(d => d.GetLoadStream(It.IsAny <string>()))
            .Returns(new MemoryStream(Encoding.UTF8.GetBytes(data)));

            var scheduleUpdater = new ScheduleUpdater("Some uri", parserMock.Object, downloaderMock.Object);

            scheduleUpdater.UpdateSchedule(new[] { "1" });

            parserMock.Verify(p => p.ParseTable(It.Is <HtmlDocument>(d => d.ParsedText == data), It.Is <string>(s => s == "1")), Times.Once);
        }
예제 #2
0
        public void FailToDownloadReturnNull()
        {
            var downloaderMock = new Mock <IWebDownloader>();

            downloaderMock.Setup(d => d.GetLoadStream(It.IsAny <string>())).Throws <Exception>();

            var scheduleUpdater = new ScheduleUpdater("", Mock.Of <IScheduleParser>(), downloaderMock.Object);
            var result          = scheduleUpdater.UpdateSchedule(new[] { "" });

            Assert.That(result, Is.Null);
        }
예제 #3
0
        public void DownloadAllGroupsSchedule()
        {
            const string baseUri = "BASE_URI/";

            var parserMock = new Mock <IScheduleParser>();

            parserMock
            .Setup(p => p.ParseTable(It.IsAny <HtmlDocument>(), It.IsAny <string>()))
            .Returns(new List <LessonInfo>());

            var downloaderMock = new Mock <IWebDownloader>();

            downloaderMock.Setup(d => d.GetLoadStream(It.IsAny <string>())).Returns(() => new MemoryStream());

            var scheduleUpdater = new ScheduleUpdater(baseUri, parserMock.Object, downloaderMock.Object);

            scheduleUpdater.UpdateSchedule(new[] { "1", "2", "3" });

            downloaderMock.Verify(d => d.GetLoadStream(It.Is <string>(s => s == baseUri + "1")), Times.Once);
            downloaderMock.Verify(d => d.GetLoadStream(It.Is <string>(s => s == baseUri + "2")), Times.Once);
            downloaderMock.Verify(d => d.GetLoadStream(It.Is <string>(s => s == baseUri + "3")), Times.Once);
        }