Exemple #1
0
        public async Task GetScheduleFromWebAsync_Throws_NetworkException_If_No_Connection()
        {
            var networkChecker    = new Mock <INetworkChecker>();
            var scheduleSettings  = new Mock <IScheduleSettings>();
            var httpClientService = new Mock <IHttpClientService>();

            networkChecker.Setup(nc => nc.IsConnected()).Returns(false);

            var sut = new ScheduleDownloader(networkChecker.Object, scheduleSettings.Object,
                                             httpClientService.Object);
            Func <Task> act = async() => { await sut.GetScheduleFromWebAsync(DateTime.Now); };

            await act.Should().ThrowAsync <NetworkException>();
        }
Exemple #2
0
        public async Task Gets_Schedule_From_Web()
        {
            var date              = DateTime.Now;
            var schedule          = fixture.Create <WeekSchedule>();
            var scheduleJson      = JsonConvert.SerializeObject(schedule);
            var networkChecker    = new Mock <INetworkChecker>();
            var scheduleSettings  = new Mock <IScheduleSettings>();
            var httpClientService = new Mock <IHttpClientService>();

            networkChecker.Setup(nc => nc.IsConnected())
            .Returns(true);
            httpClientService.Setup(hs => hs.GetResponseAsStringAsync(It.IsAny <string>(),
                                                                      It.IsAny <CancellationToken>()))
            .ReturnsAsync(scheduleJson);
            scheduleSettings.Setup(ss => ss.GroupId).Returns(1);

            var sut = new ScheduleDownloader(networkChecker.Object, scheduleSettings.Object,
                                             httpClientService.Object);
            var result = await sut.GetScheduleFromWebAsync(date);

            result.Should().BeEquivalentTo(schedule, opt =>
                                           opt.Excluding(s => s.LastUpdated));
        }