예제 #1
0
 public void IgnoresNullQueryParamArrayValuesWhenUsingToString()
 {
     var requestInfo = new RequestInfo(HttpMethod.Get, null);
     requestInfo.AddQueryCollectionParameter<object>(QuerySerializationMethod.ToString, "foo", new[] { "bar", null, "baz" });
     var uri = this.requester.ConstructUri("/foo", requestInfo);
     Assert.Equal(new Uri("http://api.example.com/base/foo?foo=bar&foo=baz"), uri);
 }
예제 #2
0
        public void IgnoresNullQueryParamArrayValuesWhenUsingToString()
        {
            var requestInfo = new RequestInfo(HttpMethod.Get, null);

            requestInfo.AddQueryCollectionParameter <object>(QuerySerializationMethod.ToString, "foo", new[] { "bar", null, "baz" });
            var uri = this.requester.ConstructUri(null, "/foo", requestInfo);

            Assert.Equal(new Uri("http://api.example.com/base/foo?foo=bar&foo=baz"), uri);
        }
예제 #3
0
        public void CallsToStringOnEachNonNullElementForToStringSerializationMethodOnCollections()
        {
            var requestInfo = new RequestInfo(HttpMethod.Get, null);
            var objectMock1 = new Mock <HasToString>();
            var objectMock2 = new Mock <HasToString>();

            objectMock1.Setup(x => x.ToString()).Returns("BOOM1").Verifiable();
            objectMock2.Setup(x => x.ToString()).Returns("BOOM2").Verifiable();
            requestInfo.AddQueryCollectionParameter(QuerySerializationMethod.ToString, "bar", new[] { objectMock1.Object, null, objectMock2.Object });
            var uri = this.requester.ConstructUri(null, "/foo", requestInfo);

            Assert.Equal(new Uri("http://api.example.com/base/foo?bar=BOOM1&bar=BOOM2"), uri);

            objectMock1.VerifyAll();
            objectMock2.VerifyAll();
        }
예제 #4
0
        public void DoesNotIgnoreNullQueryParamArraysWhenUsingSerializer()
        {
            var requestInfo = new RequestInfo(HttpMethod.Get, null);
            requestInfo.AddQueryCollectionParameter<object>(QuerySerializationMethod.Serialized, "bar", null);

            var queryParameterSerializer = new Mock<IRequestQueryParamSerializer>();
            queryParameterSerializer.Setup(x => x.SerializeQueryCollectionParam<object>("bar", null))
                .Returns(new[] { new KeyValuePair<string, string>("bar", "foo") })
                .Verifiable();
            this.requester.RequestQueryParamSerializer = queryParameterSerializer.Object;

            var uri = this.requester.ConstructUri("/foo", requestInfo);
            Assert.Equal(new Uri("http://api.example.com/base/foo?bar=foo"), uri);

            queryParameterSerializer.VerifyAll();
        }
예제 #5
0
        public void PassesFormatWhenSerializingCollections()
        {
            var obj         = new HasToString();
            var requestInfo = new RequestInfo(HttpMethod.Get, null);

            requestInfo.AddQueryCollectionParameter(QuerySerializationMethod.Serialized, "bar", new[] { obj }, "D4");

            var serializer = new Mock <RequestQueryParamSerializer>();

            serializer.Setup(x => x.SerializeQueryCollectionParam <HasToString>("bar", new[] { obj }, new RequestQueryParamSerializerInfo(requestInfo, "D4", null)))
            .Returns(new[] { new KeyValuePair <string, string>("bar", "BOOMYAY"), new KeyValuePair <string, string>("bar", "BOOMWOO") })
            .Verifiable();
            this.requester.RequestQueryParamSerializer = serializer.Object;

            var uri = this.requester.ConstructUri(null, "/foo", requestInfo);

            serializer.VerifyAll();
        }
예제 #6
0
        public void DoesNotIgnoreNullQueryParamArraysWhenUsingSerializer()
        {
            var requestInfo = new RequestInfo(HttpMethod.Get, null);

            requestInfo.AddQueryCollectionParameter <object>(QuerySerializationMethod.Serialized, "bar", null);

            var queryParameterSerializer = new Mock <RequestQueryParamSerializer>();

            queryParameterSerializer.Setup(x => x.SerializeQueryCollectionParam <object>("bar", null, It.IsAny <RequestQueryParamSerializerInfo>()))
            .Returns(new[] { new KeyValuePair <string, string>("bar", "foo") })
            .Verifiable();
            this.requester.RequestQueryParamSerializer = queryParameterSerializer.Object;

            var uri = this.requester.ConstructUri(null, "/foo", requestInfo);

            Assert.Equal(new Uri("http://api.example.com/base/foo?bar=foo"), uri);

            queryParameterSerializer.VerifyAll();
        }
예제 #7
0
        public void SerializesUsingSerializerForSerializedSerializationMethodOnCollections()
        {
            var obj         = new HasToString();
            var requestInfo = new RequestInfo(HttpMethod.Get, null);

            requestInfo.AddQueryCollectionParameter(QuerySerializationMethod.Serialized, "bar", new[] { obj });

            var serializer = new Mock <RequestQueryParamSerializer>();

            serializer.Setup(x => x.SerializeQueryCollectionParam <HasToString>("bar", new[] { obj }, It.IsAny <RequestQueryParamSerializerInfo>()))
            .Returns(new[] { new KeyValuePair <string, string>("bar", "BOOMYAY"), new KeyValuePair <string, string>("bar", "BOOMWOO") })
            .Verifiable();
            this.requester.RequestQueryParamSerializer = serializer.Object;

            var uri = this.requester.ConstructUri(null, "/foo", requestInfo);

            serializer.VerifyAll();
            Assert.Equal(new Uri("http://api.example.com/base/foo?bar=BOOMYAY&bar=BOOMWOO"), uri);
        }
예제 #8
0
        public void SerializesUsingSerializerForSerializedSerializationMethodOnCollections()
        {
            var obj = new HasToString();
            var requestInfo = new RequestInfo(HttpMethod.Get, null);
            requestInfo.AddQueryCollectionParameter(QuerySerializationMethod.Serialized, "bar", new[] { obj });

            var serializer = new Mock<IRequestQueryParamSerializer>();
            serializer.Setup(x => x.SerializeQueryCollectionParam<HasToString>("bar", new[] { obj }))
                .Returns(new[] { new KeyValuePair<string, string>("bar", "BOOMYAY"), new KeyValuePair<string, string>("bar", "BOOMWOO") })
                .Verifiable();
            this.requester.RequestQueryParamSerializer = serializer.Object;

            var uri = this.requester.ConstructUri("/foo", requestInfo);

            serializer.VerifyAll();
            Assert.Equal(new Uri("http://api.example.com/base/foo?bar=BOOMYAY&bar=BOOMWOO"), uri);
        }
예제 #9
0
        public void CallsToStringOnEachNonNullElementForToStringSerializationMethodOnCollections()
        {
            var requestInfo = new RequestInfo(HttpMethod.Get, null);
            var objectMock1 = new Mock<HasToString>();
            var objectMock2 = new Mock<HasToString>();
            objectMock1.Setup(x => x.ToString()).Returns("BOOM1").Verifiable();
            objectMock2.Setup(x => x.ToString()).Returns("BOOM2").Verifiable();
            requestInfo.AddQueryCollectionParameter(QuerySerializationMethod.ToString, "bar", new[] { objectMock1.Object, null, objectMock2.Object });
            var uri = this.requester.ConstructUri("/foo", requestInfo);

            Assert.Equal(new Uri("http://api.example.com/base/foo?bar=BOOM1&bar=BOOM2"), uri);

            objectMock1.VerifyAll();
            objectMock2.VerifyAll();
        }