Exemple #1
0
        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);
        }
Exemple #2
0
        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"));
        }
Exemple #3
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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());
        }
Exemple #7
0
        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"));
        }