public void GivenBasePriceForVirtualProduct_WhenDeriving_ThenProductVirtualProductPriceComponentIsUpdated() { var vatRate21 = new VatRateBuilder(this.Session).WithRate(21).Build(); var virtualGood = new NonUnifiedGoodBuilder(this.Session) .WithProductIdentification(new ProductNumberBuilder(this.Session) .WithIdentification("v101") .WithProductIdentificationType(new ProductIdentificationTypes(this.Session).Good).Build()) .WithName("virtual gizmo") .WithVatRate(vatRate21) .WithUnitOfMeasure(new UnitsOfMeasure(this.Session).Piece) .Build(); var physicalGood = new Goods(this.Session).FindBy(M.Good.Name, "good1"); virtualGood.AddVariant(physicalGood); this.Session.Derive(); var basePrice = new BasePriceBuilder(this.Session) .WithDescription("baseprice") .WithPrice(10) .WithProduct(virtualGood) .WithFromDate(DateTime.UtcNow) .Build(); this.Session.Derive(); Assert.Equal(1, physicalGood.VirtualProductPriceComponents.Count); Assert.Contains(basePrice, physicalGood.VirtualProductPriceComponents); Assert.False(virtualGood.ExistVirtualProductPriceComponents); }