public void TestSupportXmlRootForParameterName()
        {
            ServiceDescription  serviceDescription  = new ServiceDescription(typeof(IServiceWithMessageContract));
            ContractDescription contractDescription = new ContractDescription(serviceDescription, typeof(IServiceWithMessageContract), new ServiceContractAttribute());

            System.Reflection.MethodInfo method = typeof(IServiceWithMessageContract).GetMethod(nameof(IServiceWithMessageContract.GetClassWithXmlRoot));

            OperationContractAttribute contractAttribute = new OperationContractAttribute();

            ServiceModel.OperationDescription operationDescription = new ServiceModel.OperationDescription(contractDescription, method, contractAttribute);

            Assert.Equal("test", operationDescription.AllParameters.FirstOrDefault()?.Name);
        }
        public void TestProperUnrappingOfNonMessageContractResponses()
        {
            ServiceDescription  serviceDescription  = new ServiceDescription(typeof(IServiceWithMessageContract));
            ContractDescription contractDescription = new ContractDescription(serviceDescription, typeof(IServiceWithMessageContract), new ServiceContractAttribute());

            System.Reflection.MethodInfo method = typeof(IServiceWithMessageContract).GetMethod(nameof(IServiceWithMessageContract.GetMyStringClass));

            OperationContractAttribute contractAttribute = new OperationContractAttribute();

            ServiceModel.OperationDescription operationDescription = new ServiceModel.OperationDescription(contractDescription, method, contractAttribute);

            Assert.False(operationDescription.IsMessageContractResponse);
        }
        public void TestProperNamingOfAsyncMethods()
        {
            ServiceDescription  serviceDescription  = new ServiceDescription(typeof(IServiceWithMessageContract));
            ContractDescription contractDescription = new ContractDescription(serviceDescription, typeof(IServiceWithMessageContract), new ServiceContractAttribute());

            System.Reflection.MethodInfo method = typeof(IServiceWithMessageContract).GetMethod(nameof(IServiceWithMessageContract.GetMyAsyncClassAsync));

            OperationContractAttribute contractAttribute = new OperationContractAttribute();

            ServiceModel.OperationDescription operationDescription = new ServiceModel.OperationDescription(contractDescription, method, contractAttribute);

            Assert.True(operationDescription.IsMessageContractResponse);
            Assert.Equal("GetMyAsyncClass", operationDescription.Name);
        }
Esempio n. 4
0
        public void Tune(HttpContext httpContext, object serviceInstance, ServiceModel.OperationDescription operation)
        {
            IsCalled = true;
            if ((serviceInstance != null) && (serviceInstance is TestService) &&
                operation.Name.Equals("PingWithServiceOperationTuning"))
            {
                TestService service = serviceInstance as TestService;
                string      result  = string.Empty;

                StringValues pingValue;
                if (httpContext.Request.Headers.TryGetValue("ping_value", out pingValue))
                {
                    result = pingValue[0];
                }

                service.SetPingResult(result);
                IsSetPingValue = true;
            }
        }
        public void TestProperUnwrappingOfSoapFaults()
        {
            ServiceDescription  serviceDescription  = new ServiceDescription(typeof(IServiceWithMessageContract));
            ContractDescription contractDescription = new ContractDescription(serviceDescription, typeof(IServiceWithMessageContract), new ServiceContractAttribute());

            System.Reflection.MethodInfo method = typeof(IServiceWithMessageContract).GetMethod(nameof(IServiceWithMessageContract.ThrowTypedFault));

            OperationContractAttribute contractAttribute = new OperationContractAttribute();

            ServiceModel.OperationDescription operationDescription = new ServiceModel.OperationDescription(contractDescription, method, contractAttribute);

            var faultInfo = Assert.Single(operationDescription.Faults);

            Assert.Equal("TypedSoapFault", faultInfo.Name);

            var properties    = faultInfo.GetProperties().Where(prop => prop.CustomAttributes.All(attr => attr.AttributeType.Name != "IgnoreDataMemberAttribute"));
            var faultProperty = Assert.Single(properties);

            Assert.Equal("MyIncludedProperty", faultProperty.Name);
        }