Exemple #1
0
        public void TestElementsEnumerator()
        {
            SimpleElement root       = new SimpleElement();
            IEnumerator   child1Enum = root.GetElements("child1");
            IXmlElement   el1        = null;

            Exception e = null;

            try
            {
                el1 = (IXmlElement)child1Enum.Current;  //without MoveNext()
            }
            catch (Exception ex)
            {
                e = ex;
            }
            Assert.IsNull(el1);
            Assert.IsNotNull(e);
            Assert.IsInstanceOf(typeof(InvalidOperationException), e);

            el1 = root.AddElement("child1");
            root.AddElement("child2");
            root.AddElement("child3");
            IXmlElement el2 = root.AddElement("child1");

            root.AddElement("child2");

            child1Enum = root.GetElements("child1");

            Assert.IsTrue(child1Enum.MoveNext());
            Assert.AreEqual(child1Enum.Current, el1);
            Assert.IsTrue(child1Enum.MoveNext());
            Assert.IsTrue(child1Enum.MoveNext()); //will do nothing
            Assert.AreEqual(child1Enum.Current, el2);
            Assert.IsFalse(child1Enum.MoveNext());
            child1Enum.Reset();
            Assert.IsTrue(child1Enum.MoveNext());
        }