public void SerializeToStringUsesGivenFormatProvider() { var hasToString = new HasToString(); var requestInfo = this.Request <ICustomRawQueryString>(x => x.FooAsync(hasToString)); var formatProvider = new Mock <IFormatProvider>(); Assert.Single(requestInfo.RawQueryParameters); requestInfo.RawQueryParameters.First().SerializeToString(formatProvider.Object); Assert.Equal(formatProvider.Object, hasToString.LastFormatProvider); //formatProvider.Verify(x => x.GetFormat(typeof(NumberFormatInfo))); }
public void PassesFormatWhenSerializing() { var obj = new HasToString(); var requestInfo = new RequestInfo(HttpMethod.Get, null); requestInfo.AddQueryParameter(QuerySerializationMethod.Serialized, "bar", obj, "D3"); var serializer = new Mock <RequestQueryParamSerializer>(); serializer.Setup(x => x.SerializeQueryParam <HasToString>("bar", obj, new RequestQueryParamSerializerInfo(requestInfo, "D3"))).Returns(new[] { new KeyValuePair <string, string>("bar", "BOOMYAY") }).Verifiable(); this.requester.RequestQueryParamSerializer = serializer.Object; var uri = this.requester.ConstructUri("/foo", requestInfo); serializer.VerifyAll(); }
public void SerializesUsingSerializerForSerializedSerializationMethod() { var obj = new HasToString(); var requestInfo = new RequestInfo(HttpMethod.Get, null); requestInfo.AddQueryParameter(QuerySerializationMethod.Serialized, "bar", obj); var serializer = new Mock <IRequestQueryParamSerializer>(); serializer.Setup(x => x.SerializeQueryParam <HasToString>("bar", obj)).Returns(new[] { new KeyValuePair <string, string>("bar", "BOOMYAY") }).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"), uri); }
public void SerializeToStringUsesGivenFormatProvider() { var implementation = this.builder.CreateImplementation <ICustomRawQueryString>(this.requester.Object); IRequestInfo requestInfo = null; this.requester.Setup(x => x.RequestVoidAsync(It.IsAny <IRequestInfo>())) .Callback((IRequestInfo r) => requestInfo = r) .Returns(Task.FromResult(false)); var hasToString = new HasToString(); implementation.FooAsync(hasToString); var formatProvider = new Mock <IFormatProvider>(); requestInfo.RawQueryParameters.First().SerializeToString(formatProvider.Object); Assert.Equal(formatProvider.Object, hasToString.LastFormatProvider); //formatProvider.Verify(x => x.GetFormat(typeof(NumberFormatInfo))); }
string NoOverride(string s, NoToString n) => s + n; // constrained. callvirt string HasOverride(string s, HasToString h) => s + h; // constrained. callvirt
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); }