public void Throw_Argument_Exception_When_String_Is_Null() { //Arrange var fakeUnit = Mock.Of <IUnitOfWork>(); var sut = new TweetStatisticsService(fakeUnit); //Act & Assert Assert.ThrowsException <ArgumentException>(() => sut.GetDeletedTweetsyUserId(null)); }
public async Task PercentageWithPhotoUrls_IsOneHundred_WhenAllTweetsHavePhotoUrls() { var statsService = new TweetStatisticsService(); SetUpTweetList(statsService, TestData.TweetListWithAllEntities); await statsService.UpdateStatisticsAsync(); var stats = statsService.GetStatistics(); Assert.AreEqual((decimal)100.00, stats.PercentWithPhotoUrls); }
public async Task PercentageWithEmojis_IsGreaterThanZero_WhenSomeTweetsHaveEmoji() { var statsService = new TweetStatisticsService(); SetUpTweetList(statsService, TestData.TweetListWithSomeEmoji); await statsService.UpdateStatisticsAsync(); var stats = statsService.GetStatistics(); Assert.AreEqual((decimal)33.33, stats.PercentWithEmoji); }
public async Task PercentageWithPhotoUrls_IsGreaterThanZero_WhenSomeTweetsHavePhotoUrls() { var statsService = new TweetStatisticsService(); SetUpTweetList(statsService, TestData.TweetList); await statsService.UpdateStatisticsAsync(); var stats = statsService.GetStatistics(); Assert.AreEqual((decimal)75.00, stats.PercentWithPhotoUrls); }
public async Task AvgTweetRates_TweetsPerSecond_IsGreaterThanZero() { var statsService = new TweetStatisticsService(); SetUpTweetList(statsService, TestData.TweetList); await statsService.UpdateStatisticsAsync(); var stats = statsService.GetStatistics(); Assert.IsTrue(stats.AvgTweetRates.AvgTweetsPerSecond > 0); }
public async Task PercentageWithEmojis_IsZero_WhenNoTweetsHaveEmoji() { var statsService = new TweetStatisticsService(); SetUpTweetList(statsService, TestData.TweetList); await statsService.UpdateStatisticsAsync(); var stats = statsService.GetStatistics(); Assert.AreEqual(0, stats.PercentWithEmoji); }
public async Task TopEmoji_IsEmpty_WhenNoTweetsHaveEmoji() { var statsService = new TweetStatisticsService(); SetUpTweetList(statsService, TestData.TweetList); await statsService.UpdateStatisticsAsync(); var stats = statsService.GetStatistics(); Assert.AreEqual(0, stats.TopEmoji.Count); }
public async Task TotalTweets() { var statsService = new TweetStatisticsService(); SetUpTweetList(statsService, TestData.TweetList); await statsService.UpdateStatisticsAsync(); var stats = statsService.GetStatistics(); Assert.AreEqual(TestData.TweetList.Count, stats.Total); }
public async Task TopHashtags_IsEmpty_WhenNoTweetsHaveAnyHastags() { var statsService = new TweetStatisticsService(); SetUpTweetList(statsService, TestData.TweetListWithoutEntities); await statsService.UpdateStatisticsAsync(); var stats = statsService.GetStatistics(); Assert.AreEqual(0, stats.TopHashtags.Count); }
public async Task PercentWithUrls_IsZero_WhenTweetsHaveNoUrls() { var statsService = new TweetStatisticsService(); SetUpTweetList(statsService, TestData.TweetListWithoutEntities); await statsService.UpdateStatisticsAsync(); var stats = statsService.GetStatistics(); Assert.AreEqual(0, stats.PercentWithUrls); }
public async Task TopHashtags_HasFewerThanThreeItems_WhenThereAreFewerThanThreeHashtags() { var statsService = new TweetStatisticsService(); SetUpTweetList(statsService, TestData.TweetList.Take(2).ToList()); await statsService.UpdateStatisticsAsync(); var stats = statsService.GetStatistics(); Assert.AreEqual(2, stats.TopHashtags.Count); Assert.AreEqual("Hashtag1", stats.TopHashtags[0]); Assert.AreEqual("Hashtag2", stats.TopHashtags[1]); }
public async Task TopEmoji_HasMaxThreeItems_WhenThereAreMoreThanThreeEmoji() { var statsService = new TweetStatisticsService(); SetUpTweetList(statsService, new List <Tweet> { TestData.TweetWithDifferentEmoji }); await statsService.UpdateStatisticsAsync(); var stats = statsService.GetStatistics(); Assert.AreEqual(3, stats.TopEmoji.Count); }
public async Task TopDomains_HasFewerThanThreeItems_WhenThereAreFewerThanThreeUrls() { var statsService = new TweetStatisticsService(); SetUpTweetList(statsService, TestData.TweetList.Take(2).ToList()); await statsService.UpdateStatisticsAsync(); var stats = statsService.GetStatistics(); Assert.AreEqual(2, stats.TopDomains.Count); Assert.AreEqual("www.twitter.com", stats.TopDomains[0]); Assert.AreEqual("www.wwe.com", stats.TopDomains[1]); }
public void WhenThereAreNoTweets_AllStatisticsAreDefaultValues() { var statsService = new TweetStatisticsService(); var stats = statsService.GetStatistics(); Assert.AreEqual(0, stats.AvgTweetRates.AvgTweetsPerSecond); Assert.AreEqual(0, stats.AvgTweetRates.AvgTweetsPerMinute); Assert.AreEqual(0, stats.AvgTweetRates.AvgTweetsPerHour); Assert.AreEqual(0, stats.TopDomains.Count); Assert.AreEqual(0, stats.TopEmoji.Count); Assert.AreEqual(0, stats.TopHashtags.Count); Assert.AreEqual(0, stats.Total); Assert.AreEqual(0, stats.PercentWithEmoji); Assert.AreEqual(0, stats.PercentWithPhotoUrls); Assert.AreEqual(0, stats.PercentWithUrls); }
public async Task TopEmoji_HasFewerThanThreeItems_WhenThereAreFewerThanThreeEmoji() { var tweetList = new List <Tweet> { new Tweet { Data = new TweetData { Text = "Tweet with 2 emoji 👍 📺" } } }; var statsService = new TweetStatisticsService(); SetUpTweetList(statsService, tweetList); await statsService.UpdateStatisticsAsync(); var stats = statsService.GetStatistics(); Assert.AreEqual(2, stats.TopEmoji.Count); }
public void Return_Correct_Value_When_Provided_Valid_Id() { //Arrange var fakeUnitOfWork = new Mock <IUnitOfWork>(); var fakeUserTweetRepo = new Mock <IGenericRepository <UserTweet> >(); var fakeTimeProvider = new TestDateTimeProvider(); var testUser1 = new User { UserName = "******", Id = "TestId1" }; var testUser2 = new User { UserName = "******", Id = "TestId2" }; var testFollowee1 = new Followee { ScreenName = "TestScreenName1" }; var testFollowee2 = new Followee { ScreenName = "TestScreenName1" }; var testTweet1 = new Tweet { Text = "testTweet1", OriginalTweetCreatedOn = fakeTimeProvider.CreatedOn, TweetId = "testTweet1Id", Followee = testFollowee1 }; var testTweet2 = new Tweet { Text = "testTweet2", OriginalTweetCreatedOn = fakeTimeProvider.CreatedOn, TweetId = "testTweet2Id", Followee = testFollowee2 }; var testTweet3 = new Tweet { Text = "testTweet3", OriginalTweetCreatedOn = fakeTimeProvider.CreatedOn, TweetId = "testTweet3Id", Followee = testFollowee1 }; var testUserTweet1 = new UserTweet { Tweet = testTweet1, TweetId = testTweet1.TweetId, UserId = testUser1.Id, User = testUser1, IsDeleted = true, DeletedOn = fakeTimeProvider.DeletedOn }; var testUserTweet2 = new UserTweet { Tweet = testTweet2, TweetId = testTweet2.TweetId, UserId = testUser1.Id, User = testUser1, IsDeleted = false }; var testUserTweet3 = new UserTweet { Tweet = testTweet3, TweetId = testTweet3.TweetId, UserId = testUser2.Id, User = testUser2 }; var fakeUserTweetCollection = new List <UserTweet> { testUserTweet1, testUserTweet2, testUserTweet3 }; fakeUserTweetRepo.Setup(r => r.AllAndDeleted).Returns(fakeUserTweetCollection.AsQueryable()); fakeUnitOfWork.Setup(u => u.UserTweets).Returns(fakeUserTweetRepo.Object); var deletedModel = new FakeDeletedTweetsModel { TweetDeletedOn = testUserTweet1.DeletedOn.Value, Text = testUserTweet1.Tweet.Text, OriginalTweetCreatedOn = testUserTweet1.Tweet.OriginalTweetCreatedOn, AuthorScreenName = testUserTweet1.Tweet.Followee.ScreenName }; var expectedResult = new List <FakeDeletedTweetsModel> { deletedModel }; var sut = new TweetStatisticsService(fakeUnitOfWork.Object); //Act var actualResult = sut.GetDeletedTweetsyUserId("TestId1").ToList(); //Assert CollectionAssert.AreEqual(expectedResult, actualResult); }