public void SetAndSetNewThenGet() { var storageBuilder = new StoreRequestBuilder("set", "key", "value"); Dispatch(storageBuilder.ToAsciiRequest()); storageBuilder.Data("new value"); Dispatch(storageBuilder.ToAsciiRequest()); var getBuilder = new GetRequestBuilder("get", "key"); var response = Dispatch(getBuilder.ToAsciiRequest()); Assert.AreEqual("VALUE key 0 9\r\nnew value\r\nEND\r\n", response.ToAsciiString()); }
public void SetExpiryThenGet() { var storageBuilder = new StoreRequestBuilder("set", "key", "value"); storageBuilder.WithExpiry(100); Dispatch(storageBuilder.ToAsciiRequest()); var getBuilder = new GetRequestBuilder("get", "key"); var response = Dispatch(getBuilder.ToAsciiRequest()); Assert.AreEqual("VALUE key 0 5\r\nvalue\r\nEND\r\n", response.ToAsciiString()); }
public void TouchOk() { var storageBuilder = new StoreRequestBuilder("set", "key", "value"); storageBuilder.WithExpiry(100); Dispatch(storageBuilder.ToAsciiRequest()); var touchBuilder = new TouchRequestBuilder("key"); touchBuilder.WithExpiry(1); var response = Dispatch(touchBuilder.ToAsciiRequest()); Assert.AreEqual("OK\r\n", response.ToAsciiString()); }
public void FlagsMaxValueSetAndGet() { var storageBuilder = new StoreRequestBuilder("set", "key", "value"); storageBuilder.WithFlags(ushort.MaxValue); Dispatch(storageBuilder.ToAsciiRequest()); var getBuilder = new GetRequestBuilder("get", "key"); var response = Dispatch(getBuilder.ToAsciiRequest()); Assert.AreEqual("VALUE key " + ushort.MaxValue.ToString() + " 5\r\nvalue\r\nEND\r\n", response.ToAsciiString()); }
public void SetExpiryThenGetGone() { var storageBuilder = new StoreRequestBuilder("set", "key", "value"); storageBuilder.WithExpiry(1); Dispatch(storageBuilder.ToAsciiRequest()); _testScheduler.AdvanceBy(TimeSpan.FromSeconds(2).Ticks); var getBuilder = new GetRequestBuilder("get", "key"); var response = Dispatch(getBuilder.ToAsciiRequest()); Assert.AreEqual("END\r\n", response.ToAsciiString()); }
public void StoreEvictOverCapacity() { var setBuilder1 = new StoreRequestBuilder("set", "key1", "1234567890"); var setBuilder2 = new StoreRequestBuilder("set", "key2", "1234567890"); Dispatch(setBuilder1.ToAsciiRequest()); var response = Dispatch(setBuilder2.ToAsciiRequest()); Assert.AreEqual("STORED\r\n", response.ToAsciiString()); var getBuilder = new GetRequestBuilder("get", "key1"); var response2 = Dispatch(getBuilder.ToAsciiRequest()); Assert.AreEqual("END\r\n", response2.ToAsciiString()); }
public void DeleteExistingGetNotFound() { var storageBuilder = new StoreRequestBuilder("set", "key", "value"); Dispatch(storageBuilder.ToAsciiRequest()); var delBuilder = new DeleteRequestBuilder("key"); Dispatch(delBuilder.ToAsciiRequest()); var getBuilder = new GetRequestBuilder("get", "key"); var response = Dispatch(getBuilder.ToAsciiRequest()); Assert.AreEqual("END\r\n", response.ToAsciiString()); }
public void FlushClearsCache() { var storageBuilder = new StoreRequestBuilder("set", "key", "value"); Dispatch(storageBuilder.ToAsciiRequest()); var flushRequest = Encoding.ASCII.GetBytes("flush_all\r\n"); Dispatch(flushRequest); var getBuilder = new GetRequestBuilder("get", "key"); var response = Dispatch(getBuilder.ToAsciiRequest()); Assert.AreEqual("END\r\n", response.ToAsciiString()); }
public void GetValueOfReplaceToExisting() { var setBuilder = new StoreRequestBuilder("set", "key", "first"); Dispatch(setBuilder.ToAsciiRequest()); var replaceBuilder = new StoreRequestBuilder("replace", "key", "second"); Dispatch(replaceBuilder.ToAsciiRequest()); var getBuilder = new GetRequestBuilder("get", "key"); var response = Dispatch(getBuilder.ToAsciiRequest()); Assert.AreEqual("VALUE key 0 6\r\nsecond\r\nEND\r\n", response.ToAsciiString()); }
private static async void SimpleBenchmark(SyncClient client, string key = "key", int iterations = 100000) { for (int i = 0; i < iterations; ++i) { var b = new StoreRequestBuilder("set", key, string.Format("Data{0}", i)); var request = b.ToAsciiRequest(); var resposne = await client.SendAsync(request); Interlocked.Increment(ref _count); } var get = new GetRequestBuilder("get", key); var request2 = get.ToAsciiRequest(); var resposne2 = client.Send(request2); }
public void GetValueOfAppendToExisting() { var setBuilder = new StoreRequestBuilder("set", "key", "first"); Dispatch(setBuilder.ToAsciiRequest()); var appendBuilder = new StoreRequestBuilder("append", "key", " second"); Dispatch(appendBuilder.ToAsciiRequest()); var getBuilder = new GetRequestBuilder("get", "key"); var response = Dispatch(getBuilder.ToAsciiRequest()); Assert.AreEqual("VALUE key 0 12\r\nfirst second\r\nEND\r\n", response.ToAsciiString()); }
public void SetThenGetMultiple() { var storageBuilder1 = new StoreRequestBuilder("set", "key1", "111111"); Dispatch(storageBuilder1.ToAsciiRequest()); var storageBuilder2 = new StoreRequestBuilder("set", "key2", "222"); Dispatch(storageBuilder2.ToAsciiRequest()); var getBuilder = new GetRequestBuilder("get", "key1", "key2"); var response = Dispatch(getBuilder.ToAsciiRequest()); Assert.AreEqual("VALUE key1 0 6\r\n111111\r\nVALUE key2 0 3\r\n222\r\nEND\r\n", response.ToAsciiString()); }
public void FlushWithDelayNoEffect() { var storageBuilder = new StoreRequestBuilder("set", "key", "value"); Dispatch(storageBuilder.ToAsciiRequest()); var flushRequest = Encoding.ASCII.GetBytes("flush_all 100\r\n"); Dispatch(flushRequest); _testScheduler.AdvanceBy(TimeSpan.FromSeconds(90).Ticks); var getBuilder = new GetRequestBuilder("get", "key"); var response = Dispatch(getBuilder.ToAsciiRequest()); Assert.AreEqual("VALUE key 0 5\r\nvalue\r\nEND\r\n", response.ToAsciiString()); }
public void AbsoluteLongExpiry() { var unixEpoc = new DateTime(1970, 1, 1); _testScheduler.AdvanceBy((unixEpoc - _testScheduler.Now).Ticks); // Advance to the start of unix time TimeSpan span = (new DateTime(1970, 6, 1) - unixEpoc); var unixTime = (int)span.TotalSeconds; var storageBuilder = new StoreRequestBuilder("set", "key", "value"); storageBuilder.WithExpiry(unixTime); Dispatch(storageBuilder.ToAsciiRequest()); _testScheduler.AdvanceBy(TimeSpan.FromDays(200).Ticks); var getBuilder = new GetRequestBuilder("get", "key"); var response = Dispatch(getBuilder.ToAsciiRequest()); Assert.AreEqual("END\r\n", response.ToAsciiString()); }
public void StoreCasInCapacity() { var setBuilder = new StoreRequestBuilder("set", "s", "12345"); Dispatch(setBuilder.ToAsciiRequest()); var builder = new CasRequestBuilder("key", "12345"); builder.WithCasUnique(123); Dispatch(builder.ToAsciiRequest()); var getBuilder = new GetRequestBuilder("get", "key"); Dispatch(getBuilder.ToAsciiRequest()); var builder2 = new CasRequestBuilder("key", "123456"); builder2.WithCasUnique(123); var response2 = Dispatch(builder2.ToAsciiRequest()); Assert.AreEqual("STORED\r\n", response2.ToAsciiString()); }