public void SetParam() { GetRequestBuilder <int, Greeting> b = new GetRequestBuilder <int, Greeting>(baseUrl); Assert.IsFalse(b.HasParam("param1")); b.SetParam("param1", 123); Assert.IsTrue(b.HasParam("param1")); Assert.AreEqual(123, b.GetParam("param1")); b.SetParam("param1", "value1"); b.SetParam("param2", "value2"); Assert.AreEqual("value1", b.GetParam("param1")); Assert.IsTrue(b.HasParam("param2")); Assert.AreEqual("value2", b.GetParam("param2")); b.SetParams(new Dictionary <string, object>() { { "param1", "new value1" } }); Assert.IsTrue(b.HasParam("param1")); Assert.AreEqual("new value1", b.GetParam("param1")); Assert.IsTrue(b.HasParam("param2")); Assert.AreEqual("value2", b.GetParam("param2")); b.ClearParams(); Assert.IsFalse(b.HasParam("param1")); Assert.IsFalse(b.HasParam("param2")); }
public void GetNotFound() { var getBuilder = new GetRequestBuilder("get", "key"); var response = Dispatch(getBuilder.ToAsciiRequest()); Assert.AreEqual("END\r\n", response.ToAsciiString()); }
/// <summary> /// Calls the CatApi and returns a list of images. /// </summary> /// <param name="request">A <see cref="GetRequestBuilder"/> object containing request parameters.</param> /// <exception cref="InvalidRequestException">Thrown if any required parameters are null.</exception> /// <returns>A list of cat images :D</returns> public IEnumerable <GetResponse.Image> GetImages(GetRequestBuilder request) { var uri = request.Build(); var response = Get <GetResponse.Response>(uri); return(response.Data.Images); }
public void BuildComplexUrl_Get() { string expected = String.Format("http://testprefix/foo/1/bar/List(foo,2,3)/baz/(deeper:List(found,it,{0}))/biz/123", complexStringEscapedPath); GetRequestBuilder <int, Greeting> requestBuilder = new GetRequestBuilder <int, Greeting>("foo/{one}/bar/{list}/baz/{complex}/biz"); requestBuilder.SetID(123); requestBuilder.SetPathKey("one", 1); requestBuilder.SetPathKey("list", new List <object>() { "foo", 2, 3 }); requestBuilder.SetPathKey("complex", new Dictionary <string, object>() { { "deeper", new List <object>() { "found", "it", complexString } } }); GetRequest <int, Greeting> request = requestBuilder.Build(); RequestUrlBuilder <EntityResponse <Greeting> > urlBuilder = new RequestUrlBuilder <EntityResponse <Greeting> >(request, "http://testprefix"); Uri url = urlBuilder.Build(); Assert.AreEqual(expected, url.AbsoluteUri); }
public void GetGreeting_Sync_ServerError() { RestClient client = new RestClient(urlPrefix); GetRequestBuilder <int, Greeting> requestBuilder = new GetRequestBuilder <int, Greeting>("/basicCollection"); requestBuilder.SetID(-1); GetRequest <int, Greeting> request = requestBuilder.Build(); try { EntityResponse <Greeting> response = client.RestRequestSync(request); } catch (RestliException e) { Assert.IsNotNull(e.Message); Assert.IsNull(e.InnerException); ErrorResponse details = e.details; Assert.IsNotNull(details); Assert.AreEqual(400, details.status); Assert.AreEqual("Negative key.", details.message); Assert.AreEqual("com.linkedin.restli.server.RestLiServiceException", details.exceptionClass); Assert.IsTrue(details.hasStackTrace); return; } Assert.Fail("Rest request should throw RestliException"); }
public void TestTheThing() { var getRequest = new GetRequestBuilder() .WithResultsPerPage(10); var client = new CatClient(); var images = client.GetImages(getRequest); }
private string GetSignature(DateTime utcNow) { GetRequestBuilder builder = new GetRequestBuilder(_builder); builder.AddParam(_tKey, utcNow.ToString("s")); string signature = _signer.Sign(Constants.GET_METHOD, Host, Path, builder.Build()); return(signature); }
public SwapPrivateWebSocketClientBase(string accesskey, string secretkey, string host, IWebProxy proxy = null) : base(host, "/swap-notification", proxy) { _accesskey = accesskey; _signer = new HuobiSigner(secretkey); _builder = new GetRequestBuilder() .AddParam(_aKKey, _accesskey) .AddParam(_sMKey, _sMValue) .AddParam(_sVKey, _sVValue); }
public async Task <string> GetKlinesAsync(string symbol, string interval, int count = 150) { GetRequestBuilder builder = new GetRequestBuilder().AddParam("contract_code", symbol) .AddParam("period", interval) .AddParam("size", count.ToString()); string url = _urlBuilder.Build(PATH, builder); var response = await GetAsync(url); return(response); }
public void SetThenGet() { var storageBuilder = new StoreRequestBuilder("set", "key", "value"); 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 GetValueOfAddToEmpty() { var addBuilder = new StoreRequestBuilder("add", "key", "value"); Dispatch(addBuilder.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 SetPathKey() { GetRequestBuilder <int, Greeting> b = new GetRequestBuilder <int, Greeting>(baseUrl); Tone tone = new Tone(Tone.Symbol.FRIENDLY); b.SetPathKey("key1", "keyValue1"); b.SetPathKey("key2", 123); b.SetPathKey("key3", tone); Assert.AreEqual("keyValue1", b.GetPathKey("key1")); Assert.AreEqual(123, b.GetPathKey("key2")); Assert.AreEqual(tone.symbol, ((Tone)b.GetPathKey("key3")).symbol); }
public void FlagsSetAndGet() { var storageBuilder = new StoreRequestBuilder("set", "key", "value"); storageBuilder.WithFlags(1234567890); Dispatch(storageBuilder.ToAsciiRequest()); var getBuilder = new GetRequestBuilder("get", "key"); var response = Dispatch(getBuilder.ToAsciiRequest()); Assert.AreEqual("VALUE key 1234567890 5\r\nvalue\r\nEND\r\n", response.ToAsciiString()); }
public async Task <string> GetKlinesAsync(string symbol, string interval, DateTime from, DateTime to) { GetRequestBuilder builder = new GetRequestBuilder().AddParam("contract_code", symbol) .AddParam("period", interval) .AddParam("from", ((long)(from.ToUniversalTime() - DateTime.UnixEpoch).TotalSeconds).ToString()) .AddParam("to", ((long)(to.ToUniversalTime() - DateTime.UnixEpoch).TotalSeconds).ToString()); string url = _urlBuilder.Build(PATH, builder); var response = await GetAsync(url); return(response); }
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()); }
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 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 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()); }
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 GetGreeting_Async_ServerError() { RestClient client = new RestClient(urlPrefix); GetRequestBuilder <int, Greeting> requestBuilder = new GetRequestBuilder <int, Greeting>("/basicCollection"); requestBuilder.SetID(-1); GetRequest <int, Greeting> request = requestBuilder.Build(); AutoResetEvent blocker = new AutoResetEvent(false); Greeting greeting = null; ClientErrorResponse errorResponse = null; RestliCallback <EntityResponse <Greeting> > .SuccessHandler successHandler = delegate(EntityResponse <Greeting> response) { greeting = response.element; blocker.Set(); }; RestliCallback <EntityResponse <Greeting> > .ErrorHandler errorHandler = delegate(ClientErrorResponse response) { errorResponse = response; blocker.Set(); }; RestliCallback <EntityResponse <Greeting> > callback = new RestliCallback <EntityResponse <Greeting> >(successHandler, errorHandler); client.RestRequestAsync(request, callback); blocker.WaitOne(); Assert.IsNull(greeting); Assert.IsNotNull(errorResponse); Assert.AreEqual(400, errorResponse.status); RestliException error = errorResponse.error; Assert.IsNotNull(error); Assert.IsNotNull(error.Message); Assert.IsNull(error.InnerException); ErrorResponse details = error.details; Assert.IsNotNull(details); Assert.AreEqual(400, details.status); Assert.AreEqual("Negative key.", details.message); Assert.AreEqual("com.linkedin.restli.server.RestLiServiceException", details.exceptionClass); Assert.IsTrue(details.hasStackTrace); }
public void WhenGetRequestIsBuilt_Then_UriIsAsExpected() { var actual = new GetRequestBuilder() .WithApiKey(DummyApiKey) .WithImageId(DummyImageId) .WithCategory(Category.Funny) .WithType(new[] { ImageType.Jpg, ImageType.Gif, ImageType.Png }) .WithSubId(DummySubId) .WithSize(Size.Full) .Build(); var expectedQuery = "get?format=xml&api_key=DAK&image_id=image1&category=funny&type=jpg,gif,png&sub_id=subby&size=full&"; var expected = $"{BaseUri}{expectedQuery}"; Assert.AreEqual(expected, actual); }
public void CasNoPrevious() { var casBuilder = new CasRequestBuilder("key", "value"); ulong lastCas = 123; casBuilder.WithCasUnique(lastCas); var response = Dispatch(casBuilder.ToAsciiRequest()); Assert.AreEqual("STORED\r\n", response.ToAsciiString()); var getBuilder = new GetRequestBuilder("get", "key"); var getResponse = Dispatch(getBuilder.ToAsciiRequest()); Assert.AreEqual("VALUE key 0 5 123\r\nvalue\r\nEND\r\n", getResponse.ToAsciiString()); }
public void AddHeader() { GetRequestBuilder <int, Greeting> b = new GetRequestBuilder <int, Greeting>(baseUrl); b.AddHeader("header1", "value1"); b.AddHeader("header2", "value2"); b.AddHeader("header2", "value22"); CollectionAssert.AreEqual(new List <string>() { "value1" }, b.GetHeader("header1")); CollectionAssert.AreEqual(new List <string>() { "value2", "value22" }, b.GetHeader("header2")); }
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 override string Build(string method, string path, DateTime utcDateTime, GetRequestBuilder request) { string strDateTime = utcDateTime.ToString("s"); var req = new GetRequestBuilder(request) .AddParam(Constants.AKey, _accessKey) .AddParam(Constants.SMKey, Constants.SMValue) .AddParam(Constants.SVKey, Constants.SVValue) .AddParam(Constants.TKey, strDateTime); string param = req.Build(); string signature = _signer.Sign(method, _host, path, param); string url = $"http://{_host}{path}?{param}&{Constants.SKey}={Uri.EscapeDataString(signature)}"; return(url); }
public void CasUpdatePreviousModifiedValue() { var casBuilder1 = new CasRequestBuilder("key", "value1"); casBuilder1.WithCasUnique(789); Dispatch(casBuilder1.ToAsciiRequest()); var casBuilder2 = new CasRequestBuilder("key", "value2"); casBuilder2.WithCasUnique(567); Dispatch(casBuilder2.ToAsciiRequest()); var getBuilder = new GetRequestBuilder("get", "key"); var getResponse = Dispatch(getBuilder.ToAsciiRequest()); Assert.AreEqual("VALUE key 0 6 789\r\nvalue1\r\nEND\r\n", getResponse.ToAsciiString()); }
public void AddParam() { GetRequestBuilder <int, Greeting> b = new GetRequestBuilder <int, Greeting>(baseUrl); b.AddParam("param2", "value2"); Assert.IsFalse(b.HasParam("param1")); Assert.IsTrue(b.HasParam("param2")); List <object> paramList = (List <object>)b.GetParam("param2"); Assert.AreEqual("value2", paramList[0], "value2"); b.AddParam("param2", 123); paramList = (List <object>)b.GetParam("param2"); Assert.IsTrue(paramList.Count == 2); Assert.AreEqual("value2", paramList[0]); Assert.AreEqual(123, paramList[1]); }