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"));
        }
Esempio n. 2
0
        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);
        }
Esempio n. 4
0
        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");
        }
Esempio n. 6
0
        public void TestTheThing()
        {
            var getRequest = new GetRequestBuilder()
                             .WithResultsPerPage(10);

            var client = new CatClient();
            var images = client.GetImages(getRequest);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
        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());
        }
Esempio n. 11
0
        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);
        }
Esempio n. 13
0
        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());
        }
Esempio n. 14
0
        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);
        }
Esempio n. 15
0
        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());
        }
Esempio n. 16
0
        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());
        }
Esempio n. 17
0
        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());
        }
Esempio n. 18
0
        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());
        }
Esempio n. 19
0
        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());
        }
Esempio n. 20
0
        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());
        }
Esempio n. 21
0
        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());
        }
Esempio n. 22
0
        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);
        }
Esempio n. 24
0
        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);
        }
Esempio n. 25
0
        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"));
        }
Esempio n. 27
0
        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());
        }
Esempio n. 28
0
        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);
        }
Esempio n. 29
0
        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]);
        }