/// <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()));
        }
コード例 #2
0
        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();
        }