Ejemplo n.º 1
0
        public void ShouldPopulateLastDeclinedEachTime()
        {
            var order = new ExpenseReport();

            order.Number = "123";
            order.Status = ExpenseReportStatus.Approved;
            var employee = new Employee();

            order.Approver = employee;

            var declineDate = new DateTime(2015, 01, 01);

            var command = new ApprovedToSubmittedCommand();

            command.Execute(new ExecuteTransitionCommand(order, null, employee, declineDate));

            Assert.That(order.LastDeclined, Is.EqualTo(declineDate));

            var declineDate2 = new DateTime(2015, 02, 02);

            var command2 = new ApprovedToSubmittedCommand();

            command2.Execute(new ExecuteTransitionCommand(order, null, employee, declineDate2));

            Assert.That(order.LastDeclined, Is.Not.EqualTo(declineDate));
            Assert.That(order.LastDeclined, Is.EqualTo(declineDate2));
        }
Ejemplo n.º 2
0
        public void ShouldBeValid()
        {
            var order = new ExpenseReport();

            order.Status = ExpenseReportStatus.Approved;
            var employee = new Employee();

            order.Approver = employee;

            var command = new ApprovedToSubmittedCommand();

            Assert.That(command.IsValid(new ExecuteTransitionCommand(order, null, employee, new DateTime())), Is.True);
        }
Ejemplo n.º 3
0
        public void ShouldTransitionStateProperly()
        {
            var order = new ExpenseReport();

            order.Number = "123";
            order.Status = ExpenseReportStatus.Approved;
            var employee = new Employee();

            order.Approver = employee;

            var command = new ApprovedToSubmittedCommand();

            command.Execute(new ExecuteTransitionCommand(order, null, employee, new DateTime()));

            Assert.That(order.Status, Is.EqualTo(ExpenseReportStatus.Submitted));
        }
Ejemplo n.º 4
0
        public void AssistantShouldDecline()
        {
            var order = new ExpenseReport();

            order.Number = "123";
            order.Status = ExpenseReportStatus.Approved;
            var manager   = new Manager();
            var assistant = new Employee();

            order.Approver         = manager;
            manager.AdminAssistant = assistant;


            var command = new ApprovedToSubmittedCommand();

            Assert.That(command.IsValid(new ExecuteTransitionCommand(order, null, assistant, new DateTime())), Is.True);
        }