public void ComplexKeyHashingStrategy_1() { using (var store = new CacheStore(null)) { var strat = new ComplexKeyHashingStrategy(store); strat.Put("t1", "A", new businessObject { ID = 000, Name = "Adoyan", IsGood = true }); strat.Put("t1", "B", new businessObject { ID = 234, Name = "Borisenko", IsGood = false }); strat.Put("t1", "C", new businessObject { ID = 342, Name = "Carov", IsGood = true }); strat.Put("t2", "A", new businessObject { ID = 2000, Name = "2Adoyan", IsGood = true }); strat.Put("t2", "B", new businessObject { ID = 2234, Name = "2Borisenko", IsGood = false }); strat.Put("t2", "C", new businessObject { ID = 2342, Name = "2Carov", IsGood = true }); Assert.AreEqual("Adoyan", ((businessObject)strat.Get("t1", "A")).Name); Assert.AreEqual("Borisenko", ((businessObject)strat.Get("t1", "B")).Name); Assert.AreEqual("Carov", ((businessObject)strat.Get("t1", "C")).Name); Assert.AreEqual("2Adoyan", ((businessObject)strat.Get("t2", "A")).Name); Assert.AreEqual("2Borisenko", ((businessObject)strat.Get("t2", "B")).Name); Assert.AreEqual("2Carov", ((businessObject)strat.Get("t2", "C")).Name); } }
public void ComplexKeyHashingStrategy_3(int CNT, double k) { using (var store = new CacheStore(null)) { var strat = new ComplexKeyHashingStrategy(store); for (var i = 0; i < CNT; i++) { strat.Put("t1", "ThisIsAKeyLongerThanEight-" + i, new businessObject { ID = i, Name = "Gagarin-" + i, IsGood = true }); } var collision = 0; for (var i = 0; i < CNT; i++) { Assert.IsNull(strat.Get("t1", "ThisAKeyLongerThanEight-" + i)); Assert.IsNull(strat.Get("t1", "ThusIsAKeyLongerThanEight-" + i)); Assert.IsNull(strat.Get("t1", "ThisIsAKeyLongerEightThan-" + i)); var o = strat.Get("t1", "ThisIsAKeyLongerThanEight-" + i); if (o != null) { Assert.AreEqual(i, ((businessObject)strat.Get("t1", "ThisIsAKeyLongerThanEight-" + i)).ID); Assert.AreEqual(i, ((businessObject)strat.Get("t1", "ThisIsAKeyLongerThanEight-" + i)).ID); } else { collision++; } } Console.WriteLine("Did {0}, collision {1}", CNT, collision); Assert.IsTrue(collision < (int)(CNT * k)); } }
public void ComplexKeyHashingStrategy_2(int CNT, double k) { using (var store = new CacheStore(NOPApplication.Instance)) { var strat = new ComplexKeyHashingStrategy(store); for (var i = 0; i < CNT; i++) { strat.Put("t1", "Key-" + i, new businessObject { ID = i, Name = "Gagarin-" + i, IsGood = true }); } var collision = 0; for (var i = 0; i < CNT; i++) { Aver.IsNull(strat.Get("t1", "KeI-" + i)); Aver.IsNull(strat.Get("t1", "Ke y-" + i)); Aver.IsNull(strat.Get("t1", "Key " + i)); var o = strat.Get("t1", "Key-" + i); if (o != null) { Aver.AreEqual(i, ((businessObject)o).ID); } else { collision++; } } Console.WriteLine("Did {0}, collision {1}", CNT, collision); Aver.IsTrue(collision < (int)(CNT * k)); } }
private void cachePut(string entity, string key, object item) { m_Cache.Put(entity, key, item); }