Exemple #1
0
        public async Task WhenManagerReturnsCurrentRates_ThenResponseIsUsedToBuildDto()
        {
            var currentRates = new ExchangeRatesResponse("EUR", DateTime.Now, new Dictionary <string, decimal>());

            var manager = new Mock <IExchangeRatesManager>();

            manager.Setup(m => m.GetLatestRates()).ReturnsAsync(currentRates);

            ExchangeRatesResponse buildDtoInput = null;

            var dtoFactory = new Mock <IExchangeRatesDtoFactory>();

            dtoFactory.Setup(m => m.BuildDto(It.IsAny <ExchangeRatesResponse>()))
            .Callback <ExchangeRatesResponse>(input => buildDtoInput = input)
            .Returns(new ExchangeRatesResponseDto(
                         "base",
                         DateTime.UtcNow,
                         new Dictionary <string, decimal>()));

            var controller = new ExchangeRatesController(manager.Object, dtoFactory.Object);

            await controller.Index();

            buildDtoInput.Should().Be(currentRates);
        }
Exemple #2
0
        public ExchangeRatesControllerTest()
        {
            var loggerMock = new Mock <ILogger <ExchangeRatesController> >();
            var exchangeRatesManagementMock = new Mock <IExchangeRatesManagement>();

            _sut = new ExchangeRatesController(loggerMock.Object, exchangeRatesManagementMock.Object);
        }
Exemple #3
0
        public async Task GetHistoryRatesForGivenPeriodsAsync_WhenModelIsValid_ShouldReturnOk()
        {
            var sut = new ExchangeRatesController(
                new Logger <ExchangeRatesController>(new LoggerFactory()),
                new ExchangeRatesManagement(new HttpClient()));

            var result = await sut.GetHistoryRatesForGivenPeriodsAsync(new HistoryRatesRequest(new [] { new DateTime(2018, 1, 1), DateTime.Now }, "USD", "EUR"));

            Assert.IsType <OkObjectResult>(result);
        }
        public void GetTest()
        {
            string from = "USD";
            string to   = "EUR";

            var controller = new ExchangeRatesController();
            var result     = controller.Get(from, to);

            Assert.AreEqual(0.90, result);
        }
Exemple #5
0
        public async Task GetHistoryRatesForGivenPeriodsAsync_WhenDateIsInFuture_ShouldReturnBadRequest()
        {
            var loggerMock = new Mock <ILogger <ExchangeRatesController> >();
            var exchangeRatesManagement = new ExchangeRatesManagement(new Mock <HttpClient>().Object);

            var sut = new ExchangeRatesController(loggerMock.Object, exchangeRatesManagement);

            var result = await sut.GetHistoryRatesForGivenPeriodsAsync(new HistoryRatesRequest(new [] { DateTime.Now.AddDays(1) }, "EUR", "EUR"));

            Assert.IsType <BadRequestObjectResult>(result);
        }
Exemple #6
0
        public async Task GetHistoryRatesForGivenPeriodsAsync_WhenTargetCurrencyIsInvalid_ShouldReturnBadRequest(string targetCurrency)
        {
            var loggerMock = new Mock <ILogger <ExchangeRatesController> >();
            var exchangeRatesManagement = new ExchangeRatesManagement(new Mock <HttpClient>().Object);

            var sut = new ExchangeRatesController(loggerMock.Object, exchangeRatesManagement);

            var result = await sut.GetHistoryRatesForGivenPeriodsAsync(new HistoryRatesRequest(new [] { DateTime.Now }, "EUR", targetCurrency ));

            Assert.IsType <BadRequestObjectResult>(result);
        }
Exemple #7
0
        public async Task GetHistoryRatesForGivenPeriodsAsync_WhenBManagementThrowsException_ShouldReturnBadRequest()
        {
            var loggerMock = new Mock <ILogger <ExchangeRatesController> >();
            var exchangeRatesManagementMock = new Mock <IExchangeRatesManagement>();

            exchangeRatesManagementMock
            .Setup(x =>
                   x.GetRatesForGivenPeriodsAsync(It.IsAny <HistoryRatesRequest>()))
            .Throws <Exception>();

            var sut = new ExchangeRatesController(loggerMock.Object, exchangeRatesManagementMock.Object);

            var result = await sut.GetHistoryRatesForGivenPeriodsAsync(It.IsAny <HistoryRatesRequest>());

            Assert.IsType <BadRequestObjectResult>(result);
        }
        public ExchangeRatesControllerTests()
        {
            var options = new DbContextOptionsBuilder <ExchangeRatesDbContext>()
                          .UseInMemoryDatabase(databaseName: "ExchangeRates")
                          .Options;

            using (var context = new ExchangeRatesDbContext(options))
            {
                context.ExchangeRates.AddRange(ExchangeRateData);

                context.SaveChanges();
            }

            _mockExchangeRatesService = new Mock <IExchangeRatesService>();
            _controller =
                new ExchangeRatesController(new ExchangeRatesDbContext(options), _mockExchangeRatesService.Object);
        }
Exemple #9
0
 public static void SetUpClass()
 {
     controller = GetClient().ExchangeRates;
     applyConfiguration();
 }
Exemple #10
0
 public ExchangeRatesControllerTests()
 {
     _mediatorMock = new Mock <IMediator>();
     _controller   = new ExchangeRatesController(_mediatorMock.Object);
 }