コード例 #1
0
        public void RegisterTransactionTest()
        {
            var portfolio = new Portfolio()
            {
                Id               = 1,
                TotalMoney       = 1000000,
                AvailableMoney   = 100000,
                AvailableActions = new List <Actions>()
                {
                    new Actions()
                    {
                        Id = 1,
                        QuantityOfActions = 1000,
                        StockId           = 1,
                        PortfolioId       = 1
                    }
                },
                Transactions = new List <Transaction>()
            };
            //Arrange
            var mockUnitOfWork = new Mock <IUnitOfWork>();

            mockUnitOfWork.Setup(un => un.PortfolioRepository.Get(It.IsAny <Expression <Func <Portfolio, bool> > >(), null, It.IsAny <string>()))
            .Returns(new List <Portfolio>()
            {
                portfolio
            });
            mockUnitOfWork.Setup(un => un.StockRepository.GetById(It.IsAny <long>())).Returns(new Stock
            {
                Id               = 1,
                Code             = "GOO",
                Description      = "GooGoo",
                Name             = "GOO",
                QuantiyOfActions = 10000,
                UnityValue       = 1.67
            });
            mockUnitOfWork.Setup(un => un.TransactionRepository.Insert(It.IsAny <Transaction>()));
            mockUnitOfWork.Setup(un => un.PortfolioRepository.GetById(It.IsAny <long>())).Returns(portfolio);
            mockUnitOfWork.Setup(un => un.PortfolioRepository.Update(It.IsAny <Portfolio>()));
            mockUnitOfWork.Setup(un => un.Save());

            ITransactionLogic transactionLogic = new TransactionLogic(mockUnitOfWork.Object);
            var transaction = new Transaction()
            {
                Id            = 1,
                Portfolio     = portfolio,
                StockId       = 1,
                StockQuantity = 20
            };
            var response = transactionLogic.RegisterTransaction(transaction);

            Assert.True(response);
        }