Ejemplo n.º 1
0
        public void TestTSEnumeration()
        {
            Variant v = new Variant(Variant.EnumType.TimeSeries);

            v.Add(new DateTime(2010, 1, 2, 3, 4, 5, 6), new Variant("value1"));
            v.Add(new DateTime(2010, 1, 3, 3, 4, 5, 6), new Variant("value2"));

            IEnumerator<VariantItem> en = v.GetEnumerator();

            en.Reset();
            Assert.IsTrue(en.MoveNext());
            Assert.Throws<VariantException>(delegate { string k = en.Current.Key; });
            Assert.AreEqual("value1", en.Current.Value.As<string>());
            Assert.AreEqual(new DateTime(2010, 1, 2, 3, 4, 5, 6), en.Current.Time);
            Assert.IsTrue(en.MoveNext());
            Assert.Throws<VariantException>(delegate { string k = en.Current.Key; });
            Assert.AreEqual("value2", en.Current.Value.As<string>());
            Assert.AreEqual(new DateTime(2010, 1, 3, 3, 4, 5, 6), en.Current.Time);
            Assert.IsFalse(en.MoveNext());
        }
Ejemplo n.º 2
0
        public void TestAny()
        {
            Variant v1 = new Variant(Variant.EnumType.Any, "1.0");
            Assert.AreEqual(v1.Type, Variant.EnumType.Any);
            Assert.IsTrue(v1.Is(Variant.EnumType.Any));

            Assert.AreEqual(1.0, v1.As<double>());

            Variant v2 = new Variant(v1);
            Assert.IsTrue(v1.Equals(v2));

            // Enumerating an Any variant with content should throw an exception
            Assert.Throws<VariantException>(delegate { v1.GetEnumerator(); });

            // We should be able to enumerate an Any variant with no content as this is a common occurance when reading untyped XML
            Variant v3 = new Variant(Variant.EnumType.Any);
            IEnumerator<VariantItem> enumerator = v3.GetEnumerator();
            Assert.IsFalse(enumerator.MoveNext());
            Assert.Throws<VariantException>(delegate { VariantItem item = enumerator.Current; });
        }
Ejemplo n.º 3
0
        public void TestBagEnumeration()
        {
            Variant v = new Variant(Variant.EnumType.Bag);

            v.Add("key2", new Variant("value2"));
            v.Add("key1", new Variant("value1"));
            v.Add("key1", new Variant("value1"));
            v.Add("key2", new Variant("value2"));

            IEnumerator<VariantItem> en = v.GetEnumerator();

            en.Reset();
            Assert.IsTrue(en.MoveNext());
            Assert.AreEqual("key2", en.Current.Key);
            Assert.AreEqual("value2", en.Current.Value.As<string>());
            Assert.IsTrue(en.MoveNext());
            Assert.AreEqual("key1", en.Current.Key);
            Assert.AreEqual("value1", en.Current.Value.As<string>());
            Assert.IsTrue(en.MoveNext());
            Assert.AreEqual("key1", en.Current.Key);
            Assert.AreEqual("value1", en.Current.Value.As<string>());
            Assert.IsTrue(en.MoveNext());
            Assert.AreEqual("key2", en.Current.Key);
            Assert.AreEqual("value2", en.Current.Value.As<string>());
            Assert.IsFalse(en.MoveNext());
        }
Ejemplo n.º 4
0
        public void TestListEnumeration()
        {
            Variant v = new Variant(Variant.EnumType.List);

            v.Add(new Variant("value1"));
            v.Add(new Variant(2.0));

            IEnumerator<VariantItem> en = v.GetEnumerator();

            en.Reset();
            Assert.IsTrue(en.MoveNext());
            Assert.Throws<VariantException>(delegate { string k = en.Current.Key; });
            Assert.Throws<VariantException>(delegate { DateTime t = en.Current.Time; });
            Assert.AreEqual("value1", en.Current.Value.As<string>());
            Assert.IsTrue(en.MoveNext());
            Assert.Throws<VariantException>(delegate { string k = en.Current.Key; });
            Assert.Throws<VariantException>(delegate { DateTime t = en.Current.Time; });
            Assert.AreEqual(2.0, en.Current.Value.As<double>());
            Assert.IsFalse(en.MoveNext());
        }