public async Task ThrowServiceException_WhenAmountParameterIsBiggerThanUserBalance() { var contextOptions = new DbContextOptionsBuilder <BedeSlotsDbContext>() .UseInMemoryDatabase(databaseName: "ReduceUserBalance_WhenValidParametersArePassed") .UseInternalServiceProvider(serviceProvider).Options; var tenDollars = 10; var amountBiggerThanUserBalance = 5000; var user = new User() { Balance = tenDollars, Currency = Currency.USD }; using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions)) { bedeSlotsContext.Users.Add(user); bedeSlotsContext.SaveChanges(); } using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions)) { var currencyConverterMock = new Mock <ICurrencyConverterService>(); var sut = new Data.UserBalanceService(bedeSlotsContext, currencyConverterMock.Object); await Assert.ThrowsExceptionAsync <ServiceException>(async() => await sut.ReduceMoneyAsync(amountBiggerThanUserBalance, user.Id)); } }
public async Task ReduceUserBalance_WhenValidParametersArePassed() { var contextOptions = new DbContextOptionsBuilder <BedeSlotsDbContext>() .UseInMemoryDatabase(databaseName: "ReduceUserBalance_WhenValidParametersArePassed") .UseInternalServiceProvider(serviceProvider).Options; var tenDollars = 10; var user = new User() { Balance = tenDollars + tenDollars, Currency = Currency.USD }; using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions)) { bedeSlotsContext.Users.Add(user); bedeSlotsContext.SaveChanges(); } using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions)) { var currencyConverterMock = new Mock <ICurrencyConverterService>(); var sut = new Data.UserBalanceService(bedeSlotsContext, currencyConverterMock.Object); var result = await sut.ReduceMoneyAsync(tenDollars, user.Id); Assert.IsTrue(result == tenDollars); } }
public async Task ReturnUserBalance_WhenValidUserIdIsPassed() { var contextOptions = new DbContextOptionsBuilder <BedeSlotsDbContext>() .UseInMemoryDatabase(databaseName: "ReturnUserBalance_WhenValidUserIdIsPassed") .UseInternalServiceProvider(serviceProvider).Options; var expectedBalance = 100; var user = new User() { Balance = expectedBalance, Currency = Currency.USD }; using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions)) { bedeSlotsContext.Users.Add(user); bedeSlotsContext.SaveChanges(); } using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions)) { var currencyConverterMock = new Mock <ICurrencyConverterService>(); var sut = new Data.UserBalanceService(bedeSlotsContext, currencyConverterMock.Object); var result = await sut.GetUserBalanceByIdAsync(user.Id); Assert.IsTrue(result == expectedBalance); } }
public void CreateNewInstance_WhenValidParametersArePassed() { var contextOptions = new DbContextOptionsBuilder <BedeSlotsDbContext>() .UseInMemoryDatabase(databaseName: "CreateNewInstance_WhenValidParametersArePassed") .UseInternalServiceProvider(serviceProvider).Options; using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions)) { var currencyConverterMock = new Mock <ICurrencyConverterService>(); var sut = new Data.UserBalanceService(bedeSlotsContext, currencyConverterMock.Object); Assert.IsInstanceOfType(sut, typeof(Data.UserBalanceService)); } }
public async Task ThrowServiceException_WhenNullParameterIsPassed() { var contextOptions = new DbContextOptionsBuilder <BedeSlotsDbContext>() .UseInMemoryDatabase(databaseName: "ThrowServiceException_WhenNullParameterIsPassed") .UseInternalServiceProvider(serviceProvider).Options; using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions)) { var currencyConverterMock = new Mock <ICurrencyConverterService>(); var sut = new Data.UserBalanceService(bedeSlotsContext, currencyConverterMock.Object); await Assert.ThrowsExceptionAsync <ServiceException>(async() => await sut.GetUserBalanceByIdInBaseCurrencyAsync(null)); } }
public async Task ThrowServiceException_WhenNegativeAmountParameterIsPassed() { var contextOptions = new DbContextOptionsBuilder <BedeSlotsDbContext>() .UseInMemoryDatabase(databaseName: "ThrowServiceException_WhenNegativeAmountParameterIsPassed") .UseInternalServiceProvider(serviceProvider).Options; using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions)) { var currencyConverterMock = new Mock <ICurrencyConverterService>(); decimal invalidNumber = -10; var sut = new Data.UserBalanceService(bedeSlotsContext, currencyConverterMock.Object); await Assert.ThrowsExceptionAsync <ServiceException>(async() => await sut.DepositMoneyAsync(invalidNumber, "valid id")); } }
public async Task ThrowServiceException_WhenUnexistingUserIdIsPassed() { var contextOptions = new DbContextOptionsBuilder <BedeSlotsDbContext>() .UseInMemoryDatabase(databaseName: "ThrowServiceException_WhenUnexistingUserIdIsPassed") .UseInternalServiceProvider(serviceProvider).Options; using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions)) { var currencyConverterMock = new Mock <ICurrencyConverterService>(); var transactionServiceMock = new Mock <ITransactionService>(); var notExistingUserId = "not existing id"; var sut = new Data.UserBalanceService(bedeSlotsContext, currencyConverterMock.Object); await Assert.ThrowsExceptionAsync <ServiceException>(async() => await sut.GetUserBalanceByIdAsync(notExistingUserId)); } }
public async Task ThrowServiceException_WhenUserNotExistInDatabase() { var contextOptions = new DbContextOptionsBuilder <BedeSlotsDbContext>() .UseInMemoryDatabase(databaseName: "ThrowServiceException_WhenUserNotExistInDatabase") .UseInternalServiceProvider(serviceProvider).Options; var tenDollars = 10; var user = new User() { Balance = tenDollars + tenDollars, Currency = Currency.USD }; using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions)) { var currencyConverterMock = new Mock <ICurrencyConverterService>(); var sut = new Data.UserBalanceService(bedeSlotsContext, currencyConverterMock.Object); await Assert.ThrowsExceptionAsync <ServiceException>(async() => await sut.ReduceMoneyAsync(tenDollars, user.Id)); } }