public async Task DeleteCreditAsyncShouldDeletePendingCredit(CreditStatus creditStatus, CreditStatus expected) { var options = new DbContextOptionsBuilder <PhotoparallelDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .Options; var dbContext = new PhotoparallelDbContext(options); var credit = new CreditContract { CreditStatus = creditStatus }; dbContext.CreditContracts.Add(credit); var order = new Order { OrderStatus = OrderStatus.Pending }; dbContext.Orders.Add(order); credit.Order = order; await dbContext.SaveChangesAsync(); var ordersService = new Mock <IOrdersService>(); var creditsService = new CreditsService(dbContext, ordersService.Object); await creditsService.DeleteCreditAsync(credit.Id); Assert.Equal(expected, credit.CreditStatus); }
public async Task TestMultipleTask() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options; var dbContext = new ApplicationDbContext(options); var service = new CreditsService(dbContext); var user1 = new ApplicationUser { Id = "1", Credits = 50, PhoneNumber = "123456", Email = "*****@*****.**" }; var user2 = new ApplicationUser { Id = "2", Credits = 20, PhoneNumber = "234567", Email = "*****@*****.**" }; await dbContext.Users.AddAsync(user1); await dbContext.Users.AddAsync(user2); await dbContext.SaveChangesAsync(); Assert.IsType <string>(await service.TransferCredits(user1, "234567", 10, "hello")); Assert.Equal("Successful", await service.TransferCredits(user1, "234567", 10, "hello")); Assert.Equal("Receiving user not found", await service.TransferCredits(user1, "2345678", 10, "hello")); Assert.Equal("Not enough credits", await service.TransferCredits(user1, "234567", 1000, "hello")); }
public async Task GetOpenCreditByUserIdAsyncShouldReturnOpenCreditrByUser() { var options = new DbContextOptionsBuilder <PhotoparallelDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .Options; var dbContext = new PhotoparallelDbContext(options); var user1 = new ApplicationUser { UserName = "******" }; var user2 = new ApplicationUser { UserName = "******" }; dbContext.Add(user1); dbContext.Add(user2); var credits = new List <CreditContract> { new CreditContract { CreditStatus = CreditStatus.Open, Customer = user1 }, new CreditContract { CreditStatus = CreditStatus.Pending, Customer = user1 }, new CreditContract { CreditStatus = CreditStatus.Approved, Customer = user1 }, new CreditContract { CreditStatus = CreditStatus.Open, Customer = user2 }, new CreditContract { CreditStatus = CreditStatus.Denied, Customer = user1 }, }; dbContext.CreditContracts.AddRange(credits); await dbContext.SaveChangesAsync(); var ordersService = new Mock <IOrdersService>(); var creditsService = new CreditsService(dbContext, ordersService.Object); var userCredit = await creditsService.GetOpenCreditsByUserIdAsync(user1.Id); Assert.Equal(user1.UserName, userCredit.Customer.UserName); Assert.Equal(CreditStatus.Open, userCredit.CreditStatus); }
public async Task GetPersonFilmography_CorrectDataReturned() { var db = CreateAndSeedDb(); var service = new CreditsService(db); var filmography = await service.GetPersonFilmographyAsync(1); Assert.Equal(4, filmography.Count); Assert.Equal(3, filmography[0].MovieId); Assert.Equal("Acting", filmography[0].Department); Assert.Equal(3, filmography[1].MovieId); Assert.Equal("Directing", filmography[1].Department); Assert.Equal(1, filmography[2].MovieId); Assert.Equal("Acting", filmography[2].Department); Assert.Equal(2, filmography[3].MovieId); Assert.Equal("Camera", filmography[3].Department); }
public async Task GetCreditByIdAsyncShouldNotReturnOpenCredit() { var options = new DbContextOptionsBuilder <PhotoparallelDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .Options; var dbContext = new PhotoparallelDbContext(options); var credit = new CreditContract { CreditStatus = CreditStatus.Open, }; dbContext.CreditContracts.Add(credit); await dbContext.SaveChangesAsync(); var ordersService = new Mock <IOrdersService>(); var creditsService = new CreditsService(dbContext, ordersService.Object); var searchedCredit = await creditsService.GetCreditByIdAsync(credit.Id); Assert.Null(searchedCredit); }
public async Task GetDeniedCreditsAsyncShouldReturnAllDeniedCredits() { var options = new DbContextOptionsBuilder <PhotoparallelDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .Options; var dbContext = new PhotoparallelDbContext(options); var credits = new List <CreditContract> { new CreditContract { CreditStatus = CreditStatus.Open }, new CreditContract { CreditStatus = CreditStatus.Pending }, new CreditContract { CreditStatus = CreditStatus.Denied }, new CreditContract { CreditStatus = CreditStatus.Approved }, new CreditContract { CreditStatus = CreditStatus.Denied }, }; dbContext.CreditContracts.AddRange(credits); await dbContext.SaveChangesAsync(); var ordersService = new Mock <IOrdersService>(); var creditsService = new CreditsService(dbContext, ordersService.Object); var deniedCredits = await creditsService.GetDeniedCreditsAsync(); Assert.Equal(2, deniedCredits.Count()); }
public async Task FinishCreditAsyncShouldChangeCreditStatusToPending() { var options = new DbContextOptionsBuilder <PhotoparallelDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .Options; var dbContext = new PhotoparallelDbContext(options); var credit = new CreditContract { CreditStatus = CreditStatus.Open, Months = 12 }; dbContext.CreditContracts.Add(credit); await dbContext.SaveChangesAsync(); var ordersService = new Mock <IOrdersService>(); var creditsService = new CreditsService(dbContext, ordersService.Object); await creditsService.FinishCreditAsync(credit); Assert.Equal(CreditStatus.Pending, credit.CreditStatus); Assert.Equal(DateTime.UtcNow.ToString("dd/MM/YYYY"), credit.IssuedOn.ToString("dd/MM/YYYY")); Assert.Equal(DateTime.UtcNow.AddMonths(credit.Months).ToString("dd/MM/YYYY"), credit.ActiveUntil.ToString("dd/MM/YYYY")); }