public void GivenOrderRequirementCommitment_WhenDeriving_ThenRequiredRelationsMustExist() { var shipToCustomer = new OrganisationBuilder(this.Session).WithName("shipToCustomer").Build(); var billToCustomer = new OrganisationBuilder(this.Session).WithName("billToCustomer").Build(); new CustomerRelationshipBuilder(this.Session) .WithCustomer(billToCustomer) .Build(); new CustomerRelationshipBuilder(this.Session) .WithCustomer(shipToCustomer) .Build(); var good = new Goods(this.Session).FindBy(M.Good.Name, "good1"); this.Session.Derive(); var salesOrder = new SalesOrderBuilder(this.Session) .WithShipToCustomer(shipToCustomer) .WithBillToCustomer(billToCustomer) .WithAssignedVatRegime(new VatRegimes(this.Session).ZeroRated) .Build(); var goodOrderItem = new SalesOrderItemBuilder(this.Session) .WithInvoiceItemType(new InvoiceItemTypes(this.Session).ProductItem) .WithProduct(good) .WithAssignedUnitPrice(1) .WithQuantityOrdered(1) .Build(); salesOrder.AddSalesOrderItem(goodOrderItem); var customerRequirement = new RequirementBuilder(this.Session).WithDescription("100 gizmo's").Build(); this.Session.Derive(); this.Session.Commit(); var builder = new OrderRequirementCommitmentBuilder(this.Session); builder.Build(); Assert.True(this.Session.Derive(false).HasErrors); this.Session.Rollback(); builder.WithOrderItem(goodOrderItem); builder.Build(); Assert.True(this.Session.Derive(false).HasErrors); this.Session.Rollback(); builder.WithRequirement(customerRequirement); var tsts = builder.Build(); Assert.False(this.Session.Derive(false).HasErrors); }
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); }