Ejemplo n.º 1
0
        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);
        }