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); }
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); }