public void TestBagAdd() { Variant v = new Variant(Variant.EnumType.Bag); Assert.Throws<VariantException>(delegate { v.Add(new Variant()); }); Assert.Throws<VariantException>(delegate { v.Add(new DateTime(0), new Variant()); }); v.Add("key1", new Variant("value1")); v.Add("key2", new Variant(1.0)); v.Add("key1", new Variant("value2")); Assert.AreEqual(v.Count, 3); Assert.IsFalse(v.Empty); Assert.IsTrue(v.ContainsKey("key1")); Assert.IsTrue(v.ContainsKey("key2")); Assert.AreEqual(v["key1"].Type, Variant.EnumType.String); Assert.AreEqual(v["key1"].As<string>(), "value1"); Assert.AreEqual(v["key2"].Type, Variant.EnumType.Double); Assert.AreEqual(v["key2"].As<double>(), 1.0); v["key1"] = new Variant("other"); Assert.AreEqual(v["key1"].As<string>(), "other"); v.Remove("key1"); Assert.AreEqual(1, v.Count); v.Remove("key2"); Assert.AreEqual(v.Count, 0); Assert.IsTrue(v.Empty); }