Exemple #1
0
        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.");
                }
            });
        }
Exemple #2
0
        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));
     });
 }
Exemple #5
0
 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.");
     });
 }
Exemple #6
0
        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));
                }
            });
        }