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); }