public void GivenOrderRequirementCommitment_WhenDeriving_ThenRequiredRelationsMustExist() { var shipToCustomer = new OrganisationBuilder(this.DatabaseSession).WithName("shipToCustomer").Build(); var billToCustomer = new OrganisationBuilder(this.DatabaseSession).WithName("billToCustomer").Build(); new CustomerRelationshipBuilder(this.DatabaseSession) .WithCustomer(billToCustomer) .WithInternalOrganisation(Singleton.Instance(this.DatabaseSession).DefaultInternalOrganisation) .Build(); new CustomerRelationshipBuilder(this.DatabaseSession) .WithCustomer(shipToCustomer) .WithInternalOrganisation(Singleton.Instance(this.DatabaseSession).DefaultInternalOrganisation) .Build(); var vatRate21 = new VatRateBuilder(this.DatabaseSession).WithRate(21).Build(); var good = new GoodBuilder(this.DatabaseSession) .WithName("Gizmo") .WithSku("10101") .WithVatRate(vatRate21) .WithInventoryItemKind(new InventoryItemKinds(this.DatabaseSession).NonSerialized) .WithUnitOfMeasure(new UnitsOfMeasure(this.DatabaseSession).Piece) .Build(); this.DatabaseSession.Derive(true); var salesOrder = new SalesOrderBuilder(this.DatabaseSession) .WithShipToCustomer(shipToCustomer) .WithBillToCustomer(billToCustomer) .WithVatRegime(new VatRegimes(this.DatabaseSession).Export) .Build(); var goodOrderItem = new SalesOrderItemBuilder(this.DatabaseSession).WithProduct(good).WithQuantityOrdered(1).Build(); salesOrder.AddSalesOrderItem(goodOrderItem); var customerRequirement = new CustomerRequirementBuilder(this.DatabaseSession).WithDescription("100 gizmo's").Build(); this.DatabaseSession.Derive(true); this.DatabaseSession.Commit(); var builder = new OrderRequirementCommitmentBuilder(this.DatabaseSession); builder.Build(); Assert.IsTrue(this.DatabaseSession.Derive().HasErrors); this.DatabaseSession.Rollback(); builder.WithOrderItem(goodOrderItem); builder.Build(); Assert.IsTrue(this.DatabaseSession.Derive().HasErrors); this.DatabaseSession.Rollback(); builder.WithRequirement(customerRequirement); var tsts = builder.Build(); Assert.IsFalse(this.DatabaseSession.Derive().HasErrors); }
public void GivenCustomerRequirement_WhenBuild_ThenPreviousObjectStateIsNull() { var requirement = new CustomerRequirementBuilder(this.DatabaseSession).WithDescription("CustomerRequirement").Build(); this.DatabaseSession.Derive(true); Assert.IsNull(requirement.PreviousObjectState); }
public void GivenCustomerRequirement_WhenBuild_ThenLastObjectStateEqualsCurrencObjectState() { var requirement = new CustomerRequirementBuilder(this.DatabaseSession).WithDescription("CustomerRequirement").Build(); this.DatabaseSession.Derive(true); Assert.AreEqual(new RequirementObjectStates(this.DatabaseSession).Active, requirement.CurrentObjectState); Assert.AreEqual(requirement.LastObjectState, requirement.CurrentObjectState); }
public void GivenCustomerRequirement_WhenDeriving_ThenDescriptionIsRequired() { var builder = new CustomerRequirementBuilder(this.DatabaseSession); var customerRequirement = builder.Build(); Assert.IsTrue(this.DatabaseSession.Derive().HasErrors); this.DatabaseSession.Rollback(); builder.WithDescription("CustomerRequirement"); builder.Build(); Assert.IsFalse(this.DatabaseSession.Derive().HasErrors); }
public void GivenCustomerRequirement_WhenConfirmed_ThenCurrentRequirementStatusMustBeDerived() { var requirement = new CustomerRequirementBuilder(this.DatabaseSession).WithDescription("CustomerRequirement").Build(); this.DatabaseSession.Derive(true); Assert.AreEqual(1, requirement.RequirementStatuses.Count); Assert.AreEqual(new RequirementObjectStates(this.DatabaseSession).Active, requirement.CurrentRequirementStatus.RequirementObjectState); requirement.Close(); this.DatabaseSession.Derive(true); Assert.AreEqual(2, requirement.RequirementStatuses.Count); Assert.AreEqual(new RequirementObjectStates(this.DatabaseSession).Closed, requirement.CurrentRequirementStatus.RequirementObjectState); }
public void GivenCustomerRequirement_WhenDeriving_ThenRequiredRelationsMustExist() { var builder = new CustomerRequirementBuilder(this.DatabaseSession); var requirement = builder.Build(); Assert.IsTrue(this.DatabaseSession.Derive().HasErrors); this.DatabaseSession.Rollback(); builder.WithDescription("requirement"); requirement = builder.Build(); Assert.IsFalse(this.DatabaseSession.Derive().HasErrors); Assert.AreEqual(requirement.CurrentRequirementStatus.RequirementObjectState, new RequirementObjectStates(this.DatabaseSession).Active); Assert.AreEqual(requirement.CurrentObjectState, new RequirementObjectStates(this.DatabaseSession).Active); Assert.AreEqual(requirement.CurrentObjectState, requirement.LastObjectState); }