@@ -679,6 +679,120 @@ public void ShouldCheckParentOfMetaFile()
679
679
testTreeListener . Received ( 2 ) . AddCheckedNode ( Arg . Any < TestTreeNode > ( ) ) ;
680
680
}
681
681
682
+ [ Test ]
683
+ public void ShouldRippleUncheckCorrectly ( )
684
+ {
685
+ var testTree = new TestTree ( true ) ;
686
+ var testTreeListener = testTree . TestTreeListener ;
687
+
688
+ testTreeListener . GetCollapsedFolders ( ) . Returns ( new string [ 0 ] ) ;
689
+ testTreeListener . SelectedNode . Returns ( ( TestTreeNode ) null ) ;
690
+ testTreeListener . GetCheckedFiles ( ) . Returns ( new string [ 0 ] ) ;
691
+ testTreeListener . Nodes . Returns ( new List < TestTreeNode > ( ) ) ;
692
+ testTreeListener . PathSeparator . Returns ( @"\" ) ;
693
+ testTreeListener . DisplayRootNode . Returns ( true ) ;
694
+ testTreeListener . IsSelectable . Returns ( false ) ;
695
+ testTreeListener . Title . Returns ( "Test Tree" ) ;
696
+ testTreeListener . PromoteMetaFiles . Returns ( true ) ;
697
+
698
+ var testTreeData = new [ ] {
699
+ new TestTreeData {
700
+ Path = "Root\\ Parent\\ A.txt"
701
+ } ,
702
+ new TestTreeData {
703
+ Path = "Root\\ Parent\\ B.txt"
704
+ } ,
705
+ new TestTreeData {
706
+ Path = "Root\\ Parent\\ C.txt"
707
+ }
708
+ } ;
709
+
710
+ testTree . Load ( testTreeData ) ;
711
+
712
+ testTree . CreatedTreeNodes . ShouldAllBeEquivalentTo ( new [ ] {
713
+ new TestTreeNode {
714
+ Path = "Test Tree" ,
715
+ Label = "Test Tree" ,
716
+ IsFolder = true
717
+ } ,
718
+ new TestTreeNode {
719
+ Path = "Root" ,
720
+ Label = "Root" ,
721
+ Level = 1 ,
722
+ IsFolder = true
723
+ } ,
724
+ new TestTreeNode {
725
+ Path = "Root\\ Parent" ,
726
+ Label = "Parent" ,
727
+ Level = 2 ,
728
+ IsFolder = true
729
+ } ,
730
+ new TestTreeNode {
731
+ Path = "Root\\ Parent\\ A.txt" ,
732
+ Label = "A.txt" ,
733
+ Level = 3 ,
734
+ TreeData = testTreeData [ 0 ] ,
735
+ } ,
736
+ new TestTreeNode {
737
+ Path = "Root\\ Parent\\ B.txt" ,
738
+ Label = "B.txt" ,
739
+ Level = 3 ,
740
+ TreeData = testTreeData [ 1 ] ,
741
+ } ,
742
+ new TestTreeNode {
743
+ Path = "Root\\ Parent\\ C.txt" ,
744
+ Label = "C.txt" ,
745
+ Level = 3 ,
746
+ TreeData = testTreeData [ 2 ] ,
747
+ }
748
+ } ) ;
749
+
750
+ var rootNode = testTree . CreatedTreeNodes [ 1 ] ;
751
+ var parentNode = testTree . CreatedTreeNodes [ 2 ] ;
752
+ var aNode = testTree . CreatedTreeNodes [ 3 ] ;
753
+ var bNode = testTree . CreatedTreeNodes [ 4 ] ;
754
+ var cNode = testTree . CreatedTreeNodes [ 5 ] ;
755
+
756
+ Assert . AreEqual ( CheckState . Empty , rootNode . CheckState ) ;
757
+ Assert . AreEqual ( CheckState . Empty , parentNode . CheckState ) ;
758
+ Assert . AreEqual ( CheckState . Empty , aNode . CheckState ) ;
759
+ Assert . AreEqual ( CheckState . Empty , bNode . CheckState ) ;
760
+ Assert . AreEqual ( CheckState . Empty , cNode . CheckState ) ;
761
+
762
+ testTree . ToggleNodeChecked ( 1 , rootNode ) ;
763
+
764
+ Assert . AreEqual ( CheckState . Checked , rootNode . CheckState ) ;
765
+ Assert . AreEqual ( CheckState . Checked , parentNode . CheckState ) ;
766
+ Assert . AreEqual ( CheckState . Checked , aNode . CheckState ) ;
767
+ Assert . AreEqual ( CheckState . Checked , bNode . CheckState ) ;
768
+ Assert . AreEqual ( CheckState . Checked , cNode . CheckState ) ;
769
+
770
+ testTreeListener . Received ( 3 ) . AddCheckedNode ( Arg . Any < TestTreeNode > ( ) ) ;
771
+ testTreeListener . ClearReceivedCalls ( ) ;
772
+
773
+ testTree . ToggleNodeChecked ( 5 , cNode ) ;
774
+
775
+ Assert . AreEqual ( CheckState . Mixed , rootNode . CheckState ) ;
776
+ Assert . AreEqual ( CheckState . Mixed , parentNode . CheckState ) ;
777
+ Assert . AreEqual ( CheckState . Checked , aNode . CheckState ) ;
778
+ Assert . AreEqual ( CheckState . Checked , bNode . CheckState ) ;
779
+ Assert . AreEqual ( CheckState . Empty , cNode . CheckState ) ;
780
+
781
+ testTreeListener . Received ( 1 ) . RemoveCheckedNode ( Arg . Any < TestTreeNode > ( ) ) ;
782
+ testTreeListener . ClearReceivedCalls ( ) ;
783
+
784
+ testTree . ToggleNodeChecked ( 5 , cNode ) ;
785
+
786
+ Assert . AreEqual ( CheckState . Checked , rootNode . CheckState ) ;
787
+ Assert . AreEqual ( CheckState . Checked , parentNode . CheckState ) ;
788
+ Assert . AreEqual ( CheckState . Checked , aNode . CheckState ) ;
789
+ Assert . AreEqual ( CheckState . Checked , bNode . CheckState ) ;
790
+ Assert . AreEqual ( CheckState . Checked , cNode . CheckState ) ;
791
+
792
+ testTreeListener . Received ( 1 ) . AddCheckedNode ( Arg . Any < TestTreeNode > ( ) ) ;
793
+ testTreeListener . ClearReceivedCalls ( ) ;
794
+ }
795
+
682
796
[ Test ]
683
797
public void ShouldPopulateTreeWithSingleEntryWithNonPromotedMetaInPath ( )
684
798
{
0 commit comments