public void TestGetExchangeWithException()
        {
            var serviceProvider = new Mock <IServiceProvider>();
            var exchangeService = new Mock <ICurrencyExchangeService>();

            var sut = new CurrenciesExchangeService(serviceProvider.Object);

            Assert.Throws <NotSupportedCurrencyException>(
                () => sut.GetExchange("ABC")
                );
        }
        public void TestGetExchange()
        {
            var serviceProvider = new Mock <IServiceProvider>();
            var exchangeService = new Mock <ICurrencyExchangeService>();
            var exchange        = new CurrencyExchange(1, 1, "");

            serviceProvider.Setup(x => x.GetService(It.IsAny <Type>())).Returns(exchangeService.Object);
            exchangeService.Setup(x => x.GetCurrencyExchange()).Returns(exchange);

            var sut = new CurrenciesExchangeService(serviceProvider.Object);

            var result = sut.GetExchange("USD");

            Assert.AreSame(exchange, result);
        }