public void RemoveAllObservers()
 {
     foreach (var kv in Cache.RemoveAllObservers())
     {
         Unsubscribe(kv.Key, kv.Value.Count);
     }
 }
        public void TestRemoveAllObservers()
        {
            var data = new ConcurrentObservableDictionary <string, double>();
            var obs  = new SimpleObserver();

            data.AddPartialObserver(obs, "test", "test2", "test3");

            data.AddOrUpdate("test2", 2.0);
            Assert.AreEqual(2.0, obs.LastValue, "Error in test2 key");

            Assert.IsTrue(data.RemoveAllObservers().All(
                              pair => pair.Value.Count == 1 && pair.Value.Contains(obs)), "remove all");

            data.AddOrUpdate("test2", 20.0);
            Assert.AreEqual(2.0, obs.LastValue, "Error in test2 key after remove obs");
        }