public void CanBuildCreateRequest() { //Arrange var builder = new CreateRequestBuilder(); //Act builder .NewContextName("/foo/bar") .ObjectTypeToCreate("baz") .ReturnNoAttributes() .FailOnError() .UpdateIfExists() .AttributesToSet( StructureAttribute.New(215, new StructureValue(10, "169010")) ) .ConfigureLookupControls() .ReturnAttributes(AttributeToReturn.WithName("Artikelnummer")) .ReturnLanguages(LanguageToReturn.WithLanguageId(10)) .ConfigureReferenceHandling( ReferenceOptions.ReturnValuesOnly() ); var request = new BatchRequest(builder.Build()); //Assert Assert.That(builder.Build(), Is.Not.Null); Assert.DoesNotThrow(() => request.ToAdsml().ValidateAdsmlDocument("adsml.xsd")); }
public void CreateGreeting_Sync() { RestClient client = new RestClient(urlPrefix); GreetingBuilder greetingBuilder = new GreetingBuilder(); greetingBuilder.id = 0; // Dummy value greetingBuilder.message = "Create me!"; greetingBuilder.tone = new Tone(Tone.Symbol.FRIENDLY); Greeting input = greetingBuilder.Build(); CreateRequestBuilder <int, Greeting> requestBuilder = new CreateRequestBuilder <int, Greeting>("/basicCollection"); requestBuilder.input = input; CreateRequest <int, Greeting> request = requestBuilder.Build(); CreateResponse <int, Greeting> response = client.RestRequestSync(request); Assert.AreEqual(RestConstants.httpStatusCreated, response.status); Assert.AreEqual(123, response.key); CollectionAssert.AreEqual(new List <string>() { "/basicCollection/123" }, response.headers[RestConstants.kHeaderLocation].ToList()); }
public void BuildComplexUrl_Create() { string expected = String.Format("http://testprefix/foo/1/bar/List(foo,2,3)/baz/(deeper:List(found,it,{0}))/biz", complexStringEscapedPath); GreetingBuilder greetingBuilder = new GreetingBuilder() { id = 555, tone = new Tone(Tone.Symbol.INSULTING), message = "build URl for this CREATE" }; Greeting greeting = greetingBuilder.Build(); CreateRequestBuilder <int, Greeting> requestBuilder = new CreateRequestBuilder <int, Greeting>("foo/{one}/bar/{list}/baz/{complex}/biz"); 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 } } }); CreateRequest <int, Greeting> request = requestBuilder.Build(); RequestUrlBuilder <CreateResponse <int, Greeting> > urlBuilder = new RequestUrlBuilder <CreateResponse <int, Greeting> >(request, "http://testprefix"); Uri url = urlBuilder.Build(); Assert.AreEqual(expected, url.AbsoluteUri); }
public void CreateGreeting_Async() { RestClient client = new RestClient(urlPrefix); GreetingBuilder greetingBuilder = new GreetingBuilder(); greetingBuilder.id = 0; // Dummy value greetingBuilder.message = "Create me!"; greetingBuilder.tone = new Tone(Tone.Symbol.FRIENDLY); Greeting input = greetingBuilder.Build(); CreateRequestBuilder <int, Greeting> requestBuilder = new CreateRequestBuilder <int, Greeting>("/basicCollection"); requestBuilder.input = input; CreateRequest <int, Greeting> request = requestBuilder.Build(); AutoResetEvent blocker = new AutoResetEvent(false); CreateResponse <int, Greeting> createResponse = null; ClientErrorResponse errorResponse = null; RestliCallback <CreateResponse <int, Greeting> > .SuccessHandler successHandler = delegate(CreateResponse <int, Greeting> response) { createResponse = response; blocker.Set(); }; RestliCallback <CreateResponse <int, Greeting> > .ErrorHandler errorHandler = delegate(ClientErrorResponse response) { errorResponse = response; blocker.Set(); }; RestliCallback <CreateResponse <int, Greeting> > callback = new RestliCallback <CreateResponse <int, Greeting> >(successHandler, errorHandler); client.RestRequestAsync(request, callback); blocker.WaitOne(asyncTimeoutMillis); Assert.IsNull(errorResponse); Assert.AreEqual(RestConstants.httpStatusCreated, createResponse.status); Assert.AreEqual(123, createResponse.key); CollectionAssert.AreEqual(new List <string>() { "/basicCollection/123" }, createResponse.headers[RestConstants.kHeaderLocation].ToList()); }