public void GivenDesiredProductFeature_WhenDeriving_ThenRequiredRelationsMustExist() { var softwareFeature = new SoftwareFeatureBuilder(this.Session) .WithVatRegime(new VatRegimes(this.Session).ZeroRated) .WithName("Tutorial") .Build(); this.Session.Derive(); this.Session.Commit(); var builder = new DesiredProductFeatureBuilder(this.Session); builder.Build(); Assert.True(this.Session.Derive(false).HasErrors); this.Session.Rollback(); builder.WithRequired(false); builder.Build(); Assert.True(this.Session.Derive(false).HasErrors); this.Session.Rollback(); builder.WithProductFeature(softwareFeature); builder.Build(); Assert.False(this.Session.Derive(false).HasErrors); }
public void GivenDesiredProductFeature_WhenDeriving_ThenRequiredRelationsMustExist() { var vatRate21 = new VatRateBuilder(this.DatabaseSession).WithRate(21).Build(); var softwareFeature = new SoftwareFeatureBuilder(this.DatabaseSession) .WithName("Tutorial DVD") .WithVatRate(vatRate21) .WithLocalisedName(new LocalisedTextBuilder(this.DatabaseSession).WithText("Tutorial").WithLocale(Singleton.Instance(this.DatabaseSession).DefaultLocale).Build()) .Build(); this.DatabaseSession.Derive(true); this.DatabaseSession.Commit(); var builder = new DesiredProductFeatureBuilder(this.DatabaseSession); builder.Build(); Assert.IsTrue(this.DatabaseSession.Derive().HasErrors); this.DatabaseSession.Rollback(); builder.WithRequired(false); builder.Build(); Assert.IsTrue(this.DatabaseSession.Derive().HasErrors); this.DatabaseSession.Rollback(); builder.WithProductFeature(softwareFeature); builder.Build(); Assert.IsFalse(this.DatabaseSession.Derive().HasErrors); }