Esempio n. 1
0
        public async Task GetSummaryTradeByProfileIdAndSymbol_ReturnTradeSummaryByPortfolio()
        {
            IQueryable <Trade> trades = new List <Trade>
            {
                new Trade
                {
                    Action      = "BUY",
                    NoOfShares  = 10,
                    PortfolioId = 1,
                    Symbol      = "SIM",
                    Price       = 10.00M
                },
                new Trade
                {
                    Action      = "SELL",
                    NoOfShares  = 3,
                    PortfolioId = 1,
                    Symbol      = "SIM",
                    Price       = 12.00M
                },
                new Trade
                {
                    Action      = "BUY",
                    NoOfShares  = 30,
                    PortfolioId = 1,
                    Symbol      = "SIM",
                    Price       = 8.00M
                },
                new Trade
                {
                    Action      = "SELL",
                    NoOfShares  = 30,
                    PortfolioId = 2,
                    Symbol      = "SIM",
                    Price       = 8.00M
                }
            }.AsQueryable();

            // Arrange
            _dbSetTrade.As <IQueryable <Trade> >().Setup(m => m.Provider).Returns(trades.Provider);
            _dbSetTrade.As <IQueryable <Trade> >().Setup(m => m.Expression).Returns(trades.Expression);
            _dbSetTrade.As <IQueryable <Trade> >().Setup(m => m.ElementType).Returns(trades.ElementType);
            _dbSetTrade.As <IQueryable <Trade> >().Setup(m => m.GetEnumerator()).Returns(trades.GetEnumerator());

            _exchangeContext.Setup(p => p.Trades).Returns(_dbSetTrade.Object);
            // Act
            IQueryable <TradeSummary> tradeSummary = _tradeRepository.GetSummaryTradeByProfileIdAndSymbol(1, "SIM");

            // Assert
            Assert.NotNull(tradeSummary);
            Assert.AreEqual(tradeSummary.Count(), 2);
            Assert.IsTrue(tradeSummary.Any(p => p.Action.Equals("BUY")));
            Assert.IsTrue(tradeSummary.Any(p => p.Action.Equals("SELL")));
        }