public void TestChainDepartmentDenial()
        {
            Expense expense = new Expense { Total = 400 };

            Employee Amanda = new Employee { Name = "Amanda", Type = EmployeeType.President };
            Employee John = new Employee { Name = "John", Type = EmployeeType.Manager };
            Employee Alex = new Employee { Name = "Alex", Type = EmployeeType.Manager };
            Employee Jenny = new Employee { Name = "Jenny", Type = EmployeeType.Staff };
            Employee Tim = new Employee { Name = "Tim", Type = EmployeeType.Staff };
            Employee Carl = new Employee { Name = "Carl", Type = EmployeeType.Staff };
            Employee Max = new Employee { Name = "Max", Type = EmployeeType.Staff };

            ExpenseHandler handlerAmanda = new ExpenseHandler(Amanda);
            ExpenseHandler handlerJohn = new ExpenseHandler(John);
            handlerJohn.SetNextHandler(handlerAmanda);
            ExpenseHandler handlerAlex = new ExpenseHandler(Alex);
            handlerAlex.SetNextHandler(handlerAmanda);

            ExpenseHandler handlerJenny = new ExpenseHandler(Jenny);
            handlerJenny.SetNextHandler(handlerJohn);
            ExpenseHandler handlerTim = new ExpenseHandler(Tim);
            handlerTim.SetNextHandler(handlerJohn);
            ExpenseHandler handlerCarl = new ExpenseHandler(Carl);
            handlerCarl.SetNextHandler(handlerAlex);
            ExpenseHandler handlerMax = new ExpenseHandler(Max);
            handlerMax.SetNextHandler(handlerAlex);

            bool approved = handlerMax.ApproveExpense(expense);

            Assert.IsFalse(expense.Status == ExpenseStatus.Approved);
        }
 public void TestExpenseDenial()
 {
     Expense expense = new Expense { Total = 150 };
     Employee employee = new Employee { Type = EmployeeType.Staff };
     bool result = employee.ApproveExpense(expense);
     Assert.IsFalse(result);
 }
        public void TestExpenseApproval()
        {
            Expense expense = new Expense { Total = 150 };

            Employee employee = new Employee { Name = "John", Type = EmployeeType.Manager };

            employee.ApproveExpense(expense);
            Assert.IsTrue(expense.Status == ExpenseStatus.Approved);
        }