public void GetValues () { var mc = new PokerMemoryCache ("MyCache"); AssertExtensions.Throws<ArgumentNullException> (() => { mc.GetValues (null); }, "#A1-1"); AssertExtensions.Throws<NotSupportedException> (() => { mc.GetValues (new string[] {}, "region"); }, "#A1-2"); AssertExtensions.Throws<ArgumentException> (() => { mc.GetValues (new string [] { "key", null }); }, "#A1-3"); IDictionary<string, object> value = mc.GetValues (new string[] {}); Assert.IsNull (value, "#A2"); mc.Set ("key1", "value1", null); mc.Set ("key2", "value2", null); mc.Set ("key3", "value3", null); Assert.IsTrue (mc.Contains ("key1"), "#A3-1"); Assert.IsTrue (mc.Contains ("key2"), "#A3-2"); Assert.IsTrue (mc.Contains ("key3"), "#A3-2"); value = mc.GetValues (new string [] { "key1", "key3" }); Assert.IsNotNull (value, "#A4-1"); Assert.AreEqual (2, value.Count, "#A4-2"); Assert.AreEqual ("value1", value ["key1"], "#A4-3"); Assert.AreEqual ("value3", value ["key3"], "#A4-4"); Assert.AreEqual (typeof (Dictionary<string, object>), value.GetType (), "#A4-5"); // LAMESPEC: MSDN says the number of items in the returned dictionary should be the same as in the // 'keys' collection - this is not the case. The returned dictionary contains only entries for keys // that exist in the cache. value = mc.GetValues (new string [] { "key1", "key3", "nosuchkey" }); Assert.IsNotNull (value, "#A5-1"); Assert.AreEqual (2, value.Count, "#A5-2"); Assert.AreEqual ("value1", value ["key1"], "#A5-3"); Assert.AreEqual ("value3", value ["key3"], "#A5-4"); Assert.IsFalse (value.ContainsKey ("Key1"), "#A5-5"); }