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()); }
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); }