public void When_Execute_Getting_Key_With_Lock_And_Expiry_Second_Lock_Attempt_Does_Not_Change_Expiry() { var kv = KeyValueUtils.GenerateKeyAndValue("getl"); var storeResult = TestUtils.Store(Client, StoreMode.Set, kv.Item1, kv.Item2); TestUtils.StoreAssertPass(storeResult); var getlResult = Client.ExecuteGetWithLock(kv.Item1, TimeSpan.FromSeconds(6)); Assert.That(getlResult.Value, Is.EqualTo(kv.Item2)); var otherGetlResult = Client.ExecuteGetWithLock(kv.Item1, TimeSpan.FromSeconds(2)); Assert.That(otherGetlResult.Cas, Is.Not.EqualTo(getlResult.Cas)); Assert.That(otherGetlResult.StatusCode, Is.EqualTo((int)CouchbaseStatusCodeEnums.LockError)); Thread.Sleep(3000); storeResult = Client.ExecuteStore(StoreMode.Set, kv.Item1, KeyValueUtils.GenerateValue()); Assert.That(storeResult.Success, Is.False); Assert.That(storeResult.StatusCode.Value, Is.EqualTo((int)StatusCodeEnums.DataExistsForKey)); Thread.Sleep(4000); var newValue = KeyValueUtils.GenerateValue(); storeResult = Client.ExecuteStore(StoreMode.Set, kv.Item1, newValue); Assert.That(storeResult.Success, Is.True, "Failed to update item"); var getResult = Client.ExecuteGet(kv.Item1); TestUtils.GetAssertPass(getResult, newValue); }
public void When_Getting_Key_With_Lock_And_Expiry_Set_Fails_Until_Lock_Expires() { var kv = KeyValueUtils.GenerateKeyAndValue("getl"); var storeResult = TestUtils.Store(Client, StoreMode.Set, kv.Item1, kv.Item2); TestUtils.StoreAssertPass(storeResult); var casResult = Client.GetWithLock(kv.Item1, TimeSpan.FromSeconds(2)); Assert.That(casResult.Result, Is.EqualTo(kv.Item2)); storeResult = Client.ExecuteStore(StoreMode.Set, kv.Item1, KeyValueUtils.GenerateValue()); Assert.That(storeResult.Success, Is.False); Thread.Sleep(3000); var newValue = KeyValueUtils.GenerateValue(); storeResult = Client.ExecuteStore(StoreMode.Set, kv.Item1, newValue); Assert.That(storeResult.Success, Is.True); var getResult = Client.ExecuteGet(kv.Item1); TestUtils.GetAssertPass(getResult, newValue); }
public void When_Execute_Getting_Key_With_Lock_Set_Fails_While_Locked() { var kv = KeyValueUtils.GenerateKeyAndValue("getl"); var storeResult = TestUtils.Store(Client, StoreMode.Set, kv.Item1, kv.Item2); TestUtils.StoreAssertPass(storeResult); var getlResult = Client.ExecuteGetWithLock(kv.Item1); Assert.That(getlResult.Value, Is.EqualTo(kv.Item2)); storeResult = Client.ExecuteStore(StoreMode.Set, kv.Item1, KeyValueUtils.GenerateValue()); Assert.That(storeResult.Success, Is.False); Assert.That(storeResult.StatusCode.Value, Is.EqualTo((int)StatusCodeEnums.DataExistsForKey)); }
public void When_Getting_Key_With_Lock_And_Expiry_Set_Succeeds_With_Valid_Cas() { var kv = KeyValueUtils.GenerateKeyAndValue("getl"); var storeResult = TestUtils.Store(Client, StoreMode.Set, kv.Item1, kv.Item2); TestUtils.StoreAssertPass(storeResult); var casResult = Client.GetWithLock(kv.Item1, TimeSpan.FromSeconds(15)); Assert.That(casResult.Result, Is.EqualTo(kv.Item2)); storeResult = Client.ExecuteStore(StoreMode.Set, kv.Item1, KeyValueUtils.GenerateValue()); Assert.That(storeResult.Success, Is.False); storeResult = Client.ExecuteCas(StoreMode.Set, kv.Item1, KeyValueUtils.GenerateValue(), casResult.Cas); Assert.That(storeResult.Success, Is.True); }
public void When_Generic_Execute_Getting_Key_With_Lock_And_Expiry_Set_Succeeds_With_Valid_Cas() { var kv = KeyValueUtils.GenerateKeyAndValue("getl"); var storeResult = Store(StoreMode.Set, kv.Item1, kv.Item2); StoreAssertPass(storeResult); var getlResult = _Client.ExecuteGetWithLock <string>(kv.Item1, TimeSpan.FromSeconds(15)); Assert.That(getlResult.Value, Is.EqualTo(kv.Item2)); storeResult = _Client.ExecuteStore(StoreMode.Set, kv.Item1, KeyValueUtils.GenerateValue()); Assert.That(storeResult.Success, Is.False); storeResult = _Client.ExecuteCas(StoreMode.Set, kv.Item1, KeyValueUtils.GenerateValue(), getlResult.Cas); Assert.That(storeResult.Success, Is.True); }