示例#1
0
        public void TestIList()
        {
            IList list = new SetList <string>(StringComparer.Ordinal);

            Assert.AreEqual(0, list.Count);
            list.Add("a");
            Assert.AreEqual(1, list.Count);
            list.Add("B");
            Assert.AreEqual(2, list.Count);

            Assert.AreEqual("B", list[0]);
            Assert.AreEqual("a", list[1]);

            Assert.IsTrue(list.Contains("a"));
            Assert.IsFalse(list.Contains("A"));
            Assert.IsFalse(list.Contains("b"));
            Assert.IsTrue(list.Contains("B"));

            Assert.AreEqual(0, list.IndexOf("B"));
            Assert.AreEqual(1, list.IndexOf("a"));

            list = new SetList <string>((IEnumerable <string>)list, StringComparer.OrdinalIgnoreCase);
            Assert.AreEqual(2, list.Count);
            Assert.AreEqual("a", list[0]);
            Assert.AreEqual("B", list[1]);

            Assert.IsTrue(list.Contains("a"));
            Assert.IsTrue(list.Contains("A"));
            Assert.IsTrue(list.Contains("b"));
            Assert.IsTrue(list.Contains("B"));

            Assert.IsFalse(list.Contains(5));
            Assert.IsTrue(list.IndexOf(5) < 0);

            Assert.IsFalse(list.IsFixedSize);
            list.Remove("b");
            Assert.IsFalse(list.Contains("b"));
            Assert.IsFalse(list.Contains("B"));

            list = (IList)((ICloneable)list).Clone();
            Assert.AreEqual(typeof(SetList <string>), list.GetType());
            Assert.IsTrue(list.Contains("a"));
            Assert.IsFalse(list.Contains("b"));
            Assert.AreEqual(0, list.IndexOf("a"));
        }
        private SetList CreateSetList(
            bool addSets = true, bool addActs = true, bool isChildList = true)
        {
            AddData(addSets, addActs);
            var result = new SetList(isChildList)
            {
                Session = Session
            };

            if (isChildList)
            {
                ParentList = (result.CreateParentList() as EventList) !;
                ParentList.ChildListType = result.GetType();
                result.ParentList        = ParentList;
            }
            else
            {
                result.ChildListType = typeof(PieceList);
            }
            return(result);
        }