public async Task ReturnUserCurrency_WhenValidUserIdIsPassed()
        {
            var contextOptions = new DbContextOptionsBuilder <BedeSlotsDbContext>()
                                 .UseInMemoryDatabase(databaseName: "ReturnUserCurrency_WhenValidUserIdIsPassed")
                                 .UseInternalServiceProvider(serviceProvider).Options;

            var user = new User()
            {
                Currency = Currency.BGN
            };

            using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions))
            {
                await bedeSlotsContext.Users.AddAsync(user);

                await bedeSlotsContext.SaveChangesAsync();
            }
            using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions))
            {
                var sut    = new Data.CurrencyService(bedeSlotsContext);
                var result = await sut.GetUserCurrencyAsync(user.Id);

                Assert.IsTrue(result == user.Currency);
                Assert.IsInstanceOfType(result, typeof(Currency));
            }
        }
        public async Task ThrowServiceException_WhenThereAreNoUsersInDatabase()
        {
            var contextOptions = new DbContextOptionsBuilder <BedeSlotsDbContext>()
                                 .UseInMemoryDatabase(databaseName: "ThrowServiceException_WhenThereAreNoUsersInDatabase")
                                 .UseInternalServiceProvider(serviceProvider).Options;

            using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions))
            {
                var sut = new Data.CurrencyService(bedeSlotsContext);
                await Assert.ThrowsExceptionAsync <ServiceException>(async() => await sut.GetUserCurrencyAsync("test"));
            }
        }
Exemplo n.º 3
0
        public void InitializeCorrectly_WhenValidContextIsPassed()
        {
            var serviceProvider = new ServiceCollection().AddEntityFrameworkInMemoryDatabase().BuildServiceProvider();

            var contextOptions = new DbContextOptionsBuilder <BedeSlotsDbContext>()
                                 .UseInMemoryDatabase(databaseName: "InitializeCorrectly_WhenValidContextIsPassed")
                                 .UseInternalServiceProvider(serviceProvider).Options;

            using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions))
            {
                var sut = new Data.CurrencyService(bedeSlotsContext);
                Assert.IsInstanceOfType(sut, typeof(Data.CurrencyService));
            }
        }
Exemplo n.º 4
0
        public void ReturnCollectionOfAllCurrencies_WhenInvoked()
        {
            var serviceProvider = new ServiceCollection().AddEntityFrameworkInMemoryDatabase().BuildServiceProvider();

            var contexOptions = new DbContextOptionsBuilder <BedeSlotsDbContext>()
                                .UseInMemoryDatabase(databaseName: "ReturnCollectionOfAllCurrencies_WhenInvoked")
                                .UseInternalServiceProvider(serviceProvider).Options;

            using (var bedeSlotsContext = new BedeSlotsDbContext(contexOptions))
            {
                var sut    = new Data.CurrencyService(bedeSlotsContext);
                var result = sut.GetAllCurrencies();

                Assert.IsInstanceOfType(result, typeof(ICollection <Currency>));
                Assert.IsTrue(result.Count == 4);
            }
        }
        public async Task ThrowServiceException_WhenUserCurrencyIsNull()
        {
            var contextOptions = new DbContextOptionsBuilder <BedeSlotsDbContext>()
                                 .UseInMemoryDatabase(databaseName: "ThrowServiceException_WhenUserCurrencyIsNull")
                                 .UseInternalServiceProvider(serviceProvider).Options;

            var user = new User();

            using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions))
            {
                await bedeSlotsContext.Users.AddAsync(user);

                await bedeSlotsContext.SaveChangesAsync();
            }
            using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions))
            {
                var sut = new Data.CurrencyService(bedeSlotsContext);
                await Assert.ThrowsExceptionAsync <ServiceException>(async() => await sut.GetUserCurrencyAsync(user.Id));
            }
        }