Example #1
0
        public void TestEquality()
        {
            // Default.
            var key = new AffinityKey();

            Assert.IsNull(key.Key);
            Assert.IsNull(key.Affinity);
            Assert.AreEqual(0, key.GetHashCode());
            Assert.AreEqual(new AffinityKey(), key);

            // Ctor 1.
            const string myKey = "myKey";

            key = new AffinityKey(myKey);

            Assert.AreEqual(myKey, key.Key);
            Assert.AreEqual(myKey, key.Affinity);
            Assert.AreNotEqual(0, key.GetHashCode());

            // Ctor 2.
            var ver1 = new AffinityKey(long.MaxValue, int.MaxValue);
            var ver2 = new AffinityKey(long.MaxValue, int.MaxValue);

            Assert.AreEqual(ver1, ver2);
            Assert.IsTrue(ver1 == ver2);
            Assert.IsFalse(ver1 != ver2);

            Assert.AreNotEqual(key, ver1);
            Assert.IsTrue(key != ver1);
            Assert.IsFalse(key == ver1);

            // ToString.
            Assert.AreEqual("AffinityKey [Key=1, Affinity=2]", new AffinityKey(1, 2).ToString());
        }
Example #2
0
        public void TestAffinityKeyWithQueryEntity()
        {
            var cacheCfg = new CacheConfiguration(TestUtils.TestName)
            {
                QueryEntities = new List <QueryEntity>
                {
                    new QueryEntity(typeof(AffinityKey), typeof(QueryEntityValue))
                }
            };

            var ignite = Ignition.GetIgnite("grid-0");
            var cache  = ignite.GetOrCreateCache <AffinityKey, QueryEntityValue>(cacheCfg);
            var aff    = ignite.GetAffinity(cache.Name);

            var ignite2 = Ignition.GetIgnite("grid-1");
            var cache2  = ignite2.GetOrCreateCache <AffinityKey, QueryEntityValue>(cacheCfg);
            var aff2    = ignite2.GetAffinity(cache2.Name);

            // Check mapping.
            for (var i = 0; i < 100; i++)
            {
                Assert.AreEqual(aff.GetPartition(i), aff.GetPartition(new AffinityKey("foo" + i, i)));
                Assert.AreEqual(aff2.GetPartition(i), aff2.GetPartition(new AffinityKey("bar" + i, i)));
                Assert.AreEqual(aff.GetPartition(i), aff2.GetPartition(i));
            }

            // Check put/get.
            var key      = new AffinityKey("x", 123);
            var expected = new QueryEntityValue {
                Name = "y", AffKey = 321
            };

            cache[key] = expected;

            var val = cache2[key];

            Assert.AreEqual(expected.Name, val.Name);
            Assert.AreEqual(expected.AffKey, val.AffKey);
        }