示例#1
0
        public void InvertedFilterNode_Equality_IsNotAffectedByGenericType()
        {
            IFilterNode <CharFilter> invertedNode1 = new InvertedFilterNode <CharFilter>(new CharFilterSubClass('A'));

            // Note combination2 is constructed using a more specific generic type than combination1.
            IFilterNode <CharFilter> invertedNode2 = new InvertedFilterNode <CharFilterSubClass>(new CharFilterSubClass('A'));

            Assert.Equal(invertedNode1, invertedNode2);
            Assert.Equal(invertedNode2, invertedNode1);
        }
        public void LeafFilterNode_ShouldPrecedeInvertedFilterNode()
        {
            var leafFilterNode     = new CharFilter('A').ToLeafFilterNode();
            var invertedFilterNode = new InvertedFilterNode <CharFilter>(new CharFilter('B'));

            var sut    = FilterNodeComparer <CharFilter> .Default;
            var result = sut.Compare(leafFilterNode, invertedFilterNode);

            Assert.Equal(-1, result);

            var oppositeResult = sut.Compare(invertedFilterNode, leafFilterNode);

            Assert.Equal(1, oppositeResult);
        }
        public void InvertedFilterNode_ShouldPrecedeCombinationFilterNode()
        {
            var invertedFilterNode    = new InvertedFilterNode <CharFilter>(new CharFilter('A'));
            var combinationFilterNode = new CombinationFilterNode <CharFilter>(new[] { new CharFilter('B'), new CharFilter('C') });

            var sut    = FilterNodeComparer <CharFilter> .Default;
            var result = sut.Compare(invertedFilterNode, combinationFilterNode);

            Assert.Equal(-1, result);

            var oppositeResult = sut.Compare(combinationFilterNode, invertedFilterNode);

            Assert.Equal(1, oppositeResult);
        }