public void ItemBlockItemMatch_ReturnsCorrectResult(FilterPredicateOperator testInputFilterPredicateOperator, int testInputBlockItemWidth, bool expectedResult)
        {
            //Arrange
            var testInputItem      = Mock.Of <IItem>(i => i.Width == 2);
            var testInputBlockItem = new WidthBlockItem(testInputFilterPredicateOperator, testInputBlockItemWidth);

            //Act
            var result = _testUtility.BlockItemMatcher.ItemBlockItemMatch(testInputBlockItem, testInputItem);

            //Assert
            Assert.AreEqual(expectedResult, result);
        }
        public void ItemBlockMatch_MultipleBlockItems_DoesNotMatch_ReturnsFalse()
        {
            //Arrange
            var testInputItem     = Mock.Of <IItem>(i => i.BaseType == "Base Type 1" && i.Height == 4 && i.Width == 2);
            var testInputBlock    = new ItemFilterBlock();
            var baseTypeBlockItem = new BaseTypeBlockItem();

            baseTypeBlockItem.Items.Add("Base Type d");
            var heightBlockItem = new HeightBlockItem(FilterPredicateOperator.Equal, 3);
            var widthBlockItem  = new WidthBlockItem(FilterPredicateOperator.Equal, 2);

            testInputBlock.BlockItems.Add(baseTypeBlockItem);
            testInputBlock.BlockItems.Add(heightBlockItem);
            testInputBlock.BlockItems.Add(widthBlockItem);

            //Act
            var result = _testUtility.BlockItemMatcher.ItemBlockMatch(testInputBlock, testInputItem);

            //Assert
            Assert.IsFalse(result);
        }
 private static bool WidthBlockItemMatch(WidthBlockItem widthBlockItem, IItem item)
 {
     return(NumericFilterPredicateBlockItemMatch(widthBlockItem, item.Width));
 }