public void GivenGood_WhenDeriving_ThenRequiredRelationsMustExist() { var vatRate21 = new VatRateBuilder(this.DatabaseSession).WithRate(21).Build(); var finishedGood = new FinishedGoodBuilder(this.DatabaseSession).WithName("finishedGood").Build(); this.DatabaseSession.Derive(true); this.DatabaseSession.Commit(); var builder = new GoodBuilder(this.DatabaseSession); var good = builder.Build(); Assert.IsTrue(this.DatabaseSession.Derive().HasErrors); this.DatabaseSession.Rollback(); builder.WithName("Good"); good = builder.Build(); Assert.IsTrue(this.DatabaseSession.Derive().HasErrors); this.DatabaseSession.Rollback(); builder.WithUnitOfMeasure(new UnitsOfMeasure(this.DatabaseSession).Piece); good = builder.Build(); Assert.IsTrue(this.DatabaseSession.Derive().HasErrors); this.DatabaseSession.Rollback(); builder.WithVatRate(vatRate21); good = builder.Build(); Assert.IsTrue(this.DatabaseSession.Derive().HasErrors); this.DatabaseSession.Rollback(); builder.WithFinishedGood(finishedGood); good = builder.Build(); Assert.IsFalse(this.DatabaseSession.Derive().HasErrors); builder.WithInventoryItemKind(new InventoryItemKinds(this.DatabaseSession).NonSerialized); good = builder.Build(); Assert.IsTrue(this.DatabaseSession.Derive().HasErrors); good.RemoveFinishedGood(); Assert.IsFalse(this.DatabaseSession.Derive().HasErrors); }