public void TestNameHashing() { var key = new PostgresAdvisoryLockKey(new string('漢', 2 * PostgresAdvisoryLockKey.MaxAsciiLength), allowHashing: true); Assert.IsTrue(key.HasSingleKey); Assert.AreEqual(-5707277204051710361, key.Key); AssertEquality(key, new PostgresAdvisoryLockKey(key.ToString())); }
public void TestInt32PairConstruction() { var key = new PostgresAdvisoryLockKey(3, -1); Assert.IsFalse(key.HasSingleKey); Assert.AreEqual((3, -1), key.Keys); Assert.AreEqual("00000003,ffffffff", key.ToString()); AssertEquality(key, new PostgresAdvisoryLockKey(key.ToString())); }
public void TestInt64Construction() { var key = new PostgresAdvisoryLockKey(1); Assert.IsTrue(key.HasSingleKey); Assert.AreEqual(1L, key.Key); Assert.AreEqual("0000000000000001", key.ToString()); AssertEquality(key, new PostgresAdvisoryLockKey(key.ToString())); }
private static PostgresAdvisoryLockKey AssertRoundTrips(string name) { var key1 = new PostgresAdvisoryLockKey(name); var key2 = new PostgresAdvisoryLockKey(key1.ToString()); var key3 = new PostgresAdvisoryLockKey(name, allowHashing: true); AssertEquality(key1, key2); AssertEquality(key1, key3); Assert.AreEqual(key1.ToString(), key2.ToString()); Assert.AreEqual(key1.ToString(), key3.ToString()); return(key1); }
private static void AssertEquality(PostgresAdvisoryLockKey a, PostgresAdvisoryLockKey b) { Assert.AreEqual(a, b); Assert.IsTrue(a == b); Assert.IsFalse(a != b); Assert.AreEqual(a.GetHashCode(), b.GetHashCode()); if (a.HasSingleKey) { Assert.AreEqual(a.Key, b.Key); } else { Assert.AreEqual(a.Keys, b.Keys); } }
public async Task TestInt64AndInt32PairKeyNamespacesAreDifferent() { var connectionString = TestingPostgresDb.ConnectionString; var key1 = new PostgresAdvisoryLockKey(0); var key2 = new PostgresAdvisoryLockKey(0, 0); var @lock1 = new PostgresDistributedLock(key1, connectionString); var @lock2 = new PostgresDistributedLock(key2, connectionString); using var handle1 = await lock1.TryAcquireAsync(); Assert.IsNotNull(handle1); using var handle2 = await lock2.TryAcquireAsync(); Assert.IsNotNull(handle2); }