Exemplo n.º 1
0
        public void T001_GivenRssChannelWithNoNewRss_WhenUpdating_ThenCannotPassItToMapperForProjection()
        {
            // arrange
            var rssChannelForUpdateDto = new RssChannelForUpdateDTO { RssLastUpdatedTime = new DateTime(2000, 1, 2) };
            var syndicationItemAdapter = new SyndicationItemAdapter
            {
                Id = "1",
                Url = "dummy",
                PublishDate = new DateTime(2000, 1, 1)
            };

            var syndicationItemAdapters = new List<SyndicationItemAdapter> { syndicationItemAdapter };

            this.mockMapper.Setup(
                s =>
                    s.Map<IEnumerable<SyndicationItemAdapter>, List<NewRssEntryDTO>>(
                        It.IsAny<IEnumerable<SyndicationItemAdapter>>(),
                        It.IsAny<List<NewRssEntryDTO>>())).Returns(new List<NewRssEntryDTO>());

            this.mockSyndicationFeedAdapter
                .Setup(s => s.Load(It.IsAny<string>()))
                .Returns(syndicationItemAdapters);

            // act
            this.sut.UpdateChannel(rssChannelForUpdateDto);

            // assert
            this.mockSyndicationFeedAdapter
                .Verify(v => v.Load(It.IsAny<string>()), Times.Once);

            this.mockRssEntriesRepository
                .Verify(v => v.SaveToDatabase(It.IsAny<List<NewRssEntryDTO>>()), Times.Once);

            this.mockChannelsUpdateRepository
                .Verify(v => v.SaveEvent(It.IsAny<long>()), Times.Once);

            this.mockMapper.Verify(v =>
                    v.Map<IEnumerable<SyndicationItemAdapter>, List<NewRssEntryDTO>>(
                        It.Is<IEnumerable<SyndicationItemAdapter>>(p => !p.Any())),
                Times.Once);
        }
Exemplo n.º 2
0
        public void T002_GivenRssChannelWithNewAndOldRss_WhenUpdating_ThenOnlyNewEntriesMustBeStoredToDatabase()
        {
            // arrange
            var rssChannelForUpdateDto = new RssChannelForUpdateDTO { RssLastUpdatedTime = new DateTime(2000, 1, 2) };
            var syndicationItemAdapter1 = new SyndicationItemAdapter
            {
                Id = "1",
                Url = "dummy",
                PublishDate = new DateTime(2000, 1, 1)
            };

            var syndicationItemAdapter2 = new SyndicationItemAdapter
            {
                Id = "2",
                Url = "dummy",
                PublishDate = new DateTime(2000, 1, 3)
            };

            var syndicationItemAdapters = new List<SyndicationItemAdapter>
                                              {
                                                  syndicationItemAdapter1,
                                                  syndicationItemAdapter2
                                              };

            this.mockSyndicationFeedAdapter
                .Setup(s => s.Load(It.IsAny<string>()))
                .Returns(syndicationItemAdapters);

            this.mockMapper.Setup(
                s =>
                    s.Map<IEnumerable<SyndicationItemAdapter>, List<NewRssEntryDTO>>(
                        It.IsAny<IEnumerable<SyndicationItemAdapter>>(),
                        It.IsAny<List<NewRssEntryDTO>>())).Returns(new List<NewRssEntryDTO>());

            // act
            this.sut.UpdateChannel(rssChannelForUpdateDto);

            // assert
            this.mockSyndicationFeedAdapter
                .Verify(v => v.Load(It.IsAny<string>()), Times.Once);

            this.mockRssEntriesRepository
                .Verify(v => v.SaveToDatabase(
                    It.IsAny<List<NewRssEntryDTO>>()),
                Times.Once);

            this.mockChannelsUpdateRepository
                .Verify(v => v.SaveEvent(It.IsAny<long>()), Times.Once);

            this.mockMapper.Verify(v =>
                    v.Map<IEnumerable<SyndicationItemAdapter>, List<NewRssEntryDTO>>(
                        It.Is<IEnumerable<SyndicationItemAdapter>>(p => p.Count() == 1 && p.Count(i => i.Id == "2") == 1)),
                Times.Once);
        }