예제 #1
0
        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_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 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 CanInstantiateNewCreateRequestBuilder()
        {
            //Act
            var builder = new CreateRequestBuilder();

            //Assert
            Assert.That(builder, Is.Not.Null);
        }
        public Command BuildCreateCommand()
        {
            var command = new Command("create");
            var builder = new CreateRequestBuilder(PathParameters, RequestAdapter);

            command.AddCommand(builder.BuildPostCommand());
            return(command);
        }
        public void CanSetUpdateIfExists()
        {
            //Arrange
            var builder = new CreateRequestBuilder();

            //Act
            builder.UpdateIfExists();

            //Assert
            Assert.That(builder.RequestFilters[0], Is.InstanceOf <UpdateIfExistsFilter>());
        }
        public void CanSetFailOnError()
        {
            //Arrange
            var builder = new CreateRequestBuilder();

            //Act
            builder.FailOnError();

            //Assert
            Assert.That(builder.RequestFilters[0], Is.InstanceOf <FailOnErrorFilter>());
        }
        public void CanSetReturnNoAttributes()
        {
            //Arrange
            var builder = new CreateRequestBuilder();

            //Act
            builder.ReturnNoAttributes();

            //Assert
            Assert.That(builder.RequestFilters[0], Is.InstanceOf <ReturnNoAttributesFilter>());
        }
        public void CanSetAttributesToBeCreatedWithListOverload()
        {
            //Arrange
            var builder    = new CreateRequestBuilder();
            var attributes = new List <StructureAttribute> {
                StructureAttribute.New(10, new StructureValue(10, "foo"))
            };

            //Act
            builder.AttributesToSet(attributes);

            //Assert
            Assert.That(builder.Attributes.Count(), Is.EqualTo(1));
        }
        public void CanSetAttributesToBeCreatedWithListFactoryOverload()
        {
            //Arrange
            var builder = new CreateRequestBuilder();

            //Act
            builder.AttributesToSet(
                () => new List <IAdsmlAttribute> {
                StructureAttribute.New(10, new StructureValue(10, "foo")),
                SimpleAttribute.New(AttributeTypes.Text, "objectName", "foo")
            }
                );

            //Assert
            Assert.That(builder.Attributes.Count(), Is.EqualTo(2));
        }
        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());
        }
 public void Setup()
 {
     _builder = new CreateRequestBuilder();
 }