| File: MessageContractTests.4.4.0.cs | Web Access |
| Project: src\src\System.Private.ServiceModel\tests\Scenarios\Contract\Message\Contract.Message.IntegrationTests.csproj (Contract.Message.IntegrationTests) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System; using System.ServiceModel; using Infrastructure.Common; using WcfService; using Xunit; public static class MessageContractTests_4_4_0 { [WcfFact] [OuterLoop] public static void Message_With_MessageHeaders_RoundTrips() { BasicHttpBinding binding = null; IWcfService_4_4_0 clientProxy = null; RequestBankingData_4_4_0 requestData = null; ChannelFactory<IWcfService_4_4_0> factory = null; // *** SETUP *** \\ try { binding = new BasicHttpBinding(); factory = new ChannelFactory<IWcfService_4_4_0>(binding, new EndpointAddress(Endpoints.HttpBaseAddress_4_4_0_Basic)); clientProxy = factory.CreateChannel(); requestData = new RequestBankingData_4_4_0(); requestData.accountName = "Michael Jordan"; requestData.transactionDate = DateTime.Now; requestData.amount = 100.0M; // post-1.1.0 features requestData.requestSingleValue = "test single value"; requestData.requestMultipleValues = "test,multiple,value".Split(','); requestData.requestArrayMultipleValues = "test,array,multiple,value".Split(','); // *** EXECUTE *** \\ ReplyBankingData_4_4_0 replyData = clientProxy.MessageContractRequestReply(requestData); // *** VALIDATE *** \\ Assert.True(String.Equals(requestData.accountName, replyData.accountName), String.Format("Expected Customer = '{0}', actual = '{1}'", requestData.accountName, replyData.accountName)); Assert.True(requestData.amount == replyData.amount, String.Format("Expected Amount = '{0}', actual = '{1}'", requestData.amount, requestData.amount)); Assert.True(String.Equals(requestData.requestSingleValue, replyData.replySingleValue), String.Format("Expected RequestSingleValue = '{0}', actual = '{1}", requestData.requestSingleValue, replyData.replySingleValue)); ValidateArray("MultipleValue", requestData.requestMultipleValues, replyData.replyMultipleValues); ValidateArray("ArrayMultipleValue", requestData.requestArrayMultipleValues, replyData.replyArrayMultipleValues); // *** CLEANUP *** \\ factory.Close(); ((ICommunicationObject)clientProxy).Close(); } finally { // *** ENSURE CLEANUP *** \\ ScenarioTestHelpers.CloseCommunicationObjects((ICommunicationObject)clientProxy, factory); } } private static void ValidateArray(string elementName, string[] array1, string[] array2) { Assert.True(array2 != null, String.Format("The {0} element returned a null array", elementName)); Assert.True(array1.Length == array2.Length, String.Format("The {0} element was expected to return {1} items, actual = {2}", elementName, array1.Length, array2.Length)); for (int i = 0; i < array1.Length; ++i) { Assert.True(array1[i] == array2[i], String.Format("Array item {0} of element {1} was expected to be {2}, actual was {3}", i, elementName, array1[i], array2[i])); } } [WcfFact] [OuterLoop] public static void Message_With_XmlElementMessageHeader_RoundTrip() { BasicHttpBinding binding = null; IWcfService_4_4_0 clientProxy = null; ChannelFactory<IWcfService_4_4_0> factory = null; // *** SETUP *** \\ try { binding = new BasicHttpBinding(); factory = new ChannelFactory<IWcfService_4_4_0>(binding, new EndpointAddress(Endpoints.HttpBaseAddress_4_4_0_Basic)); clientProxy = factory.CreateChannel(); string testString = "test string"; var header = new XmlElementMessageHeader() { HeaderValue = testString }; var request = new XmlElementMessageHeaderRequest(header); // *** EXECUTE *** \\ XmlElementMessageHeaderResponse response = clientProxy.SendRequestWithXmlElementMessageHeader(request); // *** VALIDATE *** \\ Assert.True(response != null, $"Expected {nameof(response)} not to be null , but it was null"); Assert.True(String.Equals(testString, response.TestResult), $"Expected {nameof(response.TestResult)} = {testString}, actual was {response.TestResult}"); // *** CLEANUP *** \\ factory.Close(); ((ICommunicationObject)clientProxy).Close(); } finally { // *** ENSURE CLEANUP *** \\ ScenarioTestHelpers.CloseCommunicationObjects((ICommunicationObject)clientProxy, factory); } } }