diff options
author | Marcos Henrich <marcos.henrich@xamarin.com> | 2016-06-30 15:42:42 +0300 |
---|---|---|
committer | Marcos Henrich <marcos.henrich@xamarin.com> | 2016-06-30 19:56:16 +0300 |
commit | 631d5dd49f57ece7bbb366d356d19038c5fb792b (patch) | |
tree | 8a7f83fc664dd17f4dbddea23dc0aeadc757aeb6 /mcs/class/System.Web.Services | |
parent | 4239ddd9f18d778e03cc979c9d15135e47fb0e28 (diff) |
[System.Web.Services] Test Header sharing issue.
Covers #41564
When multiple methods shared soap header a duplicate key exception would
be thrown.
This issue only occurs on XAMMAC and MOBILE where the non reference
source serializer is still used.
Diffstat (limited to 'mcs/class/System.Web.Services')
-rwxr-xr-x | mcs/class/System.Web.Services/Test/System.Web.Services.Protocols/SoapHttpClientProtocolTest.cs | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/mcs/class/System.Web.Services/Test/System.Web.Services.Protocols/SoapHttpClientProtocolTest.cs b/mcs/class/System.Web.Services/Test/System.Web.Services.Protocols/SoapHttpClientProtocolTest.cs index 0019e05c278..cd9dc050fe7 100755 --- a/mcs/class/System.Web.Services/Test/System.Web.Services.Protocols/SoapHttpClientProtocolTest.cs +++ b/mcs/class/System.Web.Services/Test/System.Web.Services.Protocols/SoapHttpClientProtocolTest.cs @@ -243,5 +243,44 @@ namespace MonoTests.System.Web.Services.Protocols } } } + + public class RequestHeader : SoapHeader + { + } + + public class ResponseHeader : SoapHeader + { + } + + [WebServiceBindingAttribute(Name = "ServiceWithHeaders", Namespace = "https://example.com")] + public class ServiceWithHeaders : SoapHttpClientProtocol + { + public RequestHeader RequestHeader { get; set; } + public ResponseHeader ResponseHeader { get; set; } + + [SoapHeaderAttribute("ResponseHeader", Direction = SoapHeaderDirection.Out)] + [SoapHeaderAttribute("RequestHeader")] + [SoapDocumentMethodAttribute("", RequestNamespace = "https://example.com", ResponseNamespace = "https://example.com", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public int method1() + { + return 0; + } + + [SoapHeaderAttribute("ResponseHeader", Direction = SoapHeaderDirection.Out)] + [SoapHeaderAttribute("RequestHeader")] + [SoapDocumentMethodAttribute("", RequestNamespace = "https://example.com", ResponseNamespace = "https://example.com", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public int method2() + { + return 0; + } + } + + [Test] // Covers #41564 + public void ServiceWithHeader () { + var service = new ServiceWithHeaders (); + Assert.IsNotNull (service); + // Should not throw an exception + // XAMMAC specific bug + } } } |