Exemplo n.º 1
0
        public void GetPrices_FourMonths()
        {
            // Arrange
            List <SecurityDaily> dataFromQuandl = new List <SecurityDaily>()
            {
                { new SecurityDaily {
                      Ticker = "GOOGL", Date = "2016-01-04", Open = (Decimal)762.2, High = (Decimal)762.2, Low = (Decimal)747.54, Close = (Decimal)759.44, Volume = (Decimal)3369068.0
                  } }
            };

            // Quandl should be called 4 times: for 2016-01, 2016-02, 2016-03, 2016-04
            String ticker = "GOOGL";
            String start  = "2016-01-12";
            String end    = "2016-04-23";

            // Act
            _mockQuandlConsumer.Setup(x => x.GetDailyPrices(It.IsAny <String>(), It.IsAny <String>(), It.IsAny <String>()))
            .Returns(Task.FromResult(dataFromQuandl));

            var controller = new PricesController(_mockQuandlConsumer.Object);
            var result     = controller.GetPrices(ticker, start, end);

            // Assert
            _mockQuandlConsumer.Verify(x => x.GetDailyPrices(It.IsAny <String>(), It.IsAny <String>(), It.IsAny <String>()), Times.Exactly(4));
        }
Exemplo n.º 2
0
        public void GetPrices_MonthlyAverage()
        {
            // Arrange
            List <SecurityDaily> dataFromQuandl = new List <SecurityDaily>()
            {
                { new SecurityDaily {
                      Ticker = "GOOGL", Date = "2016-01-04", Open = (Decimal)762.2, High = (Decimal)762.2, Low = (Decimal)747.54, Close = (Decimal)759.44, Volume = (Decimal)3369068.0
                  } },
                { new SecurityDaily {
                      Ticker = "GOOGL", Date = "2016-01-05", Open = (Decimal)764.1, High = (Decimal)769.2, Low = (Decimal)755.65, Close = (Decimal)761.53, Volume = (Decimal)2260795.0
                  } },
                { new SecurityDaily {
                      Ticker = "GOOGL", Date = "2016-01-06", Open = (Decimal)750.37, High = (Decimal)765.73, Low = (Decimal)748.0, Close = (Decimal)759.33, Volume = (Decimal)2410301.0
                  } }
            };

            String ticker = "GOOGL";
            // Quandl should be called only once: for 2016-01
            String start = "2016-01-05";
            String end   = "2016-01-23";

            String startMonth     = "2016-01-01";
            String startNextMonth = "2016-02-01";

            // Act
            _mockQuandlConsumer.Setup(x => x.GetDailyPrices(ticker, startMonth, startNextMonth))
            .Returns(Task.FromResult(dataFromQuandl));

            var controller = new PricesController(_mockQuandlConsumer.Object);
            var result     = controller.GetPrices(ticker, start, end);

            // Assert
            _mockQuandlConsumer.Verify(x => x.GetDailyPrices(ticker, startMonth, startNextMonth), Times.Once());
            var okResult        = result.Should().BeOfType <OkObjectResult>().Subject;
            var securitySummary = okResult.Value.Should().BeAssignableTo <PricesController.SecuritySummary>().Subject;

            securitySummary._monthlyAverages.Count().Should().Be(1);
            securitySummary._monthlyAverages.First().As <PricesController.MonthlyAverage>()._month.Should().Be("2016-01");
            securitySummary._monthlyAverages.First().As <PricesController.MonthlyAverage>()._open.Should().Be((Decimal)758.89);
            securitySummary._monthlyAverages.First().As <PricesController.MonthlyAverage>()._close.Should().Be((Decimal)760.1);
        }