public void ClearsSource() { var dictionary = new Dictionary <int, string>() { { 1, "one" }, { 2, "two" }, { 3, "three" } }; var forwarderDictionary = new DictionaryAdapter <int, string>( dictionary.TryGetValue, () => dictionary.Keys, (key, value) => dictionary[key] = value, dictionary.Remove); forwarderDictionary.Clear(); Assert.Empty(dictionary); }