Ejemplo n.º 1
0
        public void WithNoBudgetData()
        {
            var emptyBudgetCalculator = new BudgetCalculator(new EmptyBudgetRepository());
            var budget = emptyBudgetCalculator.TotalAmount(DateTime.MinValue, DateTime.MinValue);

            Assert.AreEqual(0, budget);
        }
Ejemplo n.º 2
0
        private void AmountShouldBe(IList <Budget> data, int expected, DateTime start, DateTime end)
        {
            var budgetCalculator = new BudgetCalculator(new TestDataBudgetRepository(data));
            var budget           = budgetCalculator.TotalAmount(start, end);

            Assert.AreEqual(expected, budget);
        }
Ejemplo n.º 3
0
        public void WrongStartEnd()
        {
            IList <Budget> data = new List <Budget>()
            {
                new Budget()
                {
                    Amount = 310, YearMonth = "201801"
                },
                new Budget()
                {
                    Amount = 620, YearMonth = "201803"
                },
                new Budget()
                {
                    Amount = 900, YearMonth = "201804"
                }
            };

            var budgetCalculator = new BudgetCalculator(new TestDataBudgetRepository(data));

            budgetCalculator.TotalAmount(new DateTime(2018, 12, 31), new DateTime(2017, 12, 31));
        }
Ejemplo n.º 4
0
        public void CrossMoreMonthHaveBudget()
        {
            IList <Budget> data = new List <Budget>()
            {
                new Budget()
                {
                    Amount = 310, YearMonth = "201801"
                },
                new Budget()
                {
                    Amount = 620, YearMonth = "201803"
                },
                new Budget()
                {
                    Amount = 900, YearMonth = "201804"
                }
            };

            var budgetCalculator = new BudgetCalculator(new TestDataBudgetRepository(data));

            AmountShouldBe(720, new DateTime(2018, 1, 31), new DateTime(2018, 4, 3));
        }
Ejemplo n.º 5
0
        public void SingleMonthDaysHaveBudget()
        {
            IList <Budget> data = new List <Budget>()
            {
                new Budget()
                {
                    Amount = 310, YearMonth = "201801"
                },
                new Budget()
                {
                    Amount = 620, YearMonth = "201803"
                },
                new Budget()
                {
                    Amount = 900, YearMonth = "201804"
                }
            };

            var budgetCalculator = new BudgetCalculator(new TestDataBudgetRepository(data));

            AmountShouldBe(20, new DateTime(2018, 01, 01), new DateTime(2018, 01, 02));
        }
Ejemplo n.º 6
0
        public void AllOutOfRangeBudget()
        {
            IList <Budget> data = new List <Budget>()
            {
                new Budget()
                {
                    Amount = 310, YearMonth = "201801"
                },
                new Budget()
                {
                    Amount = 620, YearMonth = "201803"
                },
                new Budget()
                {
                    Amount = 900, YearMonth = "201804"
                }
            };

            var budgetCalculator = new BudgetCalculator(new TestDataBudgetRepository(data));
            var budget           = budgetCalculator.TotalAmount(new DateTime(2017, 12, 31), new DateTime(2017, 12, 31));

            Assert.AreEqual(0, budget);
        }
Ejemplo n.º 7
0
        private void AmountShouldBe(int expected, DateTime start, DateTime end)
        {
            IList <Budget> data = new List <Budget>()
            {
                new Budget()
                {
                    Amount = 310, YearMonth = "201801"
                },
                new Budget()
                {
                    Amount = 620, YearMonth = "201803"
                },
                new Budget()
                {
                    Amount = 900, YearMonth = "201804"
                }
            };

            var budgetCalculator = new BudgetCalculator(new TestDataBudgetRepository(data));
            var budget           = budgetCalculator.TotalAmount(start, end);

            Assert.AreEqual(expected, budget);
        }
Ejemplo n.º 8
0
        public void CrossMonthSomeHaveBudgetSomeNoBudget()
        {
            IList <Budget> data = new List <Budget>()
            {
                new Budget()
                {
                    Amount = 310, YearMonth = "201801"
                },
                new Budget()
                {
                    Amount = 620, YearMonth = "201803"
                },
                new Budget()
                {
                    Amount = 900, YearMonth = "201804"
                }
            };

            var budgetCalculator = new BudgetCalculator(new TestDataBudgetRepository(data));
            var budget           = budgetCalculator.TotalAmount(new DateTime(2018, 2, 15), new DateTime(2018, 03, 15));

            Assert.AreEqual(300, budget);
        }
Ejemplo n.º 9
0
        public void CrossYearHaveBudget()
        {
            IList <Budget> data = new List <Budget>()
            {
                new Budget()
                {
                    Amount = 310, YearMonth = "201801"
                },
                new Budget()
                {
                    Amount = 620, YearMonth = "201803"
                },
                new Budget()
                {
                    Amount = 900, YearMonth = "201804"
                }
            };

            var budgetCalculator = new BudgetCalculator(new TestDataBudgetRepository(data));
            var budget           = budgetCalculator.TotalAmount(new DateTime(2017, 08, 31), new DateTime(2018, 06, 01));

            Assert.AreEqual(1830, budget);
        }