public void GetHomeViewDetails_Should_Return_Correct_IEnumumerables() { //arrange var storyType = new StoryType { Name = "fantasy" }; var user = new FanFictionUser { Nickname = "User", UserName = "******" }; this.userManager.CreateAsync(user).GetAwaiter(); var stories = new[] { new FanFictionStory { Id = 1, CreatedOn = DateTime.Now.AddHours(2), Type = storyType, Author = user, Summary = "someSummary1", Title = "SomeTitle1" }, new FanFictionStory { Id = 2, CreatedOn = DateTime.Now, Type = storyType, Author = user, Summary = null, Title = "SomeTitle2" }, new FanFictionStory { Id = 3, CreatedOn = DateTime.Now.AddDays(-1), Type = storyType, Author = user, Summary = "someSummary2", Title = "SomeTitle3" }, }; var announcements = new[] { new Announcement { Author = user, Content = "someContent1", Id = 1, PublshedOn = DateTime.Now }, new Announcement { Author = user, Content = "someContent2", Id = 2, PublshedOn = DateTime.Now.AddHours(2) }, new Announcement { Author = user, Content = "someContent3", Id = 3, PublshedOn = DateTime.Now.AddDays(-1) }, new Announcement { Author = user, Content = "someContent4", Id = 4, PublshedOn = DateTime.Now.AddMonths(-1) }, }; this.Context.StoryTypes.Add(storyType); this.Context.FictionStories.AddRange(stories); this.Context.Announcements.AddRange(announcements); this.Context.SaveChanges(); //act var result = this.userService.GetHomeViewDetails(); //assert int anounceCount = 3; int storiesCount = 2; string summary = stories[2].Summary; var date = stories[2].CreatedOn; var title = stories[2].Title; string anounceContent = announcements[3].Content; var anounceDate = announcements[3].PublshedOn.ToShortDateString(); var storyToNotBeIn = new StoryHomeOutputModel { Id = 3, Summary = summary, Author = user.UserName, CreatedOn = date, Rating = 0, StoryType = storyType.Name, Title = title }; var notice = new AnnouncementOutputModel { Author = user.UserName, Content = anounceContent, PublishedOn = anounceDate }; result.Stories.Should().NotBeNullOrEmpty() .And.HaveCount(storiesCount) .And.Subject.Should().NotContain(storyToNotBeIn); result.Announcements.Should().NotBeNullOrEmpty() .And.HaveCount(anounceCount) .And.Subject.Should().NotContain(notice); }
public void GetHomeViewDetails_Should_Return_Correct_View() { var bookGenre = new BookGenre() { Genre = "Horror" }; var user = new BookCreatorUser() { UserName = "******", Name = "Gosho Goshev" }; this.userManager.CreateAsync(user).GetAwaiter().GetResult(); var books = new[] { new Book() { Id = "1", CreatedOn = DateTime.UtcNow.AddHours(2), Genre = bookGenre, Author = user, Summary = "summary1", Title = "title1" }, new Book() { Id = "2", CreatedOn = DateTime.UtcNow, Genre = bookGenre, Author = user, Summary = null, Title = "title2" }, new Book() { Id = "3", CreatedOn = DateTime.Now.AddHours(6), Genre = bookGenre, Author = user, Summary = "summary2", Title = "title3" }, }; var announcements = new[] { new Announcement { Id = "1", Author = user, Content = "content1", PublishedOn = DateTime.UtcNow }, new Announcement { Id = "2", Author = user, Content = "content2", PublishedOn = DateTime.UtcNow.AddHours(4) }, new Announcement { Id = "3", Author = user, Content = "content3", PublishedOn = DateTime.UtcNow.AddHours(15) } }; this.Context.BooksGenres.Add(bookGenre); this.Context.Books.AddRange(books); this.Context.Announcements.AddRange(announcements); this.Context.SaveChanges(); var result = this.userService.GetHomeViewDetails(); var announcementsCount = 2; var booksCount = 2; var summary = books[2].Summary; var date = books[2].CreatedOn; var title = books[2].Title; var announcementContent = announcements[2].Content; var announcementDate = announcements[2].PublishedOn.ToShortDateString(); var bookToNotBeIn = new BookHomeOutputModel { Id = "3", Summary = summary, Author = user.UserName, CreatedOn = date, Rating = 0, Genre = bookGenre.Genre, Title = title }; var announcementToNotBeIn = new AnnouncementOutputModel { Author = user.UserName, Content = announcementContent, PublishedOn = announcementDate }; result.LatestBooks.Should().NotBeNullOrEmpty() .And.HaveCount(booksCount) .And.Subject.Should().NotContain(bookToNotBeIn); result.LatestAnnouncements.Should().NotBeNullOrEmpty() .And.HaveCount(announcementsCount) .And.Subject.Should().NotContain(announcementToNotBeIn); }