예제 #1
0
        private void SetUp(List <Budget> budget)
        {
            IBudgetRepo budgetRepo = Substitute.For <IBudgetRepo>();

            budgetRepo.GetAll().Returns(budget);
            _budgetService = new BudgetService(budgetRepo);
        }
 public void Initialize_Test_Objects()
 {
     _mockContext  = new Mock <BudgetContext>();
     _testRepo     = new BudgetRepo(_mockContext.Object);
     _categories   = new List <BudgetCategory>();
     _payees       = new List <Payee>();
     _aliases      = new List <Alias>();
     _transactions = new List <Transaction>();
 }
예제 #3
0
        public void Query_Cross_Year_with_diff_month()
        {
            IBudgetRepo repo = Substitute.For <IBudgetRepo>();

            repo.GetAll()
            .Returns(new List <Budget>
            {
                // new Budget {YearMonth = "202102", Amount = 28},
                new Budget {
                    YearMonth = "202104", Amount = 3000
                }
            });
            var cal   = new BudgetCalculator(repo);
            var query = cal.Query(new DateTime(2020, 4, 27), new DateTime(2021, 4, 2));

            Assert.AreEqual(200, query);
        }
예제 #4
0
        public void Query_Illegal_DateTime()
        {
            var         budget = new Budget();
            IBudgetRepo repo   = Substitute.For <IBudgetRepo>();

            repo.GetAll().Returns(new List <Budget>
            {
                new Budget {
                    YearMonth = "202103", Amount = 310
                }
            });

            var cal   = new BudgetCalculator(repo);
            var query = cal.Query(new DateTime(2021, 3, 1), new DateTime(2021, 2, 1));

            Assert.AreEqual(0, query);
        }
예제 #5
0
        public void start_day_less_than_end_day()
        {
            IBudgetRepo repo = Substitute.For <IBudgetRepo>();

            repo.GetAll()
            .Returns(new List <Budget>
            {
                new Budget {
                    YearMonth = "202103", Amount = 31
                },
                new Budget {
                    YearMonth = "202104", Amount = 3000
                }
            });
            var cal   = new BudgetCalculator(repo);
            var query = cal.Query(new DateTime(2021, 3, 27), new DateTime(2021, 4, 29));

            Assert.AreEqual(5 + 2900, query);
        }
예제 #6
0
        public void Query_Cross_Year()
        {
            var         budget = new Budget();
            IBudgetRepo repo   = Substitute.For <IBudgetRepo>();

            repo.GetAll().Returns(new List <Budget>
            {
                new Budget {
                    YearMonth = "202102", Amount = 28
                },
                // new Budget {YearMonth = "202103", Amount = 310},
                new Budget {
                    YearMonth = "202204", Amount = 3000
                }
            });
            var cal   = new BudgetCalculator(repo);
            var query = cal.Query(new DateTime(2021, 2, 27), new DateTime(2022, 4, 1));

            Assert.AreEqual(102, query);
        }
예제 #7
0
        public void SingleDate()
        {
            //Arrange
            var budget = new List <Budget>()
            {
                new Budget()
                {
                    Amount    = 3100,
                    YearMonth = "201901"
                },
                new Budget()
                {
                    Amount    = 2800,
                    YearMonth = "201902"
                },
            };

            IBudgetRepo budgetRepo = Substitute.For <IBudgetRepo>();

            budgetRepo.GetAll().Returns(budget);
            var budgetService = new BudgetService(budgetRepo);

            Assert.AreEqual(100, budgetService.Query(new DateTime(2019, 1, 1), new DateTime(2019, 1, 1)));
        }
예제 #8
0
 public void Setup()
 {
     _stubBudgetRepo = Substitute.For <IBudgetRepo>();
     _budgetService  = new BudgetService(_stubBudgetRepo);
 }
예제 #9
0
 public Accounting(IBudgetRepo budgetRepo)
 {
     _budgetRepo = budgetRepo;
 }
예제 #10
0
 public TotalAmount(IBudgetRepo budgetRepo)
 {
     this.budgetRepo = budgetRepo;
 }
예제 #11
0
 public AliasManagerService(IBudgetRepo context) : base(context)
 {
     _context = context;
 }
 public Accounting(IBudgetRepo budgetRepo)
 {
     this.budgetRepo = budgetRepo;
 }
예제 #13
0
 public PayeeManagerService(IBudgetRepo context) : base(context)
 {
     _context = context;
 }
예제 #14
0
 public Accounting(IBudgetRepo repo)
 {
     budgetRepo = repo;
 }
예제 #15
0
 private void Setup(IBudgetRepo budgeRepo)
 {
     _budgetService = new BudgetService(budgeRepo);
 }
예제 #16
0
        public static async Task Initialize(IBudgetRepo context)
        {
            if (context.GetCategories().Any())
            {
                return; // Db Already has data
            }

            // Populate Budget Categories
            List <BudgetCategory> categories = new List <BudgetCategory> {
                new BudgetCategory {
                    Name          = "Electric Bill",
                    Amount        = 100,
                    EffectiveFrom = DateTime.Parse("9/1/2016"),
                    Type          = BudgetType.Expense
                },
                new BudgetCategory {
                    Name          = "Fuel",
                    Amount        = 150,
                    EffectiveFrom = DateTime.Parse("9/1/2016"),
                    Type          = BudgetType.Expense
                },
                new BudgetCategory {
                    Name          = "Gas Bill",
                    Amount        = 65,
                    EffectiveFrom = DateTime.Parse("8/1/2017"),
                    Type          = BudgetType.Expense
                },
                new BudgetCategory {
                    Name          = "Groceries",
                    Amount        = 750,
                    EffectiveFrom = DateTime.Parse("10/1/2017"),
                    Type          = BudgetType.Expense
                },
                new BudgetCategory {
                    Name          = "Insurance",
                    Amount        = 650,
                    EffectiveFrom = DateTime.Parse("10/1/2017"),
                    Type          = BudgetType.Expense
                },
                new BudgetCategory {
                    Name          = "Internet",
                    Amount        = 50,
                    EffectiveFrom = DateTime.Parse("5/1/2017"),
                    Type          = BudgetType.Expense
                },
                new BudgetCategory {
                    Name          = "Phone",
                    Amount        = 95,
                    EffectiveFrom = DateTime.Parse("6/1/2017"),
                    Type          = BudgetType.Expense
                },
                new BudgetCategory {
                    Name          = "Student Loans",
                    Amount        = 500,
                    EffectiveFrom = DateTime.Parse("6/1/2016"),
                    Type          = BudgetType.Expense
                },
                new BudgetCategory {
                    Name          = "Tithe",
                    Amount        = 563,
                    EffectiveFrom = DateTime.Parse("10/1/2017"),
                    Type          = BudgetType.Expense
                },
                new BudgetCategory {
                    Name          = "Water Bill",
                    Amount        = 110,
                    EffectiveFrom = DateTime.Parse("10/1/2016"),
                    Type          = BudgetType.Expense
                },
                new BudgetCategory {
                    Name          = "Rent",
                    Amount        = 575,
                    EffectiveFrom = DateTime.Parse("10/1/2016"),
                    Type          = BudgetType.Expense
                },
                new BudgetCategory {
                    Name          = "Extra Spending",
                    Amount        = 350,
                    EffectiveFrom = DateTime.Parse("10/1/2016"),
                    Type          = BudgetType.Expense
                },
                new BudgetCategory {
                    Name          = "ARC Income",
                    Amount        = 0,
                    EffectiveFrom = DateTime.Parse("10/1/2016"),
                    Type          = BudgetType.Income
                },
                new BudgetCategory {
                    Name          = "ATM Withdrawals",
                    Amount        = 0,
                    EffectiveFrom = DateTime.Parse("10/1/2016"),
                    Type          = BudgetType.Expense
                },
                new BudgetCategory {
                    Name          = "Medical",
                    Amount        = 0,
                    EffectiveFrom = DateTime.Parse("10/1/2016"),
                    Type          = BudgetType.Expense
                },
                new BudgetCategory {
                    Name          = "Restaurants",
                    Amount        = 0,
                    EffectiveFrom = DateTime.Parse("10/1/2016"),
                    Type          = BudgetType.Expense
                },
                new BudgetCategory {
                    Name          = "Miscellaneous",
                    Amount        = 0,
                    EffectiveFrom = DateTime.Parse("10/1/2016"),
                    Type          = BudgetType.Expense
                },
                new BudgetCategory {
                    Name          = "Shopping",
                    Amount        = 0,
                    EffectiveFrom = DateTime.Parse("10/1/2016"),
                    Type          = BudgetType.Expense
                },
                new BudgetCategory {
                    Name          = "Vehicle Maintenance",
                    Amount        = 0,
                    EffectiveFrom = DateTime.Parse("10/1/2016"),
                    Type          = BudgetType.Expense
                },
                new BudgetCategory {
                    Name          = "Entertainment",
                    Amount        = 0,
                    EffectiveFrom = DateTime.Parse("10/1/2016"),
                    Type          = BudgetType.Expense
                },
                new BudgetCategory {
                    Name          = "Taxes",
                    Amount        = 0,
                    EffectiveFrom = DateTime.Parse("10/1/2016"),
                    Type          = BudgetType.Expense
                },
                new BudgetCategory {
                    Name          = "Tax Refund",
                    Amount        = 0,
                    EffectiveFrom = DateTime.Parse("10/1/2016"),
                    Type          = BudgetType.Income
                },
                new BudgetCategory {
                    Name          = "Teaching Drums",
                    Amount        = 0,
                    EffectiveFrom = DateTime.Parse("5/1/2016"),
                    Type          = BudgetType.Income
                },
                new BudgetCategory {
                    Name          = "Extra Income",
                    Amount        = 0,
                    EffectiveFrom = DateTime.Parse("10/1/2016"),
                    Type          = BudgetType.Income
                },
                new BudgetCategory {
                    Name          = "Tutoring",
                    Amount        = 0,
                    EffectiveFrom = DateTime.Parse("10/1/2017"),
                    Type          = BudgetType.Income
                }
            };

            foreach (var c in categories)
            {
                context.AddBudgetCategory(c);
            }

            // Populate Payees
            List <Payee> payees = new List <Payee> {
                new Payee {
                    Name             = "Appraisal Research",
                    EffectiveFrom    = DateTime.Parse("6/20/2016"),
                    BudgetCategoryID = categories.Where(c => c.Name == "ARC Income").FirstOrDefault().ID,
                    Category         = categories.Where(c => c.Name == "ARC Income").FirstOrDefault()
                },
                new Payee {
                    Name             = "Cash Deposit",
                    EffectiveFrom    = DateTime.Parse("10/1/2016"),
                    BudgetCategoryID = categories.Where(c => c.Name == "Extra Income").FirstOrDefault().ID,
                    Category         = categories.Where(c => c.Name == "Extra Income").FirstOrDefault()
                },
                new Payee {
                    Name             = "Earned Interest",
                    EffectiveFrom    = DateTime.Parse("10/1/2016"),
                    BudgetCategoryID = categories.Where(c => c.Name == "Extra Income").FirstOrDefault().ID,
                    Category         = categories.Where(c => c.Name == "Extra Income").FirstOrDefault()
                },
                new Payee {
                    Name             = "Reiske Drum Lesson",
                    EffectiveFrom    = DateTime.Parse("5/1/2016"),
                    BudgetCategoryID = categories.Where(c => c.Name == "Teaching Drums").FirstOrDefault().ID,
                    Category         = categories.Where(c => c.Name == "Teaching Drums").FirstOrDefault()
                },
                new Payee {
                    Name             = "Northwestern Water (102 Maple)",
                    EffectiveFrom    = DateTime.Parse("10/1/2016"),
                    BudgetCategoryID = categories.Where(c => c.Name == "Water Bill").FirstOrDefault().ID,
                    Category         = categories.Where(c => c.Name == "Water Bill").FirstOrDefault()
                },
                new Payee {
                    Name             = "Medical Mutual",
                    EffectiveFrom    = DateTime.Parse("10/1/2016"),
                    BudgetCategoryID = categories.Where(c => c.Name == "Insurance").FirstOrDefault().ID,
                    Category         = categories.Where(c => c.Name == "Insurance").FirstOrDefault()
                },
                new Payee {
                    Name             = "Dave and Louise",
                    EffectiveFrom    = DateTime.Parse("10/1/2016"),
                    BudgetCategoryID = categories.Where(c => c.Name == "Rent").FirstOrDefault().ID,
                    Category         = categories.Where(c => c.Name == "Rent").FirstOrDefault()
                },
                new Payee {
                    Name             = "Verizon Wireless",
                    EffectiveFrom    = DateTime.Parse("10/1/2016"),
                    BudgetCategoryID = categories.Where(c => c.Name == "Phone").FirstOrDefault().ID,
                    Category         = categories.Where(c => c.Name == "Phone").FirstOrDefault()
                },
                new Payee {
                    Name             = "Columbia Gas of Ohio",
                    EffectiveFrom    = DateTime.Parse("10/1/2016"),
                    BudgetCategoryID = categories.Where(c => c.Name == "Gas Bill").FirstOrDefault().ID,
                    Category         = categories.Where(c => c.Name == "Gas Bill").FirstOrDefault()
                },
                new Payee {
                    Name             = "Medishare",
                    EffectiveFrom    = DateTime.Parse("10/1/2016"),
                    BudgetCategoryID = categories.Where(c => c.Name == "Insurance").FirstOrDefault().ID,
                    Category         = categories.Where(c => c.Name == "Insurance").FirstOrDefault()
                },
                new Payee {
                    Name             = "Village of Bloomdale",
                    EffectiveFrom    = DateTime.Parse("10/1/2016"),
                    BudgetCategoryID = categories.Where(c => c.Name == "Electric Bill").FirstOrDefault().ID,
                    Category         = categories.Where(c => c.Name == "Electric Bill").FirstOrDefault()
                },
                new Payee {
                    Name             = "FedLoan Servicing",
                    EffectiveFrom    = DateTime.Parse("10/1/2016"),
                    BudgetCategoryID = categories.Where(c => c.Name == "Student Loans").FirstOrDefault().ID,
                    Category         = categories.Where(c => c.Name == "Student Loans").FirstOrDefault()
                },
                new Payee {
                    Name             = "Progressive Insurance",
                    EffectiveFrom    = DateTime.Parse("8/1/2017"),
                    BudgetCategoryID = categories.Where(c => c.Name == "Insurance").FirstOrDefault().ID,
                    Category         = categories.Where(c => c.Name == "Insurance").FirstOrDefault()
                },
                new Payee {
                    Name             = "Straight Talk",
                    EffectiveFrom    = DateTime.Parse("10/1/2016"),
                    BudgetCategoryID = categories.Where(c => c.Name == "Phone").FirstOrDefault().ID,
                    Category         = categories.Where(c => c.Name == "Phone").FirstOrDefault()
                },
                new Payee {
                    Name             = "Brookside",
                    EffectiveFrom    = DateTime.Parse("10/1/2016"),
                    BudgetCategoryID = categories.Where(c => c.Name == "Tithe").FirstOrDefault().ID,
                    Category         = categories.Where(c => c.Name == "Tithe").FirstOrDefault()
                },
                new Payee {
                    Name             = "Meijer",
                    EffectiveFrom    = DateTime.Parse("10/1/2016"),
                    BudgetCategoryID = categories.Where(c => c.Name == "Groceries").FirstOrDefault().ID,
                    Category         = categories.Where(c => c.Name == "Groceries").FirstOrDefault()
                }
            };

            foreach (var p in payees)
            {
                context.AddPayee(p);
            }

            // Create Aliases
            List <Alias> aliases = new List <Alias> {
                new Alias {
                    Name    = "Dave & Louise",
                    PayeeID = payees.Where(p => p.Name == "Dave and Louise").First().ID
                },
                new Alias {
                    Name    = "Louise and Dave",
                    PayeeID = payees.Where(p => p.Name == "Dave and Louise").First().ID
                },
                new Alias {
                    Name    = "Louise & Dave",
                    PayeeID = payees.Where(p => p.Name == "Dave and Louise").First().ID
                },
                new Alias {
                    Name    = "MEIJER # 051",
                    PayeeID = payees.Where(p => p.Name == "Meijer").First().ID
                },
                new Alias {
                    Name    = "MEIJER # 156",
                    PayeeID = payees.Where(p => p.Name == "Meijer").First().ID
                },
                new Alias {
                    Name    = "Appraisal Re6366 APP RESEAR",
                    PayeeID = payees.Where(p => p.Name == "Appraisal Research").First().ID
                },
                new Alias {
                    Name    = "FEDLOANSERVICING STDNT LOAN",
                    PayeeID = payees.Where(p => p.Name == "FedLoan Servicing").First().ID
                },
                new Alias {
                    Name    = "PROGRESSIVE *INSURANCE",
                    PayeeID = payees.Where(p => p.Name == "Progressive Insurance").First().ID
                },
                new Alias {
                    Name    = "STRAIGHTTALK*AIRTIME",
                    PayeeID = payees.Where(p => p.Name == "Straight Talk").First().ID
                },
                new Alias {
                    Name    = "Brookside Evange WEB PMTS",
                    PayeeID = payees.Where(p => p.Name == "Brookside").First().ID
                }
            };

            foreach (var a in aliases)
            {
                context.AddAlias(a);
            }

            await context.SaveChangesAsync();
        }
 public BudgetCalculator(IBudgetRepo repo)
 {
     _repo = repo;
 }
 public BudgetService(IBudgetRepo budgetRepo)
 {
     _budgetRepo = budgetRepo;
 }
 public TransactionManagerService(IBudgetRepo context) : base(context)
 {
     _context = context;
 }
예제 #20
0
 public CommonService(IBudgetRepo context)
 {
     _context = context;
 }
예제 #21
0
 public BudgetServiceTest()
 {
     this._budgetRepo = Substitute.For <IBudgetRepo>();
 }
예제 #22
0
 public BudgetService(IBudgetRepo repo)
 {
     _repo = repo;
 }
 public CategoryManagerService(IBudgetRepo context) : base(context)
 {
     _context = context;
 }
 public BudgetCalc(IBudgetRepo budgetRepo)
 {
     _budgetRepo = budgetRepo;
 }
 public BudgetService()
 {
     _budgetRepo = new BudgetRepo();
 }