public void ConcurrentCacheDictionary_Null() { var cd = new ConcurrentCacheDictionary <string, int>(EqualityComparer <string> .Default); Assert.AreEqual(0, cd.Count); var values = cd.Values; Assert.AreEqual(4, cd.GetOrAdd(key: null, x => (x ?? "null").Length)); Assert.AreEqual(1, cd.Count); Assert.AreEqual(1, values.Count()); Assert.IsTrue(values.Contains(4)); Assert.AreEqual(4, cd.GetOrAdd(key: null, x => (x ?? "null").Length)); Assert.AreEqual(1, cd.Count); Assert.AreEqual(1, values.Count()); Assert.IsTrue(values.Contains(4)); Assert.IsTrue(cd.Remove(key: null)); Assert.AreEqual(0, cd.Count); Assert.AreEqual(0, values.Count()); cd.Clear(); Assert.AreEqual(0, cd.Count); Assert.AreEqual(0, values.Count()); }
public void ConcurrentCacheDictionary_Enumerate() { var cd = new ConcurrentCacheDictionary <string, int>(EqualityComparer <string> .Default); cd.GetOrAdd("foo", s => s == null ? 0 : s.Length); cd.GetOrAdd(key: null, s => s == null ? 0 : s.Length); var res = cd.ToArray(); Assert.AreEqual(2, res.Length); Assert.IsTrue(res.Any(x => x.Key == null && x.Value == 0)); Assert.IsTrue(res.Any(x => x.Key == "foo" && x.Value == 3)); Assert.IsNotNull(((IEnumerable)cd).GetEnumerator()); }
public void ConcurrentCacheDictionary_Simple() { var cd = new ConcurrentCacheDictionary <int, int>(EqualityComparer <int> .Default); Assert.AreEqual(0, cd.Count); var values = cd.Values; Assert.AreEqual(42, cd.GetOrAdd(21, x => x * 2)); Assert.AreEqual(1, cd.Count); Assert.AreEqual(1, values.Count()); Assert.IsTrue(values.Contains(42)); Assert.AreEqual(42, cd.GetOrAdd(21, x => x * 2)); Assert.AreEqual(1, cd.Count); Assert.AreEqual(1, values.Count()); Assert.IsTrue(values.Contains(42)); Assert.AreEqual(44, cd.GetOrAdd(22, x => x * 2)); Assert.AreEqual(2, cd.Count); Assert.AreEqual(2, values.Count()); Assert.IsTrue(values.Contains(42) && values.Contains(44)); Assert.IsTrue(cd.Remove(21)); Assert.AreEqual(1, cd.Count); Assert.AreEqual(1, values.Count()); Assert.IsTrue(values.Contains(44)); Assert.IsFalse(cd.Remove(21)); Assert.AreEqual(1, cd.Count); Assert.AreEqual(1, values.Count()); Assert.IsTrue(values.Contains(44)); Assert.IsFalse(cd.Remove(-1)); Assert.AreEqual(1, cd.Count); Assert.AreEqual(1, values.Count()); Assert.IsTrue(values.Contains(44)); cd.Clear(); Assert.AreEqual(0, cd.Count); Assert.AreEqual(0, values.Count()); }