예제 #1
0
        public void Duplicate()
        {
            TreeModel <string> tm = new TreeModel <string>("",
                                                           new List <TreeModel <string> >()
            {
                new TreeModel <string>("section 1",
                                       new List <TreeModel <string> >()
                {
                    new TreeModel <string>("sec1item1"),
                    new TreeModel <string>("sec1item2")
                }),
                new TreeModel <string>("section 2"),
            });

            TreeModel <string>         dupe     = tm.Duplicate();
            List <TreeModel <string> > flatTm   = tm.Flatten();
            List <TreeModel <string> > flatDupe = dupe.Flatten();

            Assert.IsFalse(flatTm.Any(t_Tm =>
                                      flatDupe.Any(t_Dupe => Object.ReferenceEquals(t_Tm, t_Dupe))));

            Assert.IsTrue(tm.Equals(dupe));
        }