public void BuildComplexUrl_Finder() { string expected = String.Format("http://testprefix/foo/1/bar/List(foo,2,3)/baz/(deeper:List(found,it,{0}))/biz?q={1}", complexStringEscapedPath, complexStringEscapedQuery); FinderRequestBuilder <Greeting, EmptyRecord> requestBuilder = new FinderRequestBuilder <Greeting, EmptyRecord>("foo/{one}/bar/{list}/baz/{complex}/biz"); requestBuilder.Name(complexString); 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 } } }); FinderRequest <Greeting, EmptyRecord> request = requestBuilder.Build(); RequestUrlBuilder <CollectionResponse <Greeting, EmptyRecord> > urlBuilder = new RequestUrlBuilder <CollectionResponse <Greeting, EmptyRecord> >(request, "http://testprefix"); Uri url = urlBuilder.Build(); Assert.AreEqual(expected, url.AbsoluteUri); }
public void FinderGreeting_Async() { RestClient client = new RestClient(urlPrefix); FinderRequestBuilder <Greeting, EmptyRecord> requestBuilder = new FinderRequestBuilder <Greeting, EmptyRecord>("/basicCollection"); requestBuilder.Name("search"); requestBuilder.SetParam("tone", Tone.Symbol.FRIENDLY); FinderRequest <Greeting, EmptyRecord> request = requestBuilder.Build(); AutoResetEvent blocker = new AutoResetEvent(false); CollectionResponse <Greeting, EmptyRecord> collectionResponse = null; ClientErrorResponse errorResponse = null; RestliCallback <CollectionResponse <Greeting, EmptyRecord> > .SuccessHandler successHandler = delegate(CollectionResponse <Greeting, EmptyRecord> response) { collectionResponse = response; blocker.Set(); }; RestliCallback <CollectionResponse <Greeting, EmptyRecord> > .ErrorHandler errorHandler = delegate(ClientErrorResponse response) { errorResponse = response; blocker.Set(); }; RestliCallback <CollectionResponse <Greeting, EmptyRecord> > callback = new RestliCallback <CollectionResponse <Greeting, EmptyRecord> >(successHandler, errorHandler); client.RestRequestAsync(request, callback); blocker.WaitOne(asyncTimeoutMillis); Assert.IsNull(errorResponse); IReadOnlyList <Greeting> greetings = collectionResponse.elements; Assert.IsTrue(greetings.Count() > 0); Assert.IsTrue(greetings.All(_ => _.message.Equals("search") && _.tone.symbol == Tone.Symbol.FRIENDLY)); Assert.AreEqual(10, collectionResponse.paging.count); Assert.AreEqual(0, collectionResponse.paging.start); CollectionAssert.AllItemsAreInstancesOfType(collectionResponse.paging.links.ToList(), typeof(Link)); Assert.AreEqual("application/json", collectionResponse.paging.links[0].type); }
public void FinderGreeting_Sync() { RestClient client = new RestClient(urlPrefix); FinderRequestBuilder <Greeting, EmptyRecord> requestBuilder = new FinderRequestBuilder <Greeting, EmptyRecord>("/basicCollection"); requestBuilder.Name("search"); requestBuilder.SetParam("tone", Tone.Symbol.FRIENDLY); FinderRequest <Greeting, EmptyRecord> request = requestBuilder.Build(); CollectionResponse <Greeting, EmptyRecord> response = client.RestRequestSync(request); IReadOnlyList <Greeting> greetings = response.elements; Assert.IsTrue(greetings.Count() > 0); Assert.IsTrue(greetings.All(_ => _.message.Equals("search") && _.tone.symbol == Tone.Symbol.FRIENDLY)); Assert.AreEqual(10, response.paging.count); Assert.AreEqual(0, response.paging.start); CollectionAssert.AllItemsAreInstancesOfType(response.paging.links.ToList(), typeof(Link)); Assert.AreEqual("application/json", response.paging.links[0].type); }