/// <summary> /// Determine a hash value for the <b>ExtractorEventTransformer</b> /// object according to the general <b>Object.GetHashCode</b> /// contract. /// </summary> /// <returns> /// An integer hash value for this object. /// </returns> public override int GetHashCode() { IValueExtractor extractorOld = m_extractorOld; IValueExtractor extractorNew = m_extractorNew; return((extractorOld == null ? 0 : extractorOld.GetHashCode()) + (extractorNew == null ? 0 : extractorNew.GetHashCode())); }
public void TestIdentityExtractor() { IValueExtractor extractor = IdentityExtractor.Instance; IValueExtractor extractor1 = IdentityExtractor.Instance; Assert.IsNotNull(extractor); Assert.AreEqual(extractor, extractor1); Assert.AreEqual(extractor.ToString(), extractor1.ToString()); Assert.AreEqual(extractor.GetHashCode(), extractor1.GetHashCode()); object o = new DictionaryEntry("key", "value"); object o1 = extractor.Extract(o); Assert.AreEqual(o, o1); IdentityExtractor ie = extractor as IdentityExtractor; Assert.AreEqual(ie.Compare("ana", "cikic"), -1); TestQueryCacheEntry entry1 = new TestQueryCacheEntry("1", 1); TestQueryCacheEntry entry2 = new TestQueryCacheEntry("2", 2); Assert.AreEqual(ie.CompareEntries(entry2, entry1), 1); //testing on remote cache INamedCache cache = CacheFactory.GetCache(CacheName); cache.Clear(); Hashtable ht = new Hashtable(); ht.Add("identityExtractorKey1", 435); ht.Add("identityExtractorKey2", 253); ht.Add("identityExtractorKey3", 3); ht.Add("identityExtractorKey4", null); ht.Add("identityExtractorKey5", -3); cache.InsertAll(ht); IFilter filter = new EqualsFilter(extractor, 253); ICollection keys = cache.GetKeys(filter); Assert.Contains("identityExtractorKey2", (IList)keys); Assert.AreEqual(keys.Count, 1); CacheFactory.Shutdown(); }