public virtual void TestPutGetRemove() { Assert.IsTrue(mm.Put("key1", "value1")); Assert.IsTrue(mm.Put("key1", "value2")); Assert.IsTrue(mm.Put("key1", "value3")); Assert.IsTrue(mm.Put("key2", "value4")); Assert.IsTrue(mm.Put("key2", "value5")); Assert.AreEqual(3, mm.ValueCount("key1")); Assert.AreEqual(2, mm.ValueCount("key2")); Assert.AreEqual(5, mm.Size()); var coll = mm.Get("key1"); Assert.AreEqual(3, coll.Count); coll = mm.Remove("key2"); Assert.AreEqual(2, coll.Count); Assert.AreEqual(0, mm.ValueCount("key2")); Assert.AreEqual(0, mm.Get("key2").Count); Assert.IsFalse(mm.Remove("key1", "value4")); Assert.AreEqual(3, mm.Size()); Assert.IsTrue(mm.Remove("key1", "value2")); Assert.AreEqual(2, mm.Size()); Assert.IsTrue(mm.Remove("key1", "value1")); Assert.AreEqual(1, mm.Size()); var enumerator = mm.Get("key1").GetEnumerator(); enumerator.MoveNext(); Assert.AreEqual("value3", enumerator.Current); }