public void MakePermanent_WithValidData_ShouldMakeItemPermanent()
        {
            // Arrange
            Fixture fixture = commonFixture.GetNewFixture();

            var           definition    = StoreItemDefinition.FromTemporary(true);
            IStoreItem    storeItem     = storeItemFixture.CreateValid(definition);
            PermanentItem permanentItem = fixture.Create <PermanentItem>();
            List <IStoreItemAvailability> availabilities = storeItemAvailabilityFixture.CreateManyValid().ToList();

            // Act
            storeItem.MakePermanent(permanentItem, availabilities);

            // Assert
            using (new AssertionScope())
            {
                storeItem.Name.Should().Be(permanentItem.Name);
                storeItem.Comment.Should().Be(permanentItem.Comment);
                storeItem.QuantityType.Should().Be(permanentItem.QuantityType);
                storeItem.QuantityInPacket.Should().Be(permanentItem.QuantityInPacket);
                storeItem.QuantityTypeInPacket.Should().Be(permanentItem.QuantityTypeInPacket);
                storeItem.Availabilities.Should().BeEquivalentTo(availabilities);
                storeItem.ItemCategoryId.Should().Be(permanentItem.ItemCategoryId);
                storeItem.ManufacturerId.Should().Be(permanentItem.ManufacturerId);
                storeItem.IsTemporary.Should().BeFalse();
            }
        }
            private IStoreItem CreateItem(ItemCategoryId itemCategoryId, ManufacturerId manufacturerId)
            {
                var def = new StoreItemDefinition
                {
                    ItemCategoryId = itemCategoryId,
                    ManufacturerId = manufacturerId,
                    Availabilities = StoreItemAvailabilityFixture.CreateManyValid(1)
                };

                return(StoreItemFixture.CreateValid(def));
            }
            public IEnumerable <IStoreItemAvailability> CreateAvailabilitiesWithDuplicatedStoreIds()
            {
                var availabilities = StoreItemAvailabilityFixture.CreateManyValid().ToList();

                var def = new StoreItemAvailabilityDefinition
                {
                    StoreId = CommonFixture.ChooseRandom(availabilities).StoreId
                };

                availabilities.Add(StoreItemAvailabilityFixture.Create(def));

                return(availabilities);
            }
 public IEnumerable <IStoreItemAvailability> CreateValidAvailabilities()
 {
     return(StoreItemAvailabilityFixture.CreateManyValid());
 }