public void CalculateBudget_InvalidInput_LogsErrors()
        {
            var transferables = new List <ITransferable>
            {
                new Expense {
                    Name = "Hyra", Value = 5200
                },
                new Expense {
                    Name = "El", Value = 300
                },
                new Expense {
                    Name = "Netflix", Value = 89
                },
                new Expense {
                    Name = "Spotify", Value = 99
                },
                new Expense {
                    Name = "Gym", Value = 400
                },
                new Expense {
                    Name = "Mat", Value = 1600
                },
                new Expense {
                    Name = "Drömresa", Value = 60000
                },
                new CalculatedExpense {
                    Name = "Sparande", Percent = 200
                },
                new CalculatedExpense {
                    Name = "Dator", Percent = 5
                },
                new CalculatedExpense {
                    Name = "Kläder", Percent = 5
                },
                new CalculatedExpense {
                    Name = "Pension", Percent = 75
                }
            };

            decimal actual = BudgetCalculator.CalculateBudget(transferables);

            Assert.Zero(actual);
        }
        public void CalculateBudget_NullList_ReturnZero()
        {
            decimal actual = BudgetCalculator.CalculateBudget(null);

            Assert.Zero(actual);
        }
        public void CalculateBudget_EmptyList_ReturnZeroG()
        {
            decimal actual = BudgetCalculator.CalculateBudget(new List <ITransferable>());

            Assert.Zero(actual);
        }
        public void CalculateBudget_Positive_ReturnBalance(decimal expected)
        {
            var transferables = new List <ITransferable>
            {
                new Income {
                    Name = "Lön", Value = 12000
                },
                new Income {
                    Name = "Bidrag", Value = 1200
                },
                new Income {
                    Name = "Gåva", Value = 600
                },
                new Income {
                    Name = "Försäljning", Value = 450.50m
                },
                new Income {
                    Name = "SMS-lån", Value = 10000
                },
                new Income {
                    Value = 100
                },
                new Expense {
                    Name = "Hyra", Value = 5200
                },
                new Expense {
                    Name = "El", Value = -300
                },
                new Expense {
                    Name = "Netflix", Value = 89
                },
                new Expense {
                    Name = "Spotify", Value = 99
                },
                new Expense {
                    Name = "Gym", Value = 400
                },
                new Expense {
                    Name = "Mat", Value = 1600
                },
                new Expense {
                    Name = "Drömresa", Value = 60000
                },
                new CalculatedExpense {
                    Name = "Sparande", Percent = 20
                },
                new CalculatedExpense {
                    Name = "Dator", Percent = 5
                },
                new CalculatedExpense {
                    Name = "Kläder", Percent = 5
                },
                new CalculatedExpense {
                    Name = "Pension", Percent = 75
                }
            };

            decimal actual = BudgetCalculator.CalculateBudget(transferables);

            Assert.That(actual, Is.EqualTo(expected));
        }