Example #1
0
        public async Task A01_CreateInvalidCurrencyWhenMissingDefaultTest()
        {
            // set default currency to false
            var currencies = await EFContext.Currency.Where(c => c.DefaultCurrency).ToArrayAsync();

            foreach (var c in currencies)
            {
                c.DefaultCurrency = false;
            }
            await EFContext.SaveChangesAsync();

            var currency = await CreateCurrency("CAD", "Canadian Dollar", "$");

            var model = new CreateExchangeRateModel
            {
                CurrencyId = currency.Id,
                Rate       = decimal.Parse("0.73")
            };

            var createResult = await Browser.Post("/v1/exchangerate/create", with =>
            {
                with.User(_user);
                with.JsonBody(model);
            });

            createResult.StatusCode.Should().Be(HttpStatusCode.InternalServerError);
        }
        public async Task CreateExchangeRateTest()
        {
            var defaultCurrency = new Currency
            {
                Id              = Guid.NewGuid(),
                Code            = "USD",
                DefaultCurrency = true,
                Description     = "USD1",
                Symbol          = "$"
            };

            var createModel = new CreateExchangeRateModel
            {
                CurrencyId = Guid.NewGuid(),
                Rate       = decimal.Parse("0.73")
            };
            var data = new List <Currency> {
                defaultCurrency
            };

            _dbContext.MockAsyncQueryable(data.AsQueryable(), c => c.Currency);

            _dbContext.MockAsyncQueryable(new List <ExchangeRate>().AsQueryable(), c => c.ExchangeRate);

            var result = await _service.CreateExchangeRate(createModel, _user);

            result.ToCurrency.Should().Be(defaultCurrency.Id);
        }