private void Act()
{
var expenseListFake = new List<Expense>
{
new Expense { Bucket = StatementModelTestData.CarMtcBucket, Amount = 90 }, // Overspent by $1
new Expense { Bucket = StatementModelTestData.HairBucket, Amount = 55 },
new Expense { Bucket = StatementModelTestData.PhoneBucket, Amount = 65 }, // Overpsent 3.29
new Expense { Bucket = StatementModelTestData.PowerBucket, Amount = 100 },
new Expense { Bucket = StatementModelTestData.RegoBucket, Amount = 20 }
};
var modelMock = new Mock<BudgetModel>();
modelMock.Setup(m => m.Expenses).Returns(expenseListFake);
var budgetCurrencyContextMock = new Mock<IBudgetCurrencyContext>();
budgetCurrencyContextMock.Setup(m => m.Model).Returns(modelMock.Object);
BudgetCurrencyContext = budgetCurrencyContextMock.Object;
// Mocking out the Calculator means we dont need the LedgerBook
var ledgerCalculatorMock = new Mock<LedgerCalculation>();
ledgerCalculatorMock.Setup(m => m.CalculateCurrentMonthLedgerBalances(It.IsAny<LedgerBook>(), It.IsAny<GlobalFilterCriteria>(), It.IsAny<StatementModel>())).Returns(LedgerBalancesFake);
LedgerCalculator = ledgerCalculatorMock.Object;
Subject.Update(Statement, BudgetCurrencyContext, Filter, LedgerBook, LedgerCalculator);
}