public void ShouldNotBeValidInWrongStatus() { var order = new ExpenseReport(); order.Status = ExpenseReportStatus.Submitted; var employee = new Employee(); order.Submitter = employee; var command = new SubmittedToApprovedCommand(order, employee); Assert.That(command.IsValid(), Is.False); }
public void ShouldNotBeValidInWrongStatus() { var report = new ExpenseReport(); report.Status = ExpenseReportStatus.Draft; var employee = new Employee(); report.Approver = employee; var command = new SubmittedToApprovedCommand(); Assert.That(command.IsValid(new ExecuteTransitionCommand(report, null, employee, new DateTime())), Is.False); }
public void ShouldBeValid() { var order = new ExpenseReport(); order.Status = ExpenseReportStatus.Submitted; var employee = new Employee(); order.Approver = employee; var command = new SubmittedToApprovedCommand(); Assert.That(command.IsValid(new ExecuteTransitionCommand(order, null, employee, new DateTime())), Is.True); }
public void ShouldNotBeValidWithWrongEmployee() { var order = new ExpenseReport(); order.Status = ExpenseReportStatus.Draft; var employee = new Employee(); var differentEmployee = new Employee(); order.Approver = employee; var command = new SubmittedToApprovedCommand(order, differentEmployee); Assert.That(command.IsValid(), Is.False); }
public void ShouldBeValidWithOnBehalfApprover() { var report = new ExpenseReport(); report.Status = ExpenseReportStatus.Submitted; var manager = new Manager(); var assistant = new Employee(); manager.AdminAssistant = assistant; report.Approver = manager; var command = new SubmittedToApprovedCommand(); Assert.That(command.IsValid(new ExecuteTransitionCommand(report, null, assistant, new DateTime())), Is.True); }
public void ShouldTransitionStateProperly() { var order = new ExpenseReport(); order.Number = "123"; order.Status = ExpenseReportStatus.Submitted; var employee = new Employee(); order.Approver = employee; var mocks = new MockRepository(); var commandVisitor = mocks.DynamicMock<IStateCommandVisitor>(); commandVisitor.Save(order); commandVisitor.GoToEdit(order); mocks.ReplayAll(); var command = new SubmittedToApprovedCommand(order, employee); command.Execute(commandVisitor); mocks.VerifyAll(); Assert.That(order.Status, Is.EqualTo(ExpenseReportStatus.Approved)); }
public void ShouldSetLastApprovedEachTime() { var report = new ExpenseReport(); report.Number = "123"; report.Status = ExpenseReportStatus.Submitted; var employee = new Employee(); report.Approver = employee; var approvedDate = new DateTime(2015,01,01); var command = new SubmittedToApprovedCommand(); command.Execute(new ExecuteTransitionCommand(report, null, employee, approvedDate)); Assert.That(report.LastApproved, Is.EqualTo(approvedDate)); var approvedDate2 = new DateTime(2015, 02, 02); var command2 = new SubmittedToApprovedCommand(); command2.Execute(new ExecuteTransitionCommand(report, null, employee, approvedDate2)); Assert.That(report.LastApproved, Is.Not.EqualTo(approvedDate)); Assert.That(report.LastApproved, Is.EqualTo(approvedDate2)); }
public void ShouldTransitionStateProperly() { var report = new ExpenseReport(); report.Number = "123"; report.Status = ExpenseReportStatus.Submitted; var employee = new Employee(); report.Approver = employee; var command = new SubmittedToApprovedCommand(); command.Execute(new ExecuteTransitionCommand(report, null, employee, new DateTime())); Assert.That(report.Status, Is.EqualTo(ExpenseReportStatus.Approved)); }