public async Task ReturnFalse_WhenTwitterAccountRepositoryDeleteMetodReturnsFalse() { //Arrange var unitOfWorkMock = new Mock <IUnitOfWork>(); var mappingProviderMock = new Mock <IMappingProvider>(); var userRepositoryMock = new Mock <IUserRepository>(); var twitterAccountRepositoryMock = new Mock <ITwitterAccountRepository>(); var userId = "30"; var twitterAccountId = "1905"; twitterAccountRepositoryMock .Setup(x => x.UserTwitterAccountIsDeleted(userId, twitterAccountId)) .ReturnsAsync(false); var twitterAccountService = new TwitterAccountService( unitOfWorkMock.Object, mappingProviderMock.Object, userRepositoryMock.Object, twitterAccountRepositoryMock.Object); //Act var userIsDeleted = await twitterAccountService.DeleteTwitterAccountFromUser(userId, twitterAccountId); //Assert Assert.IsFalse(userIsDeleted); }
public void ThrowArgumentException_WhenInvokedWithInvalidEmptyUserIdParameter() { //Arrange var unitOfWorkMock = new Mock <IUnitOfWork>(); var mappingProviderMock = new Mock <IMappingProvider>(); var userRepositoryMock = new Mock <IUserRepository>(); var twitterAccountRepositoryMock = new Mock <ITwitterAccountRepository>(); string userId = string.Empty; var twitterAccount = new TwitterAccount() { Name = "Marto Stamatov" }; var expectedResult = new TwitterAccountDto() { Name = "Marto Stamatov" }; twitterAccountRepositoryMock .Setup(x => x.Get(userId)) .ReturnsAsync(twitterAccount); mappingProviderMock .Setup(x => x.MapTo <TwitterAccountDto>(twitterAccount)) .Returns(expectedResult); var twitterAccountService = new TwitterAccountService( unitOfWorkMock.Object, mappingProviderMock.Object, userRepositoryMock.Object, twitterAccountRepositoryMock.Object); //Act && Assert Assert.ThrowsExceptionAsync <ArgumentException>(async() => await twitterAccountService.GetTwitterAccountById(userId)); }
public async Task ReturnTrue_WhenInvokedWithValidParameters() { //Arrange var unitOfWorkMock = new Mock <IUnitOfWork>(); var mappingProviderMock = new Mock <IMappingProvider>(); var userRepositoryMock = new Mock <IUserRepository>(); var twitterAccountRepositoryMock = new Mock <ITwitterAccountRepository>(); var userId = "30"; var twitterAccountId = "1905"; twitterAccountRepositoryMock .Setup(x => x.UserTwitterAccountIsDeleted(userId, twitterAccountId)) .ReturnsAsync(true); var twitterAccountService = new TwitterAccountService( unitOfWorkMock.Object, mappingProviderMock.Object, userRepositoryMock.Object, twitterAccountRepositoryMock.Object); //Act var userIsDeleted = await twitterAccountService.DeleteTwitterAccountFromUser(userId, twitterAccountId); //Assert Assert.IsTrue(userIsDeleted); }
public async Task CallSaveChangesOnce_WhenTwitterAccountAlreadyExistsInDatabase() { var unitOfWorkMock = new Mock <IUnitOfWork>(); var mappingProviderMock = new Mock <IMappingProvider>(); var userRepositoryMock = new Mock <IUserRepository>(); var twitterAccountRepositoryMock = new Mock <ITwitterAccountRepository>(); string userId = "1905"; var twitterAccountToAdd = new TwitterAccountApiDto() { Name = "Marto Stamatov", Id = "30", ImageUrl = "SomeUrl" }; var twitterAccount = new TwitterAccount() { Name = "Marto Stamatov", Id = "30", ImageUrl = "SomeUrl" }; var user = new User() { Name = "Stamat" }; twitterAccountRepositoryMock .Setup(x => x.Get(twitterAccountToAdd.Id)) .ReturnsAsync(twitterAccount); mappingProviderMock .Setup(x => x.MapTo <TwitterAccount>(twitterAccountToAdd)) .Returns(twitterAccount); userRepositoryMock .Setup(x => x.Get(userId)) .ReturnsAsync(user); userRepositoryMock .Setup(x => x.TwitterAccountAddedToUser(user, twitterAccount)) .ReturnsAsync(true); var twitterAccountService = new TwitterAccountService( unitOfWorkMock.Object, mappingProviderMock.Object, userRepositoryMock.Object, twitterAccountRepositoryMock.Object); //Act var actualResult = await twitterAccountService.AddTwitterAccountToUser(twitterAccountToAdd, userId); //Assert unitOfWorkMock.Verify(x => x.SaveChangesAsync(), Times.Once); }
public async Task ReturnFalse_TwitterAccountAddMethodReturnsFalse() { var unitOfWorkMock = new Mock <IUnitOfWork>(); var mappingProviderMock = new Mock <IMappingProvider>(); var userRepositoryMock = new Mock <IUserRepository>(); var twitterAccountRepositoryMock = new Mock <ITwitterAccountRepository>(); string userId = "1905"; var twitterAccountToAdd = new TwitterAccountApiDto() { Name = "Marto Stamatov", Id = "30", ImageUrl = "SomeUrl" }; var twitterAccount = new TwitterAccount() { Name = "Marto Stamatov", Id = "30", ImageUrl = "SomeUrl" }; var user = new User(); twitterAccountRepositoryMock .Setup(x => x.Get(twitterAccountToAdd.Id)) .ReturnsAsync(twitterAccount); mappingProviderMock .Setup(x => x.MapTo <TwitterAccount>(twitterAccountToAdd)) .Returns(twitterAccount); userRepositoryMock .Setup(x => x.Get(userId)) .ReturnsAsync(user); userRepositoryMock .Setup(x => x.TwitterAccountAddedToUser(user, twitterAccount)) .ReturnsAsync(false); var twitterAccountService = new TwitterAccountService( unitOfWorkMock.Object, mappingProviderMock.Object, userRepositoryMock.Object, twitterAccountRepositoryMock.Object); //Act var actualResult = await twitterAccountService.AddTwitterAccountToUser(twitterAccountToAdd, userId); //Assert Assert.IsFalse(actualResult); }
public void ThrowArgumentNullException_WhenUserRepositoryGetMethodReturnsNull() { var unitOfWorkMock = new Mock <IUnitOfWork>(); var mappingProviderMock = new Mock <IMappingProvider>(); var userRepositoryMock = new Mock <IUserRepository>(); var twitterAccountRepositoryMock = new Mock <ITwitterAccountRepository>(); string userId = "1905"; var twitterAccountToAdd = new TwitterAccountApiDto() { Name = "Marto Stamatov", Id = "30", ImageUrl = "SomeUrl" }; var twitterAccount = new TwitterAccount() { Name = "Marto Stamatov", Id = "30", ImageUrl = "SomeUrl" }; var user = new User(); twitterAccountRepositoryMock .Setup(x => x.Get(twitterAccountToAdd.Id)) .ReturnsAsync(twitterAccount); mappingProviderMock .Setup(x => x.MapTo <TwitterAccount>(twitterAccountToAdd)) .Returns(twitterAccount); userRepositoryMock .Setup(x => x.Get(userId)) .ReturnsAsync((User)null); userRepositoryMock .Setup(x => x.TwitterAccountAddedToUser(user, twitterAccount)) .ReturnsAsync(true); var twitterAccountService = new TwitterAccountService( unitOfWorkMock.Object, mappingProviderMock.Object, userRepositoryMock.Object, twitterAccountRepositoryMock.Object); //Act && Assert Assert.ThrowsExceptionAsync <ArgumentNullException>(async() => await twitterAccountService.AddTwitterAccountToUser(twitterAccountToAdd, userId)); }
public void CreateInstance_WhenInvokedWithValidParameters() { //Arrange var unitOfWorkMock = new Mock <IUnitOfWork>(); var mappingProviderMock = new Mock <IMappingProvider>(); var userRepositoryMock = new Mock <IUserRepository>(); var twitterAccountRepositoryMock = new Mock <ITwitterAccountRepository>(); //Act var twitterAccountService = new TwitterAccountService( unitOfWorkMock.Object, mappingProviderMock.Object, userRepositoryMock.Object, twitterAccountRepositoryMock.Object); //Assert Assert.IsNotNull(twitterAccountService); Assert.IsInstanceOfType(twitterAccountService, typeof(ITwitterAccountService)); }
public async Task ReturnTwitterAccount_WhenInvokedWithValidIdParameter() { //Arrange var unitOfWorkMock = new Mock <IUnitOfWork>(); var mappingProviderMock = new Mock <IMappingProvider>(); var userRepositoryMock = new Mock <IUserRepository>(); var twitterAccountRepositoryMock = new Mock <ITwitterAccountRepository>(); var userId = "30"; var twitterAccount = new TwitterAccount() { Name = "Marto Stamatov" }; var expectedResult = new TwitterAccountDto() { Name = "Marto Stamatov" }; twitterAccountRepositoryMock .Setup(x => x.Get(userId)) .ReturnsAsync(twitterAccount); mappingProviderMock .Setup(x => x.MapTo <TwitterAccountDto>(twitterAccount)) .Returns(expectedResult); var twitterAccountService = new TwitterAccountService( unitOfWorkMock.Object, mappingProviderMock.Object, userRepositoryMock.Object, twitterAccountRepositoryMock.Object); //Act var actualResult = await twitterAccountService.GetTwitterAccountById(userId); //Assert Assert.IsNotNull(actualResult); Assert.AreEqual(actualResult.Name, expectedResult.Name); }
public void ThrowArgumentException_WhenInvokedWithInvalidEmptyUserIdParameter() { //Arrange var unitOfWorkMock = new Mock <IUnitOfWork>(); var mappingProviderMock = new Mock <IMappingProvider>(); var userRepositoryMock = new Mock <IUserRepository>(); var twitterAccountRepositoryMock = new Mock <ITwitterAccountRepository>(); var userId = "30"; var twitterAccountId = "1905"; twitterAccountRepositoryMock .Setup(x => x.UserTwitterAccountIsDeleted(userId, twitterAccountId)) .ReturnsAsync(true); var twitterAccountService = new TwitterAccountService( unitOfWorkMock.Object, mappingProviderMock.Object, userRepositoryMock.Object, twitterAccountRepositoryMock.Object); //Act && Assert Assert.ThrowsExceptionAsync <ArgumentException>(() => twitterAccountService.DeleteTwitterAccountFromUser(string.Empty, twitterAccountId)); }