public async Task OnErrorShouldReturnErrorObject()
        {
            // Arrange
            //
            var faceSettings = TestHelper.GetFaceSettings();

            var handler = new Mock <HttpMessageHandler>();

            handler.SetupAnyRequest()
            .ReturnsResponse(HttpStatusCode.BadRequest);

            var client = new CurrencyConverterClient(
                TestHelper.GetLoggerMock <CurrencyConverterClient>().Object,
                handler.CreateClient(),
                faceSettings,
                TestHelper.GetMetricsMock().Object);

            // Act
            //
            var result = await client.RequestCurrencyConverter("EUR", "PHP");

            // Assert
            //
            Assert.Equal(RequestStatusCode.Error, result.RequestStatus.StatusCode);
            Assert.Equal(400, result.RequestStatus.ErrorCode);
        }
        public async Task OnSuccessShouldReturnValidObject()
        {
            // Arrange
            //
            var faceSettings = TestHelper.GetFaceSettings();

            var handler    = new Mock <HttpMessageHandler>();
            var ccResponse = "{\"EUR_PHP\": 51.440375}";

            handler.SetupRequest(HttpMethod.Get, faceSettings.BuildCurrencyConverterUrl("EUR", "PHP"))
            .ReturnsResponse(ccResponse, "application/json");

            var client = new CurrencyConverterClient(
                TestHelper.GetLoggerMock <CurrencyConverterClient>().Object,
                handler.CreateClient(),
                faceSettings,
                TestHelper.GetMetricsMock().Object);

            // Act
            //
            var result = await client.RequestCurrencyConverter("EUR", "PHP");

            // Assert
            //
            Assert.Equal(RequestStatusCode.Ok, result.RequestStatus.StatusCode);
            Assert.Equal((decimal)51.440375, result.ExchangeRate);
        }
示例#3
0
        public MainForm()
        {
            InitializeComponent();
            CurrencyList curencyList = new CurrencyList();
            client = new CurrencyConverterClient();
            curencyList = client.GetCurrentcyList();
            this.currencyListComboBox.DataSource = curencyList;

        }
示例#4
0
        public MainForm()
        {
            InitializeComponent();
            CurrencyList curencyList = new CurrencyList();

            client      = new CurrencyConverterClient();
            curencyList = client.GetCurrentcyList();
            this.currencyListComboBox.DataSource = curencyList;
        }
示例#5
0
 private void Form1_Load(object sender, EventArgs e)
 {
     CurrencyConverterClient client = new CurrencyConverterClient();
     List<string> liststr = new List<string>();
     liststr = client.GetCurrentcyList();
     for (int i = 0; i <liststr.Count ; i++)
     {
         currencyComboBox.Items.Add(liststr[i]);
     } 
 }
示例#6
0
 public ExchangeRateCacheStrategy(
     ILogger <ExchangeRateCacheStrategy> logger,
     CurrencyConverterClient currencyConverterClient, ExchangeRateApiClient exchangeRateApiClient,
     FaceSettings faceSettings, IMetrics metrics)
 {
     _logger                  = logger;
     _faceSettings            = faceSettings;
     _metrics                 = metrics;
     _currencyConverterClient = currencyConverterClient;
     _exchangeRateApiClient   = exchangeRateApiClient;
 }
示例#7
0
    static void Main()
    {
        CurrencyConverterClient client = new CurrencyConverterClient();

            // Use the 'client' variable to call operations on the service.
            double result = client.DollarsToPounds(10);
            double result2 = client.PoundsToDollars(10);
            double result3 = client.EurosToPounds(10);
            double result4 = client.PoundsToEuros(10);
            // Always close the client.
            client.Close();
    }
        public CurrencyConversionResponse GetCurrencyCoverted(string baseCurrency, string toCurrency)
        {
            CurrencyConverterClient client = new CurrencyConverterClient(new HttpClient());

            var baseCR = MapEnum(baseCurrency);

            var toCR = MapEnum(toCurrency);

            var response = client.LatestAsync(baseCR.ToString()).Result;

            currency = new CurrencyConversionResponse();

            currency.result = toCR switch
            {
                CurrencyEnum.CAD => response.Rates.CAD,
                CurrencyEnum.HKD => response.Rates.HKD,
                CurrencyEnum.ISK => response.Rates.ISK,
                CurrencyEnum.PHP => response.Rates.PHP,
                CurrencyEnum.DKK => response.Rates.DKK,
                CurrencyEnum.HUF => response.Rates.HUF,
                CurrencyEnum.CZK => response.Rates.CZK,
                CurrencyEnum.GBP => response.Rates.GBP,
                CurrencyEnum.RON => response.Rates.RON,
                CurrencyEnum.SEK => response.Rates.SEK,
                CurrencyEnum.IDR => response.Rates.IDR,
                CurrencyEnum.INR => response.Rates.INR,
                CurrencyEnum.BRL => response.Rates.BRL,
                CurrencyEnum.RUB => response.Rates.RUB,
                CurrencyEnum.HRK => response.Rates.HRK,
                CurrencyEnum.JPY => response.Rates.JPY,
                CurrencyEnum.THB => response.Rates.THB,
                CurrencyEnum.CHF => response.Rates.CHF,
                CurrencyEnum.EUR => response.Rates.EUR,
                CurrencyEnum.MYR => response.Rates.MYR,
                CurrencyEnum.BGN => response.Rates.BGN,
                CurrencyEnum.TRY => response.Rates.TRY,
                CurrencyEnum.CNY => response.Rates.CNY,
                CurrencyEnum.NOK => response.Rates.NOK,
                CurrencyEnum.NZD => response.Rates.NZD,
                CurrencyEnum.ZAR => response.Rates.ZAR,
                CurrencyEnum.USD => response.Rates.USD,
                CurrencyEnum.MXN => response.Rates.MXN,
                CurrencyEnum.SGD => response.Rates.SGD,
                CurrencyEnum.AUD => response.Rates.AUD,
                CurrencyEnum.ILS => response.Rates.ILS,
                CurrencyEnum.KRW => response.Rates.KRW,
                CurrencyEnum.PLN => response.Rates.PLN,
                _ => response.Rates.USD,
            };

            return(currency);
        }
示例#9
0
 private void buttonChange_Click(object sender, EventArgs e)
 {
     DateTime temp;
     CurrencyConverterClient client = new CurrencyConverterClient();
     if(DateTime.TryParse(dateBox.Text, out temp))
     {
         textBoxResault.Text =
             Convert.ToString(client.Convert(currencyComboBox.Text, "UAH", Convert.ToDouble(this.numericUpDown1.Text),
                                             Convert.ToDateTime(this.dateBox.Text)));
     }
     else
     {
         MessageBox.Show(" Выберите дату ", " Ошибка! ", MessageBoxButtons.OK, MessageBoxIcon.Warning);
     }
     if(textBoxResault.Text != "Результат операции")
     {
         Form2 form2 = new Form2();
         form2.Show();
         MessageBeep(0x00000040);
     }
 }
        public async Task OnAuthErrorShouldLogAuthIssue()
        {
            // Arrange
            //
            var loggerMock   = TestHelper.GetLoggerMock <CurrencyConverterClient>();
            var faceSettings = TestHelper.GetFaceSettings();

            var handler = new Mock <HttpMessageHandler>();

            handler.SetupAnyRequest()
            .ReturnsResponse(HttpStatusCode.Unauthorized);

            var client = new CurrencyConverterClient(
                loggerMock.Object,
                handler.CreateClient(),
                faceSettings,
                TestHelper.GetMetricsMock().Object);

            // Act
            //
            var result = await client.RequestCurrencyConverter("EUR", "PHP");

            // Assert
            //
            Assert.Equal(RequestStatusCode.Error, result.RequestStatus.StatusCode);
            Assert.Equal(401, result.RequestStatus.ErrorCode);

            loggerMock.Verify(
                x => x.Log(
                    It.IsAny <LogLevel>(),
                    It.IsAny <EventId>(),
                    It.Is <It.IsAnyType>((o, t) => string.Equals("Unauthorized access to currencyconverterapi.com", o.ToString(), StringComparison.InvariantCultureIgnoreCase)),
                    It.IsAny <Exception>(),
                    (Func <It.IsAnyType, Exception, string>)It.IsAny <object>()),
                Times.Once);
        }
 public void Setup()
 {
     client = new CurrencyConverterClient();
 }