示例#1
0
        public void ShouldAddNewExpense()
        {
            var report = new ExpenseReport();

            report.Description = "TestReportDescription";
            report.Total       = new decimal(97.34);

            report.AddExpense(report.Description, report.Total);

            Assert.That(report._expenses.Count, Is.EqualTo(1));

            Assert.That(report._expenses.First().Description, Is.EqualTo(report.Description));
        }
        private static void Main()
        {
            var report = new ExpenseReport();
            report.AddExpense(new Expense(ExpenseType.Breakfast, 525));
            report.AddExpense(new Expense(ExpenseType.Breakfast, 400));
            report.AddExpense(new Expense(ExpenseType.Breakfast, 500));
            report.AddExpense(new Expense(ExpenseType.Breakfast, 1050));
            report.AddExpense(new Expense(ExpenseType.CarRental, 5600));
            report.AddExpense(new Expense(ExpenseType.Dinner, 4800));
            report.AddExpense(new Expense(ExpenseType.Dinner, 5400));

            report.PrintReport(new ConsoleReportPrinter());
        }
        public void ShouldSaveExpenses()
        {
            new DatabaseTester().Clean();

            var creator  = new Employee("1", "1", "1", "1");
            var assignee = new Employee("2", "2", "2", "2");
            var report   = new ExpenseReport();

            report.Submitter   = creator;
            report.Approver    = assignee;
            report.Title       = "foo";
            report.Description = "bar";
            report.ChangeStatus(ExpenseReportStatus.Approved);
            report.Number = "123";
            report.AddExpense("howdy", 123.45m);

            using (ISession session = DataContext.GetTransactedSession())
            {
                session.SaveOrUpdate(creator);
                session.SaveOrUpdate(assignee);
                session.SaveOrUpdate(report);
                session.Transaction.Commit();
            }

            ExpenseReport rehydratedExpenseReport;

            using (ISession session2 = DataContext.GetTransactedSession())
            {
                rehydratedExpenseReport = session2.Load <ExpenseReport>(report.Id);
            }

            Expense x = report.GetExpenses()[0];
            Expense y = rehydratedExpenseReport.GetExpenses()[0];

            Assert.That(x.Description, Is.EqualTo(y.Description));
            Assert.That(x.Amount, Is.EqualTo(y.Amount));
        }