Esempio n. 1
0
        public void ShouldProveOwnedEntityMappingForStatus()
        {
            new DatabaseTester().Clean();
            var employee = new Employee("1", "1", "1", "1");
            var testTime = new DateTime(2015, 1, 1);
            var report   = new ExpenseReport
            {
                Submitter   = employee,
                Title       = "TestExpenseReport",
                Description = "This is an expense report test",
                Number      = "123",
                Total       = 100.25m,
                Status      = ExpenseReportStatus.Approved
            };

            report.ChangeStatus(employee, testTime, ExpenseReportStatus.Submitted, ExpenseReportStatus.Approved);
            report.ChangeStatus(employee, testTime, ExpenseReportStatus.Approved, ExpenseReportStatus.Cancelled);

            var container = DependencyRegistrarModule.EnsureDependenciesRegistered();
            var context   = container.GetInstance <EfCoreContext>();

            context.Add(report);
            context.SaveChanges();

            IQueryable <AuditEntry> entries = context.Set <AuditEntry>().Include(x => x.ExpenseReport)
                                              .Include(x => x.Employee).Where(x => x.ExpenseReport.Id == report.Id);

            entries.Count().ShouldEqual(2);
        }
        public void ShouldEagerFetchAssociations()
        {
            new DatabaseTester().Clean();

            var employee  = new Employee("1", "1", "1", "1");
            var employee2 = new Employee("2", "2", "2", "2");
            var employee3 = new Employee("3", "3", "3", "3");
            var report1   = new ExpenseReport();

            report1.Submitter = employee;
            report1.Approver  = employee3;
            report1.Number    = "123";
            report1.ChangeStatus(employee2, DateTime.Now, ExpenseReportStatus.Draft, ExpenseReportStatus.Submitted);

            using (EfCoreContext context = new StubbedDataContextFactory().GetContext())
            {
                context.Add(report1);
                context.SaveChanges();
            }

            IContainer container = DependencyRegistrarModule.EnsureDependenciesRegistered();
            var        bus       = container.GetInstance <Bus>();

            ExpenseReport report123 = bus.Send(new ExpenseReportByNumberQuery {
                ExpenseReportNumber = "123"
            }).Result;

            Assert.That(report123.Id, Is.EqualTo(report1.Id));
            report123.AuditEntries.Count().ShouldEqual(1);
            report123.AuditEntries.ToArray()[0].Employee.ShouldEqual(employee2);
            report123.Submitter.ShouldEqual(employee);
            report123.Approver.ShouldEqual(employee3);
        }
Esempio n. 3
0
        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 ShouldSaveExpenseReportWithNewProperties()
        {
            // Clean the database
            new DatabaseTester().Clean();
            // Make employees
            var      creator  = new Employee("1", "1", "1", "1");
            var      assignee = new Employee("2", "2", "2", "2");
            DateTime testTime = new DateTime(2015, 1, 1);
            // popluate ExpenseReport
            var report = new ExpenseReport
            {
                Submitter      = creator,
                Approver       = assignee,
                Title          = "TestExpenseReport",
                Description    = "This is an expense report test",
                Number         = "123",
                MilesDriven    = 100,
                Created        = testTime,
                FirstSubmitted = testTime,
                LastSubmitted  = testTime,
                LastWithdrawn  = testTime,
                LastCancelled  = testTime,
                LastApproved   = testTime,
                LastDeclined   = testTime,
                Total          = 100.25m
            };

            report.ChangeStatus(ExpenseReportStatus.Approved);
            report.AddAuditEntry(new AuditEntry(creator, DateTime.Now, ExpenseReportStatus.Submitted,
                                                ExpenseReportStatus.Approved));

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

            ExpenseReport pulledExpenseReport;

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

            Assert.That(pulledExpenseReport.MilesDriven, Is.EqualTo(report.MilesDriven));
            Assert.That(pulledExpenseReport.Created, Is.EqualTo(report.Created));
            Assert.That(pulledExpenseReport.FirstSubmitted, Is.EqualTo(report.FirstSubmitted));
            Assert.That(pulledExpenseReport.LastSubmitted, Is.EqualTo(report.LastSubmitted));
            Assert.That(pulledExpenseReport.LastWithdrawn, Is.EqualTo(report.LastWithdrawn));
            Assert.That(pulledExpenseReport.LastCancelled, Is.EqualTo(report.LastCancelled));
            Assert.That(pulledExpenseReport.LastApproved, Is.EqualTo(report.LastApproved));
            Assert.That(pulledExpenseReport.LastDeclined, Is.EqualTo(report.LastDeclined));
            Assert.That(pulledExpenseReport.Total, Is.EqualTo(report.Total));
        }
Esempio n. 5
0
        public void ShouldCascadeDeleteAuditEntries()
        {
            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";
            var auditEntry = new AuditEntry(creator, DateTime.Now, ExpenseReportStatus.Submitted,
                                            ExpenseReportStatus.Approved, report);

            report.AddAuditEntry(auditEntry);

            using (EfCoreContext context = new StubbedDataContextFactory().GetContext())
            {
                context.Add(creator);
                context.Add(assignee);
                context.Add(auditEntry);
                context.Add(report);
                context.SaveChanges();
            }

            ExpenseReport rehydratedExpenseReport;

            using (EfCoreContext context = new StubbedDataContextFactory().GetContext())
            {
                rehydratedExpenseReport = context.Set <ExpenseReport>()
                                          .Single(s => s.Id == report.Id);
                context.Entry(rehydratedExpenseReport).Collection(x => x.AuditEntries).Load();
            }

            rehydratedExpenseReport.AuditEntries.ToArray().Length.ShouldEqual(1);
            var entryId = rehydratedExpenseReport.AuditEntries.ToArray()[0].Id;

            using (EfCoreContext context = new StubbedDataContextFactory().GetContext())
            {
                context.Remove(rehydratedExpenseReport);
                context.SaveChanges();
            }

            using (EfCoreContext context = new StubbedDataContextFactory().GetContext())
            {
                context.Set <AuditEntry>().Count(entry => entry.Id == entryId).ShouldEqual(0);
                context.SaveChanges();
            }
        }
        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 (EfCoreContext context = new StubbedDataContextFactory().GetContext())
            {
                context.Add(creator);
                context.Add(assignee);
                context.SaveChanges();
            }

            IContainer container = DependencyRegistrarModule.EnsureDependenciesRegistered();
            var        bus       = container.GetInstance <Bus>();

            bus.Send(new ExpenseReportSaveCommand {
                ExpenseReport = report
            });

            ExpenseReport rehydratedReport;

            using (EfCoreContext context = new StubbedDataContextFactory().GetContext())
            {
                rehydratedReport = context.Find <ExpenseReport>(report.Id);
                context.Entry(rehydratedReport).Reference(x => x.Submitter).Load();
                context.Entry(rehydratedReport).Reference(x => x.Approver).Load();
            }

            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 report   = new ExpenseReport();

            report.Submitter   = creator;
            report.Approver    = assignee;
            report.Title       = "foo";
            report.Description = "bar";
            report.ChangeStatus(ExpenseReportStatus.Approved);
            report.Number = "123";
            report.AddAuditEntry(new AuditEntry(creator, DateTime.Now, ExpenseReportStatus.Submitted,
                                                ExpenseReportStatus.Approved, report));

            using (EfCoreContext context = new StubbedDataContextFactory().GetContext())
            {
                context.Add(creator);
                context.Add(assignee);
                context.SaveChanges();
            }

            IContainer container = DependencyRegistrarModule.EnsureDependenciesRegistered();
            var        bus       = container.GetInstance <Bus>();

            bus.Send(new ExpenseReportSaveCommand {
                ExpenseReport = report
            });

            ExpenseReport rehydratedReport;

            using (EfCoreContext context = new StubbedDataContextFactory().GetContext())
            {
                rehydratedReport = context.Find <ExpenseReport>(report.Id);
                context.Entry(rehydratedReport).Collection(r => r.AuditEntries).Load();
            }

            var x = report.AuditEntries.ToArray()[0];
            var y = rehydratedReport.AuditEntries.ToArray()[0];

            y.EndStatus.ShouldEqual(x.EndStatus);
            y.BeginStatus.ShouldEqual(x.BeginStatus);
            y.EmployeeName.ShouldEqual(x.EmployeeName);
        }
        public void ShouldSaveAuditEntries()
        {
            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.AddAuditEntry(new AuditEntry(creator, DateTime.Now, ExpenseReportStatus.Submitted,
                                                ExpenseReportStatus.Approved));

            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);
            }

            var x = report.GetAuditEntries()[0];
            var y = rehydratedReport.GetAuditEntries()[0];

            y.EndStatus.ShouldEqual(x.EndStatus);
            y.BeginStatus.ShouldEqual(x.BeginStatus);
            y.EmployeeName.ShouldEqual(x.EmployeeName);
        }
Esempio n. 9
0
        public void ShouldSaveAuditEntries()
        {
            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";
            var auditEntry = new AuditEntry(creator, DateTime.Now, ExpenseReportStatus.Submitted,
                                            ExpenseReportStatus.Approved, report);

            report.AddAuditEntry(auditEntry);

            using (EfCoreContext context = new StubbedDataContextFactory().GetContext())
            {
                context.Add(creator);
                context.Add(assignee);
                context.Add(auditEntry);
                context.Add(report);
                context.SaveChanges();
            }

            ExpenseReport rehydratedExpenseReport;

            using (EfCoreContext context = new StubbedDataContextFactory().GetContext())
            {
                rehydratedExpenseReport = context.Set <ExpenseReport>()
                                          .Single(s => s.Id == report.Id);
                context.Entry <ExpenseReport>(rehydratedExpenseReport).Collection(x => x.AuditEntries).Load();
            }

            var x1 = report.AuditEntries.ToArray()[0];
            var y1 = rehydratedExpenseReport.AuditEntries.ToArray()[0];

            Assert.That(y1.EndStatus, Is.EqualTo(x1.EndStatus));
        }
        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 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);
        }
Esempio n. 12
0
        public void Execute(IStateCommandVisitor commandVisitor)
        {
//            Log.Info(this, "Executing");
            preExecute(commandVisitor);
            string currentUserFullName = _currentUser.GetFullName();

            _expenseReport.ChangeStatus(_currentUser, DateTime.Now, GetEndStatus());

            commandVisitor.Save(_expenseReport);

            string loweredTransitionVerb = TransitionVerbPastTense.ToLower();
            string reportNumber          = _expenseReport.Number;
            string message = string.Format("You have {0} work order {1}", loweredTransitionVerb, reportNumber);

            commandVisitor.SendMessage(message);
            string debugMessage = string.Format("{0} has {1} work order {2}", currentUserFullName, loweredTransitionVerb,
                                                reportNumber);

//            Log.Debug(this, debugMessage);
            postExecute(commandVisitor);

//            Log.Info(this, "Executed");
        }
        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 (EfCoreContext context = new StubbedDataContextFactory().GetContext())
            {
                context.Add(expenseReportFact);
                context.SaveChanges();
            }

            using (EfCoreContext context = new StubbedDataContextFactory().GetContext())
            {
                var reportFact = context.Find <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 ShouldEagerFetchAssociations()
        {
            new DatabaseTester().Clean();

            var employee1 = new Employee("1", "1", "1", "1");
            var employee2 = new Employee("2", "2", "2", "2");
            var report    = new ExpenseReport();

            report.Submitter = employee1;
            report.Approver  = employee1;
            report.Number    = "123";
            report.ChangeStatus(employee2, DateTime.Now, ExpenseReportStatus.Draft, ExpenseReportStatus.Submitted);;

            using (EfCoreContext dbContext = new StubbedDataContextFactory().GetContext())
            {
                dbContext.Add(employee1);
                dbContext.Add(report);
                dbContext.SaveChanges();
            }

            var specification = new ExpenseReportSpecificationQuery()
            {
                Status = ExpenseReportStatus.Submitted
            };

            IContainer container = DependencyRegistrarModule.EnsureDependenciesRegistered();
            var        bus       = container.GetInstance <Bus>();
            MultipleResult <ExpenseReport> result = bus.Send(specification);

            ExpenseReport[] reports = result.Results;

            Assert.That(reports.Length, Is.EqualTo(1));
            Assert.That(reports[0].Id, Is.EqualTo(report.Id));
            reports[0].Submitter.ShouldEqual(employee1);
            reports[0].Approver.ShouldEqual(employee1);
            reports[0].AuditEntries.ToArray()[0].Employee.ShouldEqual(employee2);
        }
        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));
        }
        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 PopulateDatabase()
        {
            new DatabaseTester().Clean();
            EfCoreContext session = new StubbedDataContextFactory().GetContext();


            //Trainer1
            var jpalermo = new Employee(KnownEmployeeUsername, "Jeffrey", "Palermo", "*****@*****.**");

            session.Add(jpalermo);

            //Person 1

            //Person 2

            //Person 3
            var damian = new Employee("damian", "Damian", "Brady", "*****@*****.**");

            session.Add(damian);

            //Person 4

            var scott = new Employee("Scott Wilson", "Scott", "Wilson", "*****@*****.**");

            session.Add(scott);

            //Person 5

            //Person 6
            var paul = new Employee("paul", "Paul", "Stovell", "*****@*****.**");

            session.Add(paul);

            //Person 7

            //Person 8
            var steve = new Employee("Steve Hickman", "Steve", "Hickman", "*****@*****.**");

            session.Add(steve);

            //Person 9

            //Person 10

            //Person 11

            //Person 12

            //Person 13

            var hsimpson = new Employee("hsimpson", "Homer", "Simpson", "*****@*****.**");

            session.Add(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(jpalermo, DateTime.Now, ExpenseReportStatus.Draft, ExpenseReportStatus.Draft);
                report.ChangeStatus(jpalermo, DateTime.Now, ExpenseReportStatus.Draft, ExpenseReportStatus.Submitted);
                report.ChangeStatus(jpalermo, DateTime.Now, ExpenseReportStatus.Submitted, ExpenseReportStatus.Approved);

                session.Add(report);
            }

            var report2 = new ExpenseReport();

            report2.Number      = KnownExpenseReportNumber;
            report2.Submitter   = jpalermo;
            report2.Approver    = jpalermo;
            report2.Status      = ExpenseReportStatus.Draft;
            report2.Title       = "Expense report starting in Draft status ";
            report2.Description = "Foo, foo, foo, foo ";
            new DateTime(2000, 1, 1, 8, 0, 0);
            session.Add(report2);

            session.SaveChanges();
            session.Dispose();
        }
Esempio n. 18
0
        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();
        }
Esempio n. 19
0
        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
            var jyeager = new Employee("jyeager", "jan", "yeager", "*****@*****.**");

            session.SaveOrUpdate(jyeager);
            //Person 3
            var brheutan = new Employee("brheutan", "Burton", "Rheutan", "*****@*****.**");

            session.SaveOrUpdate(brheutan);

            //Person 4

            //Person 5

            //Person 6
            var fyulnady = new Employee("fyulnady", "Fredy", "Yulnady", "*****@*****.**");

            session.SaveOrUpdate(fyulnady);

            //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 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;
                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 ";
            new DateTime(2000, 1, 1, 8, 0, 0);
            session.SaveOrUpdate(order2);

            session.Transaction.Commit();
            session.Dispose();
        }
Esempio n. 20
0
        public void ShouldSaveExpenseReportWithNewProperties()
        {
            // Clean the database
            new DatabaseTester().Clean();
            // Make employees
            var      submitter = new Employee("1", "1", "1", "1");
            var      approver  = new Employee("2", "2", "2", "2");
            DateTime testTime  = new DateTime(2015, 1, 1);
            // popluate ExpenseReport
            var report = new ExpenseReport
            {
                Submitter      = submitter,
                Approver       = approver,
                Title          = "TestExpenseReport",
                Description    = "This is an expense report test",
                Number         = "123",
                MilesDriven    = 100,
                Created        = testTime,
                FirstSubmitted = testTime,
                LastSubmitted  = testTime,
                LastWithdrawn  = testTime,
                LastCancelled  = testTime,
                LastApproved   = testTime,
                LastDeclined   = testTime,
                Total          = 100.25m
            };

            report.ChangeStatus(ExpenseReportStatus.Approved);
            var auditEntry = new AuditEntry(submitter, DateTime.Now, ExpenseReportStatus.Submitted,
                                            ExpenseReportStatus.Approved, report);

            report.AddAuditEntry(auditEntry);

            using (EfCoreContext context = new StubbedDataContextFactory().GetContext())
            {
                context.Add(submitter);
                context.Add(approver);
                context.Add(auditEntry);
                context.Add(report);
                context.SaveChanges();
            }

            ExpenseReport rehydratedExpenseReport;

            using (EfCoreContext context = new StubbedDataContextFactory().GetContext())
            {
                rehydratedExpenseReport = context.Set <ExpenseReport>().Include(x => x.Approver)
                                          .Include(x => x.Submitter).Single(x => x.Id == report.Id);
            }

            rehydratedExpenseReport.Approver.ShouldEqual(approver);
            rehydratedExpenseReport.Submitter.ShouldEqual(submitter);
            rehydratedExpenseReport.Title.ShouldEqual("TestExpenseReport");
            rehydratedExpenseReport.Description.ShouldEqual("This is an expense report test");
            rehydratedExpenseReport.Number.ShouldEqual("123");
            rehydratedExpenseReport.Status.ShouldEqual(ExpenseReportStatus.Approved);
            Assert.That(rehydratedExpenseReport.MilesDriven, Is.EqualTo(report.MilesDriven));
            Assert.That(rehydratedExpenseReport.Created, Is.EqualTo(report.Created));
            Assert.That(rehydratedExpenseReport.FirstSubmitted, Is.EqualTo(report.FirstSubmitted));
            Assert.That(rehydratedExpenseReport.LastSubmitted, Is.EqualTo(report.LastSubmitted));
            Assert.That(rehydratedExpenseReport.LastWithdrawn, Is.EqualTo(report.LastWithdrawn));
            Assert.That(rehydratedExpenseReport.LastCancelled, Is.EqualTo(report.LastCancelled));
            Assert.That(rehydratedExpenseReport.LastApproved, Is.EqualTo(report.LastApproved));
            Assert.That(rehydratedExpenseReport.LastDeclined, Is.EqualTo(report.LastDeclined));
            Assert.That(rehydratedExpenseReport.Total, Is.EqualTo(report.Total));
        }
Esempio n. 21
0
        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();
        }