Example #1
0
 public ExpensesPutController(ExpenseModificationService expenseModificationService)
 {
     _expenseModificationService = expenseModificationService;
 }
        public void Setup()
        {
            _random   = new Random();
            _randomId = _random.Next(1, 3);

            expenseInput = new ExpenseInputModel()
            {
                Id        = 1,
                Payee     = "Toys R Us",
                Amount    = 100.00M,
                Category  = "Fun Money",
                Account   = "Suntrust",
                Date      = DateTime.Today,
                Repeat    = false,
                Impulse   = true,
                Memo      = "He-man Toys",
                ColorCode = "Pink"
            };

            expenseEntity = new ExpenseEntity()
            {
                Id        = 1,
                Payee     = "Toys R Us",
                Amount    = 100.00M,
                Category  = "Fun Money",
                Account   = "Suntrust",
                Date      = DateTime.Today,
                Repeat    = false,
                Impulse   = true,
                Memo      = "He-man Toys",
                ColorCode = "Pink"
            };

            modifiedExpense = new ExpenseEntity()
            {
                Id        = 1,
                Payee     = "Toys R Us",
                Amount    = 100.00M,
                Category  = "Fun Money",
                Account   = "Suntrust",
                Date      = DateTime.Today,
                Repeat    = false,
                Impulse   = true,
                Memo      = "He-man Toys",
                ColorCode = "Pink"
            };

            var expenseEntityList = new List <ExpenseEntity>()
            {
                new ExpenseEntity()
                {
                    Id        = 1,
                    Payee     = "Toys R Us",
                    Amount    = 100.00M,
                    Category  = "Fun Money",
                    Account   = "Suntrust",
                    Date      = DateTime.Today,
                    Repeat    = false,
                    Impulse   = true,
                    Memo      = "He-man Toys",
                    ColorCode = "Pink"
                },

                new ExpenseEntity
                {
                    Id        = 2,
                    Payee     = "Amazon",
                    Amount    = 22.00M,
                    Category  = "Popcorn",
                    Account   = "Wells Fargo",
                    Date      = DateTime.Today,
                    Repeat    = true,
                    Impulse   = false,
                    Memo      = "Pop Secret Homestyle",
                    ColorCode = "Grey"
                },

                new ExpenseEntity
                {
                    Id        = 3,
                    Payee     = "Alamo Drafthouse",
                    Amount    = 7.00M,
                    Category  = "Fun Money",
                    Account   = "Middleburg Bank",
                    Date      = DateTime.Today,
                    Repeat    = false,
                    Impulse   = false,
                    Memo      = "Captain Marvel Tickets",
                    ColorCode = "Red"
                }
            };

            _transaction = new Mock <ITransaction>();
            _session     = new Mock <ISession>();
            _session.Setup(t => t.BeginTransaction())
            .Returns(_transaction.Object);

            //_session.Setup(x => x.Query<ExpenseEntity>())
            //    .Returns(() => new List<ExpenseEntity> { expenseEntity }.AsQueryable());

            _session.Setup(x => x.Query <ExpenseEntity>())
            .Returns(() => new List <ExpenseEntity> {
                modifiedExpense
            }.AsQueryable());

            _nhibernateSession = new Mock <INHibernateSession>();
            _nhibernateSession.Setup(x => x.OpenSession())
            .Returns(() => _session.Object);

            _expense = new Mock <ExpenseEntity>();
            //_session.Setup(It.Is<ExpenseEntity>(e => e.Account)).Returns("Wells Fargo");
            _expense.Setup(ee => ee.Account).Returns("Wells Fargo");
            _expense.SetupGet(m => m.Payee).Returns("Someone Nice");
            _expense.Setup(ee => ee.Date).Returns(System.DateTime.Today);
            _expense.Setup(ee => ee.Account).Returns("Middleburg Bank");
            _expense.Setup(ee => ee.Repeat).Returns(true);
            _expense.Setup(ee => ee.Impulse).Returns(true);
            _expense.Setup(ee => ee.Memo).Returns("expense was modified");
            _expense.Setup(ee => ee.ColorCode).Returns("Cornflower-Blue");

            _sut = new ExpenseModificationService(_nhibernateSession.Object);
        }