public void Handle_should_update_default_size()
        {
            var widget = new Product {
                Name = "widget"
            };
            var sizes = new[]
            {
                new Size {
                    Product = widget, Name = "-", IsActive = false, IsInStock = false
                },
            };

            sizeRepository.GetAllDelegate = () => sizes.AsQueryable();

            var @event = new StockItemInStockChanged("-", "widget", true);

            handler.Handle(@event);

            sizes[0].IsInStock.ShouldBeTrue();
        }
        public void Handle_should_update_correct_size()
        {
            var widget = new Product {
                Name = "widget"
            };
            var gadget = new Product {
                Name = "gadget"
            };

            var sizes = new[]
            {
                new Size {
                    Product = widget, Name = "Small", IsActive = false, IsInStock = false
                },
                new Size {
                    Product = widget, Name = "Medium", IsActive = true, IsInStock = false
                },
                new Size {
                    Product = widget, Name = "Small", IsActive = true, IsInStock = false
                },                                                                               // should update this one
                new Size {
                    Product = gadget, Name = "Small", IsActive = true, IsInStock = false
                },
            };

            sizeRepository.GetAllDelegate = () => sizes.AsQueryable();

            var @event = new StockItemInStockChanged("Small", "widget", true);

            handler.Handle(@event);

            sizes[2].IsInStock.ShouldBeTrue();

            sizes[0].IsInStock.ShouldBeFalse();
            sizes[1].IsInStock.ShouldBeFalse();
            sizes[3].IsInStock.ShouldBeFalse();
        }