public async Task ReturnCollectionOfAllTransaction_WhenValidParametersArePassed() { var contextOptions = new DbContextOptionsBuilder <BedeSlotsDbContext>() .UseInMemoryDatabase(databaseName: "ReturnCollectionOfAllTransaction_WhenValidParametersArePassed") .UseInternalServiceProvider(serviceProvider).Options; using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions)) { bedeSlotsContext.Transactions.Add(new Transaction() { User = new User() { Email = "test" } }); bedeSlotsContext.SaveChanges(); } using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions)) { var currencyConverterMock = new Mock <ICurrencyConverterService>(); var sut = new Data.TransactionService(bedeSlotsContext, currencyConverterMock.Object); var result = sut.GetAllTransactions(); Assert.IsTrue(await result.CountAsync() == 1); } }
public async Task AddTransactionCorrectly_WhenValidParamentersArePassed() { var contextOptions = new DbContextOptionsBuilder <BedeSlotsDbContext>() .UseInMemoryDatabase(databaseName: "AddTransactionCorrectly_WhenValidParamentersArePassed") .UseInternalServiceProvider(serviceProvider).Options; var validTransactionType = TransactionType.Deposit; var user = new User(); string description = "test"; int validAmount = 100; var baseCurrency = Currency.USD; using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions)) { var currencyConverterMock = new Mock <ICurrencyConverterService>(); var sut = new Data.TransactionService(bedeSlotsContext, currencyConverterMock.Object); currencyConverterMock.Setup((x) => x.ConvertToBaseCurrencyAsync(10, Currency.USD)).ReturnsAsync(10); await sut.AddTransactionAsync(validTransactionType, user.Id, description, validAmount, baseCurrency); } using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions)) { Assert.IsTrue(await bedeSlotsContext.Transactions.CountAsync() == 1); Assert.IsTrue(await bedeSlotsContext.Transactions.AnyAsync(x => x.Description == description)); } }
public async Task ReturnCollectionOfUserTransactions_WhenValidUserIdIsPassed() { var serviceProvider = new ServiceCollection().AddEntityFrameworkInMemoryDatabase().BuildServiceProvider(); var contextOptions = new DbContextOptionsBuilder <BedeSlotsDbContext>() .UseInMemoryDatabase(databaseName: "ReturnCollectionOfUserTransactions_WhenValidUserIdIsPassed") .UseInternalServiceProvider(serviceProvider).Options; var user = new User() { Email = "test" }; var otherUser = new User(); var transaction = new Transaction() { User = user, UserId = user.Id, Type = TransactionType.Deposit }; var secondTransaction = new Transaction() { User = user, UserId = user.Id, Type = TransactionType.Deposit }; var thirdTransaction = new Transaction() { User = otherUser, UserId = otherUser.Id, Type = TransactionType.Deposit }; using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions)) { await bedeSlotsContext.Users.AddAsync(user); await bedeSlotsContext.Users.AddAsync(otherUser); await bedeSlotsContext.Transactions.AddAsync(transaction); await bedeSlotsContext.Transactions.AddAsync(secondTransaction); await bedeSlotsContext.Transactions.AddAsync(thirdTransaction); await bedeSlotsContext.SaveChangesAsync(); } using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions)) { var currencyConverterMock = new Mock <ICurrencyConverterService>(); var sut = new Data.TransactionService(bedeSlotsContext, currencyConverterMock.Object); var result = sut.GetUserTransactionsAsync(user.Id); Assert.IsTrue(await result.CountAsync() == 2); } }
public void InitializeCorrectly_WhenValidParametersArePassed() { var contextOptions = new DbContextOptionsBuilder <BedeSlotsDbContext>() .UseInMemoryDatabase(databaseName: "InitializeCorrectly_WhenValidParametersArePassed") .UseInternalServiceProvider(serviceProvider).Options; using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions)) { var currencyConverterMock = new Mock <ICurrencyConverterService>(); var sut = new Data.TransactionService(bedeSlotsContext, currencyConverterMock.Object); Assert.IsInstanceOfType(sut, typeof(Data.TransactionService)); } }
public async Task ThrowServiceException_WhenUserIdParameterIsNull() { var contextOptions = new DbContextOptionsBuilder <BedeSlotsDbContext>() .UseInMemoryDatabase(databaseName: "ThrowServiceException_WhenUserIdParameterIsNull") .UseInternalServiceProvider(serviceProvider).Options; var validTransactionType = TransactionType.Deposit; string description = "test"; int validAmount = 100; var baseCurrency = Currency.USD; using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions)) { var currencyConverterMock = new Mock <ICurrencyConverterService>(); var sut = new Data.TransactionService(bedeSlotsContext, currencyConverterMock.Object); await Assert.ThrowsExceptionAsync <ServiceException>(async() => await sut.AddTransactionAsync(validTransactionType, null, description, validAmount, baseCurrency)); } }