public void HandleConvertsStringValuesReturnedFromOnHandle() { TestDataAssert.Execute( HttpTestData.ConvertableValueTypes, TestDataVariations.AllSingleInstances, "Handle failed", (type, obj) => { Type convertType = obj.GetType(); if (HttpParameterAssert.CanConvertToStringAndBack(convertType)) { HttpParameter hpd = new HttpParameter("aName", convertType); HttpParameter[] parameters = new HttpParameter[] { hpd }; SHttpOperationHandler handler = new SHttpOperationHandler(); handler.OnGetInputParameters01 = () => parameters; handler.OnGetOutputParameters01 = () => parameters; handler.OnHandleObjectArray = (oArray) => new object[] { obj.ToString() }; object[] result = handler.Handle(new object[] { obj }); Assert.IsNotNull(result, "Null result returned from Handle."); Assert.AreEqual(1, result.Length, "Handle returned wrong length array."); Assert.AreEqual(convertType, result[0].GetType(), "Value did not convert to right type."); Assert.AreEqual(obj.ToString(), result[0].ToString(), "Object did not convert to the right value."); } }); }
public void OutputParametersPreservesOrderFromOnGetOutputParameters() { HttpParameter[] parameters = new HttpParameter[] { new HttpParameter("arg1", typeof(string)), new HttpParameter("arg2", typeof(int)) }; SHttpOperationHandler handler = new SHttpOperationHandler(); handler.OnGetOutputParameters01 = () => parameters; ReadOnlyCollection <HttpParameter> arguments = handler.OutputParameters; HttpParameterAssert.AreEqual(parameters, arguments, "Order was not preserved."); }
public void Constructor() { HttpParameter hpd = new HttpParameter("x", typeof(int)); HttpParameter expectedContentParameter = new HttpParameter("x", typeof(HttpRequestMessage <int>)); SMediaTypeFormatter formatter = new SMediaTypeFormatter() { CallBase = true }; MediaTypeFormatter[] formatters = new MediaTypeFormatter[] { formatter }; RequestContentHandler handler = new RequestContentHandler(hpd, formatters); HttpParameterAssert.ContainsOnly(handler.InputParameters, HttpParameter.RequestMessage, "Failed to initialize input parameters to HttpRequestMessage."); HttpParameterAssert.ContainsOnly(handler.OutputParameters, expectedContentParameter, "Failed to initialize content parameter."); CollectionAssert.Contains(handler.Formatters, formatter, "Failed to accept mediaTypeFormatter."); }
public void OutputParameterAreCreatedAllValueAndReferenceTypes() { TestDataAssert.Execute( HttpTestData.RepresentativeValueAndRefTypeTestDataCollection, TestDataVariations.All, "OutputParameters all types failed.", (type, obj) => { Type convertType = obj == null ? type : obj.GetType(); HttpParameter hpd = new HttpParameter("x", convertType); Type expectedType = typeof(HttpRequestMessage <>).MakeGenericType(convertType); HttpParameter expectedContentParameter = new HttpParameter("x", expectedType); RequestContentHandler handler = new RequestContentHandler(hpd, Enumerable.Empty <MediaTypeFormatter>()); HttpParameterAssert.ContainsOnly(handler.OutputParameters, expectedContentParameter, string.Format("Failed to initialize content parameter for {0}.", convertType.Name)); }); }
public void InputParameterAreCreatedAllValueAndReferenceTypes() { TestDataAssert.Execute( HttpTestData.RepresentativeValueAndRefTypeTestDataCollection, TestDataVariations.All, "InputParameters for all types failed.", (type, obj) => { Type convertType = obj == null ? type : obj.GetType(); HttpParameter hpd = new HttpParameter("x", convertType); Type expectedType = typeof(HttpResponseMessage <>).MakeGenericType(convertType); HttpParameter expectedContentParameter = new HttpParameter("x", expectedType); ResponseContentHandler handler = new ResponseContentHandler(hpd, Enumerable.Empty <MediaTypeFormatter>()); HttpParameterAssert.Contains(handler.InputParameters, HttpParameter.RequestMessage, "Failed to initialize input parameters for RequestMessage."); HttpParameterAssert.Contains(handler.InputParameters, hpd, "Failed to initialize input parameter."); }); }
public void ConvertStringToT() { TestDataAssert.Execute( HttpTestData.ConvertableValueTypes, TestDataVariations.AllSingleInstances, "Convert(string) failed", (type, obj) => { Type convertType = obj == null ? type : obj.GetType(); if (HttpParameterAssert.CanConvertToStringAndBack(obj)) { HttpParameterValueConverter converter = HttpParameterValueConverter.GetValueConverter(convertType); string objAsString = obj.ToString(); object actualObj = converter.Convert(objAsString); Assert.IsNotNull(actualObj, "Convert from string returned null."); Assert.AreEqual(obj.GetType(), actualObj.GetType(), "Convert from string returned wrong type."); string actualObjAsString = actualObj.ToString(); Assert.AreEqual(objAsString, actualObjAsString, string.Format("Conversion failed for {0}.", convertType.Name)); } }); }