public void Construction_WithNullClient() { // arrange // act - assert Assert.Throws <ArgumentNullException>(() => _ = new CurrencyConverterViewModel(null)); }
public void Setup() { var service = new Mock <ICurrencyService>(); service.Setup(o => o.GetCurrencies()).ReturnsAsync((IEnumerable <Currency>) new List <Currency> { new Currency("AUD", "Australian Dollar"), new Currency("BGN", "Bulgarian Lev"), new Currency("BRL", "Brazilian Real"), new Currency("CAD", "Canadian Dollar"), new Currency("CHF", "Swiss Franc"), new Currency("CNY", "Chinese Renminbi Yuan"), new Currency("CZK", "Czech Koruna"), new Currency("DKK", "Danish Krone"), new Currency("EUR", "Euro"), new Currency("GBP", "British Pound"), new Currency("HKD", "Hong Kong Dollar"), new Currency("HRK", "Croatian Kuna"), new Currency("HUF", "Hungarian Forint"), new Currency("IDR", "Indonesian Rupiah"), new Currency("ILS", "Israeli New Sheqel"), new Currency("INR", "Indian Rupee"), new Currency("ISK", "Icelandic Króna"), new Currency("JPY", "Japanese Yen"), new Currency("KRW", "South Korean Won"), new Currency("MXN", "Mexican Peso"), new Currency("MYR", "Malaysian Ringgit"), new Currency("NOK", "Norwegian Krone"), new Currency("NZD", "New Zealand Dollar"), new Currency("PHP", "Philippine Peso"), new Currency("PLN", "Polish Złoty"), new Currency("RON", "Romanian Leu"), new Currency("RUB", "Russian Ruble"), new Currency("SEK", "Swedish Krona"), new Currency("SGD", "Singapore Dollar"), new Currency("THB", "Thai Baht"), new Currency("TRY", "Turkish Lira"), new Currency("USD", "United States Dollar"), new Currency("ZAR", "South African Rand") } ); service.Setup(o => o.GetExchangeRate( It.Is <Currency>(o => o.Equals(new Currency("GBP", "British Pound"))), It.Is <Currency>(o => o.Equals(new Currency("AUD", "Australian Dollar"))))).ReturnsAsync(0.1234M); var appSettingsWriter = new Mock <IWritableOptions <UserSettings> >(); appSettingsWriter.Setup(o => o.Value).Returns(new UserSettings { Base = "EUR", Quote = "USD" }); this.CurrencyConverterViewModel = new CurrencyConverterViewModel(service.Object, appSettingsWriter.Object); while (!this.CurrencyConverterViewModel.IsInitalized) { Task.Delay(100); } }
public async Task FindCurrencySymbol_WithNullSymbol() { // arrange var vm = new CurrencyConverterViewModel(_testClient); await vm.Initialize().ConfigureAwait(false); vm.ConvertToCurrencyId = "PES"; // act var result = vm.ConvertToCurrencySymbol; // assert Assert.Empty(result); }
public async Task SwapCurrencies() { // arrange var vm = new CurrencyConverterViewModel(_testClient) { ConvertFromValue = 100, ConvertFromCurrencyId = "EUR", ConvertToCurrencyId = "USD" }; // act await vm.SwapCurrencies().ConfigureAwait(false); // assert Assert.Equal(81.36M, vm.ConvertToValue); Assert.Equal(0.81357M, vm.ConversionRate); Assert.False(vm.HasError); }
public async Task Convert_WithError(decimal amount) { // arrange var vm = new CurrencyConverterViewModel(_errorClient) { ConvertFromValue = amount, ConvertFromCurrencyId = "YEN", ConvertToCurrencyId = "USD" }; // act await vm.Convert().ConfigureAwait(false); // assert Assert.Equal(0.0M, vm.ConvertToValue); Assert.NotEmpty(vm.ErrorMessage); Assert.True(vm.HasError); }
public void Convert_Clicked() { // arrange using var ctx = new TestContext(); var vm = new CurrencyConverterViewModel(_testClient) { ConvertFromValue = 100 }; ctx.Services.AddSingleton <CurrencyConverterViewModel>(vm); var cut = ctx.RenderComponent <CurrencyConverter>(); // act cut.Find("#btn-convert").Click(); // assert cut.MarkupMatches(CurrencyConverterExpectedResults.ConvertCurrencyResult); }
public void DisplayErrorMessage() { // arrange using var ctx = new TestContext(); var vm = new CurrencyConverterViewModel(_testClient); ctx.Services.AddSingleton <CurrencyConverterViewModel>(vm); var cut = ctx.RenderComponent <CurrencyConverter>(); vm.ConvertToCurrencyId = "PES"; // act cut.Find("#btn-convert").Click(); // assert cut.MarkupMatches(CurrencyConverterExpectedResults.ErrorResult); }
public async Task Convert_ValidCurrencies( decimal amount, string convertFrom, string convertTo, decimal expectedValue, decimal expectedRate) { // arrange var vm = new CurrencyConverterViewModel(_testClient) { ConvertFromValue = amount, ConvertFromCurrencyId = convertFrom, ConvertToCurrencyId = convertTo }; // act await vm.Convert().ConfigureAwait(false); // assert Assert.Equal(expectedValue, vm.ConvertToValue); Assert.Equal(expectedRate, vm.ConversionRate); Assert.False(vm.HasError); }
public void Construction() { // arrange // act var vm = new CurrencyConverterViewModel(_emptyClient); // assert Assert.NotNull(vm); Assert.Equal(0M, vm.ConvertFromValue); Assert.Null(vm.ConvertFromCurrencyId); Assert.Empty(vm.ConvertFromCurrencySymbol); Assert.Equal(0.0M, vm.ConvertToValue); Assert.Null(vm.ConvertToCurrencyId); Assert.Empty(vm.ConvertToCurrencySymbol); Assert.Empty(vm.Currencies); Assert.Null(vm.ConversionRate); Assert.Null(vm.ErrorMessage); Assert.False(vm.HasError); }
public async Task Initialize() { // arrange var vm = new CurrencyConverterViewModel(_testClient); // act await vm.Initialize().ConfigureAwait(false); // assert Assert.NotNull(vm); Assert.Equal(0, vm.ConvertFromValue); Assert.Equal("USD", vm.ConvertFromCurrencyId); Assert.Equal("$", vm.ConvertFromCurrencySymbol); Assert.Equal(0.0M, vm.ConvertToValue); Assert.Equal("EUR", vm.ConvertToCurrencyId); Assert.Equal("E", vm.ConvertToCurrencySymbol); Assert.Equal(5, vm.Currencies.Count()); Assert.Null(vm.ConversionRate); Assert.Null(vm.ErrorMessage); Assert.False(vm.HasError); }
public async Task Initialize_WithServiceError() { // arrange var vm = new CurrencyConverterViewModel(_errorClient); // act await vm.Initialize().ConfigureAwait(false); // assert Assert.NotNull(vm); Assert.Equal(0, vm.ConvertFromValue); Assert.Null(vm.ConvertFromCurrencyId); Assert.Empty(vm.ConvertFromCurrencySymbol); Assert.Equal(0.0M, vm.ConvertToValue); Assert.Null(vm.ConvertToCurrencyId); Assert.Empty(vm.ConvertToCurrencySymbol); Assert.Empty(vm.Currencies); Assert.Null(vm.ConversionRate); Assert.NotEmpty(vm.ErrorMessage); Assert.True(vm.HasError); }
public void SwapCurrencies_Clicked() { // arrange using var ctx = new TestContext(); var vm = new CurrencyConverterViewModel(_testClient) { ConvertFromValue = 100 }; ctx.Services.AddSingleton <CurrencyConverterViewModel>(vm); var cut = ctx.RenderComponent <CurrencyConverter>(); vm.ConvertFromCurrencyId = "EUR"; vm.ConvertToCurrencyId = "USD"; // act cut.Find("#btn-swap").Click(); // assert cut.MarkupMatches(CurrencyConverterExpectedResults.SwapCurrenciesResult); }
public MyPopupPage(CurrencyConverterViewModel currencyViewModel) { viewModel = new PopupViewModel(currencyViewModel); InitializeComponent(); BindingContext = viewModel; }
public void TestInitialize() { model = ViewModelLocator.Instance.CurrencyConverterViewModel; model.SetInitialRates(); }
public CurrencyConverterPage() { viewModel = new CurrencyConverterViewModel(); InitializeComponent(); BindingContext = viewModel; }