public void Throw_Argument_Null_Exception_When_Followee_Not_Found() { // Arrange var mapperMock = new Mock <IMappingProvider>(); var unitOfWorkMock = new Mock <IUnitOfWork>(); var repoMock = new Mock <IGenericRepository <Followee> >(); var twitterApiCallServiceMock = new Mock <ITwitterApiCallService>(); var dateTimeParserMock = new Mock <IDateTimeParser>(); var followee = new Followee { ScreenName = "TestScreenName1", Bio = "TestBio1TestBio1TestBio1TestBio1TestBio1", FolloweeId = "TestFolloweeId1", Name = "TestFolloweeName1" }; var followeeCollection = new List <Followee> { followee }; repoMock.Setup(r => r.All).Returns(followeeCollection.AsQueryable()); unitOfWorkMock.Setup(u => u.Followees).Returns(repoMock.Object); var sut = new FolloweeService(unitOfWorkMock.Object, mapperMock.Object, twitterApiCallServiceMock.Object, dateTimeParserMock.Object); //Act & Assert Assert.ThrowsException <ArgumentNullException>(() => sut.Update("1")); }
public void Invoke_GetTwitterUserDetailsById_When_Followee_Found() { //Arrange var mapperMock = new Mock <IMappingProvider>(); var unitOfWorkMock = new Mock <IUnitOfWork>(); var repoMock = new Mock <IGenericRepository <Followee> >(); var twitterApiCallServiceMock = new Mock <ITwitterApiCallService>(); var dateTimeParserMock = new Mock <IDateTimeParser>(); var followee = new Followee { ScreenName = "TestScreenName1", Bio = "TestBio1TestBio1TestBio1TestBio1TestBio1", FolloweeId = "TestFolloweeId1", Name = "TestFolloweeName1" }; var followeeCollection = new List <Followee> { followee }; repoMock.Setup(r => r.All).Returns(followeeCollection.AsQueryable()); twitterApiCallServiceMock.Setup(x => x.GetTwitterUserDetailsById(It.IsAny <string>())).Returns(new FolloweeFromApiDto()); repoMock.Setup(s => s.Update(It.IsAny <Followee>())).Verifiable(); unitOfWorkMock.Setup(u => u.Followees).Returns(repoMock.Object); var sut = new FolloweeService(unitOfWorkMock.Object, mapperMock.Object, twitterApiCallServiceMock.Object, dateTimeParserMock.Object); //Act sut.Update(followee.FolloweeId); //Assert twitterApiCallServiceMock.Verify(v => v.GetTwitterUserDetailsById(It.IsAny <string>()), Times.Once); }
public void Returns_False_If_Followee_Doesnt_Exist_In_Db() { //Arrange var mapperMock = new Mock <IMappingProvider>(); var unitOfWorkMock = new Mock <IUnitOfWork>(); var repoMock = new Mock <IGenericRepository <Followee> >(); var twitterApiCallServiceMock = new Mock <ITwitterApiCallService>(); var dateTimeParserMock = new Mock <IDateTimeParser>(); var followee = new Followee { ScreenName = "TestScreenName1", Bio = "TestBio1TestBio1TestBio1TestBio1TestBio1", FolloweeId = "TestFolloweeId1", Name = "TestFolloweeName1" }; var followeeCollection = new List <Followee> { followee }; repoMock.Setup(r => r.AllAndDeleted).Returns(followeeCollection.AsQueryable()).Verifiable(); unitOfWorkMock.Setup(u => u.Followees.AllAndDeleted).Returns(repoMock.Object.AllAndDeleted); var sut = new FolloweeService(unitOfWorkMock.Object, mapperMock.Object, twitterApiCallServiceMock.Object, dateTimeParserMock.Object); var exists = unitOfWorkMock.Object.Followees.AllAndDeleted.Any(x => x.FolloweeId == "1"); //Act & Assert Assert.IsFalse(exists); }
public void Throws_ArgumentNullException_When_Called_With_StringEmpty_FolloweeId() { var mapperMock = new Mock <IMappingProvider>(); var unitOfWorkMock = new Mock <IUnitOfWork>(); var repoMock = new Mock <IGenericRepository <Followee> >(); var twitterApiCallServiceMock = new Mock <ITwitterApiCallService>(); var dateTimeParserMock = new Mock <IDateTimeParser>(); var followees = new List <Followee> { new Followee { FolloweeId = "1", ScreenName = "justinT", Name = "Justin Trudeau" } }; mapperMock.Setup(x => x.MapTo <FolloweeDto>(followees[0])) .Returns(new FolloweeDto { FolloweeId = followees[0].FolloweeId }); repoMock.Setup(r => r.All).Returns(followees.AsQueryable()); unitOfWorkMock.Setup(u => u.Followees).Returns(repoMock.Object); var followeeService = new FolloweeService(unitOfWorkMock.Object, mapperMock.Object, twitterApiCallServiceMock.Object, dateTimeParserMock.Object); Assert.ThrowsException <ArgumentException>(() => followeeService.GetFolloweeById(string.Empty)); }
public void ReturnFollowee_WhenInvokedAnExistingInDbFolloweeId() { var mapperMock = new Mock <IMappingProvider>(); var unitOfWorkMock = new Mock <IUnitOfWork>(); var repoMock = new Mock <IGenericRepository <Followee> >(); var twitterApiCallServiceMock = new Mock <ITwitterApiCallService>(); var dateTimeParserMock = new Mock <IDateTimeParser>(); var followees = new List <Followee> { new Followee { FolloweeId = "1", ScreenName = "justinT", Name = "Justin Trudeau" } }; mapperMock.Setup(x => x.MapTo <FolloweeDto>(followees[0])) .Returns(new FolloweeDto { FolloweeId = followees[0].FolloweeId }); repoMock.Setup(r => r.All).Returns(followees.AsQueryable()); unitOfWorkMock.Setup(u => u.Followees).Returns(repoMock.Object); var followeeService = new FolloweeService(unitOfWorkMock.Object, mapperMock.Object, twitterApiCallServiceMock.Object, dateTimeParserMock.Object); var cut = followeeService.GetFolloweeById("1"); Assert.AreEqual("1", cut.FolloweeId); }
public void Invoke_SaveChanges_When_Followee_Exists() { //Arrange var mapperMock = new Mock <IMappingProvider>(); var unitOfWorkMock = new Mock <IUnitOfWork>(); var repoMock = new Mock <IGenericRepository <Followee> >(); var twitterApiCallServiceMock = new Mock <ITwitterApiCallService>(); var dateTimeParserMock = new Mock <IDateTimeParser>(); var followee = new Followee { ScreenName = "TestScreenName1", Bio = "TestBio1TestBio1TestBio1TestBio1TestBio1", FolloweeId = "TestFolloweeId1", Name = "TestFolloweeName1" }; var followeeCollection = new List <Followee> { followee }; repoMock.Setup(r => r.All).Returns(followeeCollection.AsQueryable()); unitOfWorkMock.Setup(u => u.Followees).Returns(repoMock.Object); var sut = new FolloweeService(unitOfWorkMock.Object, mapperMock.Object, twitterApiCallServiceMock.Object, dateTimeParserMock.Object); //Act sut.Delete(followee.FolloweeId); //Assert unitOfWorkMock.Verify(v => v.SaveChanges(), Times.Once); }
public void NotReturnNull_When_FolloweeServiceCalled() { var unitOfWorkMock = new Mock <IUnitOfWork>(); var mapperMock = new Mock <IMappingProvider>(); var twitterApiCallServiceMock = new Mock <ITwitterApiCallService>(); var dateTimeParserMock = new Mock <IDateTimeParser>(); var followeeService = new FolloweeService(unitOfWorkMock.Object, mapperMock.Object, twitterApiCallServiceMock.Object, dateTimeParserMock.Object); Assert.IsNotNull(followeeService); }
public void Invokes_SaveChanges_When_Followee_Is_Created() { // Arrange var mapperMock = new Mock <IMappingProvider>(); var unitOfWorkMock = new Mock <IUnitOfWork>(); var repoMock = new Mock <IGenericRepository <Followee> >(); var twitterApiCallServiceMock = new Mock <ITwitterApiCallService>(); var dateTimeParserMock = new Mock <IDateTimeParser>(); var followeeFromApi = new FolloweeFromApiDto() { FolloweeId = "1", Name = "FolloweeName", Url = "SomeUrl", FollowersCount = 10, FriendsCount = 5, FolloweeOriginallyCreatedOn = "29/04/2018", FavoritesCount = 5, StatusesCount = 100 }; var followee = new Followee() { FolloweeId = followeeFromApi.FolloweeId, Bio = followeeFromApi.Bio, ScreenName = followeeFromApi.ScreenName, Name = followeeFromApi.Name, FolloweeOriginallyCreatedOn = DateTime.Now, Url = followeeFromApi.Url, FavoritesCount = followeeFromApi.FavoritesCount, FollowersCount = followeeFromApi.FollowersCount, FriendsCount = followeeFromApi.FriendsCount, StatusesCount = followeeFromApi.StatusesCount }; var followeeCollection = new List <Followee> { followee }; repoMock.Setup(r => r.AllAndDeleted).Returns(followeeCollection.AsQueryable()); unitOfWorkMock.Setup(u => u.Followees).Returns(repoMock.Object); unitOfWorkMock.Setup(u => u.Followees.Add(It.IsAny <Followee>())).Verifiable(); var sut = new FolloweeService(unitOfWorkMock.Object, mapperMock.Object, twitterApiCallServiceMock.Object, dateTimeParserMock.Object); //Act var followeeToAdd = sut.Create(followeeFromApi); //Assert unitOfWorkMock.Verify(v => v.SaveChanges(), Times.Once); }
public void Throw_Argument_Null_Exception_When_Followee_Is_Null() { //Arrange var mapperMock = new Mock <IMappingProvider>(); var unitOfWorkMock = new Mock <IUnitOfWork>(); var repoMock = new Mock <IGenericRepository <Followee> >(); var twitterApiCallServiceMock = new Mock <ITwitterApiCallService>(); var dateTimeParserMock = new Mock <IDateTimeParser>(); var sut = new FolloweeService(unitOfWorkMock.Object, mapperMock.Object, twitterApiCallServiceMock.Object, dateTimeParserMock.Object); //Act & Assert Assert.ThrowsException <ArgumentNullException>(() => sut.Create(null)); }
public void Throw_Argument_Exception_When_UserId_Is_Empty() { //Arrange var mapperMock = new Mock <IMappingProvider>(); var unitOfWorkMock = new Mock <IUnitOfWork>(); var repoMock = new Mock <IGenericRepository <UserFollowee> >(); var twitterApiCallServiceMock = new Mock <ITwitterApiCallService>(); var dateTimeParserMock = new Mock <IDateTimeParser>(); var sut = new FolloweeService(unitOfWorkMock.Object, mapperMock.Object, twitterApiCallServiceMock.Object, dateTimeParserMock.Object); //Act & Assert Assert.ThrowsException <ArgumentException>(() => sut.GetAllFolloweesByUserId("")); }
public void ReturnAllFolloweesForUser_WhenInvokedAnExistingInDbUserId() { // Arrange var mapperMock = new Mock <IMappingProvider>(); var unitOfWorkMock = new Mock <IUnitOfWork>(); var repoMock = new Mock <IGenericRepository <UserFollowee> >(); var twitterApiCallServiceMock = new Mock <ITwitterApiCallService>(); var dateTimeParserMock = new Mock <IDateTimeParser>(); var testUser1 = new User { UserName = "******", Id = "TestId1" }; var testUser2 = new User { UserName = "******", Id = "TestId2" }; var testFollowee1 = new Followee { ScreenName = "TestScreenName1", Bio = "TestBio1TestBio1TestBio1TestBio1TestBio1", FolloweeId = "TestFolloweeId1", Name = "TestFolloweeName1" }; var testFollowee2 = new Followee { ScreenName = "TestScreenName2", Bio = "TestBio2TestBio2TestBio2TestBio2TestBio2", FolloweeId = "TestFolloweeId2", Name = "TestFolloweeName2" }; var testFollowee3 = new Followee { ScreenName = "TestScreenName3", Bio = "TestBio3TestBio3TestBio3TestBio3TestBio3", FolloweeId = "TestFolloweeId3", Name = "TestFolloweeName3" }; var testUserFollowee1 = new UserFollowee { FolloweeId = testFollowee1.FolloweeId, Followee = testFollowee1, UserId = testUser1.Id, User = testUser1 }; var testUserFollowee2 = new UserFollowee { FolloweeId = testFollowee2.FolloweeId, Followee = testFollowee2, UserId = testUser1.Id, User = testUser1 }; var testUserFollowee3 = new UserFollowee { FolloweeId = testFollowee3.FolloweeId, Followee = testFollowee3, UserId = testUser2.Id, User = testUser2 }; var userFolloweesCollectionMock = new List <UserFollowee> { testUserFollowee1, testUserFollowee2, testUserFollowee3 }; repoMock.Setup(r => r.All).Returns(userFolloweesCollectionMock.AsQueryable()); unitOfWorkMock.Setup(u => u.UserFollowees).Returns(repoMock.Object); var savedFollowee1 = new FolloweeDisplayListDto { FolloweeId = testUserFollowee1.Followee.FolloweeId, Bio = testUserFollowee1.Followee.Bio.Substring(0, 25) + "...", FolloweeOriginallyCreatedOn = testUserFollowee1.Followee.FolloweeOriginallyCreatedOn, ScreenName = testUserFollowee1.Followee.ScreenName, Name = testUserFollowee1.Followee.Name }; var savedFollowee2 = new FolloweeDisplayListDto { FolloweeId = testUserFollowee2.Followee.FolloweeId, ScreenName = testUserFollowee2.Followee.ScreenName, Bio = testUserFollowee2.Followee.Bio.Substring(0, 25) + "...", FolloweeOriginallyCreatedOn = testUserFollowee2.Followee.FolloweeOriginallyCreatedOn, Name = testUserFollowee2.Followee.Name }; var expectedResult = new List <FolloweeDisplayListDto> { savedFollowee1, savedFollowee2 }; var sut = new FolloweeService(unitOfWorkMock.Object, mapperMock.Object, twitterApiCallServiceMock.Object, dateTimeParserMock.Object); //Act var actualResult = sut.GetAllFolloweesByUserId("TestId1"); //Assert Assert.AreEqual(2, actualResult.Count); }