public void ShouldChangeStatus() { var report = new ExpenseReport(); report.Status = ExpenseReportStatus.Draft; report.ChangeStatus(ExpenseReportStatus.Submitted); Assert.That(report.Status, Is.EqualTo(ExpenseReportStatus.Submitted)); }
public void ShouldAddFact() { new DatabaseTester().Clean(); var creator = new Employee("1", "1", "1", "1"); var assignee = new Employee("2", "2", "2", "2"); var expenseReport = new ExpenseReport { Submitter = creator, Approver = assignee, Title = "foo", Description = "bar", Number = "123" }; expenseReport.ChangeStatus(ExpenseReportStatus.Approved); ExpenseReportFact expenseReportFact = new ExpenseReportFact(expenseReport,new DateTime(2012,1,1)); using (ISession session = DataContext.GetTransactedSession()) { //session.SaveOrUpdate(expenseReport); session.SaveOrUpdate(expenseReportFact); session.Transaction.Commit(); } using (ISession session = DataContext.GetTransactedSession()) { var reportFact = session.Load<ExpenseReportFact>(expenseReportFact.Id); reportFact.Total.ShouldEqual(expenseReportFact.Total); reportFact.TimeStamp.ShouldEqual(expenseReportFact.TimeStamp); reportFact.Number.ShouldEqual(expenseReportFact.Number); reportFact.Status.ShouldEqual(expenseReportFact.Status); reportFact.Submitter.ShouldEqual(expenseReportFact.Submitter); reportFact.Approver.ShouldEqual(expenseReportFact.Approver); } }
public void ShouldSave() { new DatabaseTester().Clean(); var creator = new Employee("1", "1", "1", "1"); var assignee = new Employee("2", "2", "2", "2"); var order = new ExpenseReport(); order.Submitter = creator; order.Approver = assignee; order.Title = "foo"; order.Description = "bar"; order.ChangeStatus(ExpenseReportStatus.Approved); order.Number = "123"; ISession session = DataContext.GetTransactedSession(); session.SaveOrUpdate(creator); session.SaveOrUpdate(assignee); session.Transaction.Commit(); var repository = new ExpenseReportRepository(); repository.Save(order); session.Dispose(); ISession session2 = DataContext.GetTransactedSession(); var rehydratedReport = session2.Load<ExpenseReport>(order.Id); Assert.That(rehydratedReport.Id, Is.EqualTo(order.Id)); Assert.That(rehydratedReport.Submitter.Id, Is.EqualTo(order.Submitter.Id)); Assert.That(rehydratedReport.Approver.Id, Is.EqualTo(order.Approver.Id)); Assert.That(rehydratedReport.Title, Is.EqualTo(order.Title)); Assert.That(rehydratedReport.Description, Is.EqualTo(order.Description)); Assert.That(rehydratedReport.Status, Is.EqualTo(order.Status)); rehydratedReport.Number.ShouldEqual(order.Number); }
public void ShouldSave() { 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"; using(ISession session = DataContext.GetTransactedSession()) { session.SaveOrUpdate(creator); session.SaveOrUpdate(assignee); session.Transaction.Commit(); } IContainer container = DependencyRegistrarModule.EnsureDependenciesRegistered(); var bus = container.GetInstance<Bus>(); bus.Send(new ExpenseReportSaveCommand {ExpenseReport = report}); ExpenseReport rehydratedReport; using(ISession session2 = DataContext.GetTransactedSession()) { rehydratedReport = session2.Load<ExpenseReport>(report.Id); } rehydratedReport.Id.ShouldEqual(report.Id); rehydratedReport.Submitter.Id.ShouldEqual(report.Submitter.Id); rehydratedReport.Approver.Id.ShouldEqual(report.Approver.Id); rehydratedReport.Title.ShouldEqual(report.Title); rehydratedReport.Description.ShouldEqual(report.Description); rehydratedReport.Status.ShouldEqual(report.Status); rehydratedReport.Number.ShouldEqual(report.Number); }
public void ShouldSaveAuditEntries() { new DatabaseTester().Clean(); var creator = new Employee("1", "1", "1", "1"); var assignee = new Employee("2", "2", "2", "2"); var order = new ExpenseReport(); order.Submitter = creator; order.Approver = assignee; order.Title = "foo"; order.Description = "bar"; order.ChangeStatus(ExpenseReportStatus.Approved); order.Number = "123"; order.AddAuditEntry(new AuditEntry(creator, DateTime.Now, ExpenseReportStatus.Submitted, ExpenseReportStatus.Approved)); using (ISession session = DataContext.GetTransactedSession()) { session.SaveOrUpdate(creator); session.SaveOrUpdate(assignee); session.Transaction.Commit(); } var repository = new ExpenseReportRepository(); repository.Save(order); ExpenseReport rehydratedExpenseReport; using (ISession session2 = DataContext.GetTransactedSession()) { rehydratedExpenseReport = session2.Load<ExpenseReport>(order.Id); } var x = order.GetAuditEntries()[0]; var y = rehydratedExpenseReport.GetAuditEntries()[0]; Assert.That(x.BeginStatus, Is.EqualTo(y.BeginStatus)); }
public void PopulateDatabase() { new DatabaseTester().Clean(); ISession session = DataContext.GetTransactedSession(); var lead = new Role("Facility Lead"); var fulfillment = new Role("Fulfillment"); session.SaveOrUpdate(lead); session.SaveOrUpdate(fulfillment); //Trainer1 var jpalermo = new Employee("jpalermo", "Jeffrey", "Palermo", "*****@*****.**"); jpalermo.AddRole(lead); jpalermo.AddRole(fulfillment); session.SaveOrUpdate(jpalermo); //Person 1 //Person 2 //Person 3 //Person 4 //Person 5 //Person 6 //Person 7 //Person 8 //Person 9 //Person 10 //Person 11 //Person 12 //Person 13 var hsimpson = new Employee("hsimpson", "Homer", "Simpson", "*****@*****.**"); hsimpson.AddRole(fulfillment); session.SaveOrUpdate(hsimpson); foreach (ExpenseReportStatus status in ExpenseReportStatus.GetAllItems()) { var order = new ExpenseReport(); order.Number = Guid.NewGuid().ToString().Substring(0, 5).ToUpper(); order.Submitter = jpalermo; order.Approver = jpalermo; order.Status = status; order.Title = "Work Order starting in status " + status; order.Description = "Foo, foo, foo, foo " + status; order.CreatedDate = new DateTime(2000, 1, 1, 8, 0, 0); new DateTime(2000, 1, 1, 8, 0, 0); order.ChangeStatus(ExpenseReportStatus.Draft); order.ChangeStatus(ExpenseReportStatus.Submitted); order.ChangeStatus(ExpenseReportStatus.Approved); session.SaveOrUpdate(order); } var order2 = new ExpenseReport(); order2.Number = Guid.NewGuid().ToString().Substring(0, 5).ToUpper(); order2.Submitter = jpalermo; order2.Approver = jpalermo; order2.Status = ExpenseReportStatus.Approved; order2.Title = "Work Order starting in status "; order2.Description = "Foo, foo, foo, foo "; order2.CreatedDate = new DateTime(2000, 1, 1, 8, 0, 0); new DateTime(2000, 1, 1, 8, 0, 0); session.SaveOrUpdate(order2); session.Transaction.Commit(); session.Dispose(); }
public void PopulateDatabase() { new DatabaseTester().Clean(); ISession session = DataContext.GetTransactedSession(); //Trainer1 var jpalermo = new Employee("jpalermo", "Jeffrey", "Palermo", "*****@*****.**"); session.SaveOrUpdate(jpalermo); //Person 1 //Person 2 //Person 3 var damian = new Employee("damian", "Damian", "Brady", "*****@*****.**"); session.SaveOrUpdate(damian); //Person 4 //Person 5 //Person 6 var paul = new Employee("paul", "Paul", "Stovell", "*****@*****.**"); session.SaveOrUpdate(paul); //Person 7 //Person 8 //Person 9 //Person 10 //Person 11 //Person 12 //Person 13 var hsimpson = new Employee("hsimpson", "Homer", "Simpson", "*****@*****.**"); session.SaveOrUpdate(hsimpson); foreach (ExpenseReportStatus status in ExpenseReportStatus.GetAllItems()) { var report = new ExpenseReport(); report.Number = Guid.NewGuid().ToString().Substring(0, 5).ToUpper(); report.Submitter = jpalermo; report.Approver = jpalermo; report.Status = status; report.Title = "Expense report starting in status " + status; report.Description = "Foo, foo, foo, foo " + status; new DateTime(2000, 1, 1, 8, 0, 0); report.ChangeStatus(ExpenseReportStatus.Draft); report.ChangeStatus(ExpenseReportStatus.Submitted); report.ChangeStatus(ExpenseReportStatus.Approved); session.SaveOrUpdate(report); } var order2 = new ExpenseReport(); order2.Number = Guid.NewGuid().ToString().Substring(0, 5).ToUpper(); order2.Submitter = jpalermo; order2.Approver = jpalermo; order2.Status = ExpenseReportStatus.Approved; order2.Title = "Expense report starting in status "; order2.Description = "Foo, foo, foo, foo "; new DateTime(2000, 1, 1, 8, 0, 0); session.SaveOrUpdate(order2); session.Transaction.Commit(); session.Dispose(); }