2 // AddressHeaderCollectionElementTest.cs
5 // Igor Zelmanovich <igorz@mainsoft.com>
7 // Copyright (C) 2008 Mainsoft, Inc. http://www.mainsoft.com
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30 using System.Collections.Generic;
32 using NUnit.Framework;
33 using System.Configuration;
34 using System.ServiceModel.Configuration;
35 using System.ServiceModel.Channels;
37 using System.ServiceModel;
38 using System.Net.Security;
40 namespace MonoTests.System.ServiceModel.Configuration
43 public class CustomBindingElementTest
45 CustomBindingCollectionElement OpenConfig () {
46 ServiceModelSectionGroup config = (ServiceModelSectionGroup) ConfigurationManager.OpenExeConfiguration ("Test/config/customBinding").GetSectionGroup ("system.serviceModel");
47 Assert.AreEqual (7, config.Bindings.CustomBinding.Bindings.Count, "CustomBinding count");
48 return config.Bindings.CustomBinding;
51 T GetElement<T> (int index) where T : BindingElementExtensionElement {
52 CustomBindingElement binding = OpenConfig ().Bindings [index];
53 T element = (T) binding [typeof (T)];
54 Assert.IsNotNull (element, typeof (T).Name + " is not exist in collection.");
59 public void CustomBindingElement () {
60 CustomBindingElement binding = OpenConfig ().Bindings [0];
62 Assert.AreEqual ("CustomBinding_1", binding.Name, "Name");
63 Assert.AreEqual (new TimeSpan (0, 2, 0), binding.CloseTimeout, "CloseTimeout");
64 Assert.AreEqual (new TimeSpan (0, 2, 0), binding.OpenTimeout, "OpenTimeout");
65 Assert.AreEqual (new TimeSpan (0, 20, 0), binding.ReceiveTimeout, "ReceiveTimeout");
66 Assert.AreEqual (new TimeSpan (0, 2, 0), binding.SendTimeout, "SendTimeout");
71 public void BinaryMessageEncodingElement () {
73 BinaryMessageEncodingElement binaryMessageEncoding = GetElement<BinaryMessageEncodingElement> (0);
75 Assert.AreEqual (typeof (BinaryMessageEncodingBindingElement), binaryMessageEncoding.BindingElementType, "BindingElementType");
76 Assert.AreEqual ("binaryMessageEncoding", binaryMessageEncoding.ConfigurationElementName, "ConfigurationElementName");
78 Assert.AreEqual (128, binaryMessageEncoding.MaxReadPoolSize, "MaxReadPoolSize");
79 Assert.AreEqual (1024, binaryMessageEncoding.MaxSessionSize, "MaxSessionSize");
80 Assert.AreEqual (32, binaryMessageEncoding.MaxWritePoolSize, "MaxWritePoolSize");
81 Assert.AreEqual (1024, binaryMessageEncoding.ReaderQuotas.MaxArrayLength, "ReaderQuotas.MaxArrayLength");
82 Assert.AreEqual (1024, binaryMessageEncoding.ReaderQuotas.MaxBytesPerRead, "ReaderQuotas.MaxBytesPerRead");
83 Assert.AreEqual (1024, binaryMessageEncoding.ReaderQuotas.MaxDepth, "ReaderQuotas.MaxDepth");
84 Assert.AreEqual (1024, binaryMessageEncoding.ReaderQuotas.MaxNameTableCharCount, "ReaderQuotas.MaxNameTableCharCount");
85 Assert.AreEqual (1024, binaryMessageEncoding.ReaderQuotas.MaxStringContentLength, "ReaderQuotas.MaxStringContentLength");
89 public void CompositeDuplexElement () {
90 CompositeDuplexElement element = GetElement<CompositeDuplexElement> (0);
92 Assert.AreEqual (typeof (CompositeDuplexBindingElement), element.BindingElementType, "BindingElementType");
93 Assert.AreEqual ("compositeDuplex", element.ConfigurationElementName, "ConfigurationElementName");
95 Assert.AreEqual ("http://client.base.address", element.ClientBaseAddress.OriginalString, "ClientBaseAddress");
99 public void OneWayElement () {
100 OneWayElement element = GetElement<OneWayElement> (0);
102 Assert.AreEqual (typeof (OneWayBindingElement), element.BindingElementType, "BindingElementType");
103 Assert.AreEqual ("oneWay", element.ConfigurationElementName, "ConfigurationElementName");
105 Assert.AreEqual (5, element.MaxAcceptedChannels, "MaxAcceptedChannels");
106 Assert.AreEqual (true, element.PacketRoutable, "PacketRoutable");
108 Assert.AreEqual (new TimeSpan (0, 1, 0), element.ChannelPoolSettings.IdleTimeout, "ChannelPoolSettings.IdleTimeout");
109 Assert.AreEqual (new TimeSpan (0, 12, 0), element.ChannelPoolSettings.LeaseTimeout, "ChannelPoolSettings.LeaseTimeout");
110 Assert.AreEqual (5, element.ChannelPoolSettings.MaxOutboundChannelsPerEndpoint, "ChannelPoolSettings.MxOutboundChannelsPerEndpoint");
114 public void HttpTransportElement () {
115 HttpTransportElement element = GetElement<HttpTransportElement> (0);
117 Assert.AreEqual (typeof (HttpTransportBindingElement), element.BindingElementType, "BindingElementType");
118 Assert.AreEqual ("httpTransport", element.ConfigurationElementName, "ConfigurationElementName");
120 Assert.AreEqual (true, element.ManualAddressing, "ManualAddressing");
121 Assert.AreEqual (262144, element.MaxBufferPoolSize, "MaxBufferPoolSize");
122 Assert.AreEqual (32768, element.MaxReceivedMessageSize, "MaxReceivedMessageSize");
123 Assert.AreEqual (true, element.AllowCookies, "AllowCookies");
124 Assert.AreEqual (AuthenticationSchemes.None, element.AuthenticationScheme, "AuthenticationScheme");
125 Assert.AreEqual (true, element.BypassProxyOnLocal, "BypassProxyOnLocal");
126 Assert.AreEqual (HostNameComparisonMode.Exact, element.HostNameComparisonMode, "HostNameComparisonMode");
127 Assert.AreEqual (false, element.KeepAliveEnabled, "KeepAliveEnabled");
128 Assert.AreEqual (32768, element.MaxBufferSize, "MaxBufferSize");
129 Assert.AreEqual ("http://proxy.address", element.ProxyAddress.OriginalString, "ProxyAddress");
130 Assert.AreEqual (AuthenticationSchemes.None, element.ProxyAuthenticationScheme, "ProxyAuthenticationScheme");
131 Assert.AreEqual ("Realm", element.Realm, "Realm");
132 Assert.AreEqual (TransferMode.Streamed, element.TransferMode, "TransferMode");
133 Assert.AreEqual (true, element.UnsafeConnectionNtlmAuthentication, "UnsafeConnectionNtlmAuthentication");
134 Assert.AreEqual (false, element.UseDefaultWebProxy, "UseDefaultWebProxy");
138 public void HttpsTransportElement () {
139 HttpsTransportElement element = GetElement<HttpsTransportElement> (1);
141 Assert.AreEqual (typeof (HttpsTransportBindingElement), element.BindingElementType, "BindingElementType");
142 Assert.AreEqual ("httpsTransport", element.ConfigurationElementName, "ConfigurationElementName");
144 Assert.AreEqual (true, element.ManualAddressing, "ManualAddressing");
145 Assert.AreEqual (262144, element.MaxBufferPoolSize, "MaxBufferPoolSize");
146 Assert.AreEqual (32768, element.MaxReceivedMessageSize, "MaxReceivedMessageSize");
147 Assert.AreEqual (true, element.AllowCookies, "AllowCookies");
148 Assert.AreEqual (AuthenticationSchemes.None, element.AuthenticationScheme, "AuthenticationScheme");
149 Assert.AreEqual (true, element.BypassProxyOnLocal, "BypassProxyOnLocal");
150 Assert.AreEqual (HostNameComparisonMode.Exact, element.HostNameComparisonMode, "HostNameComparisonMode");
151 Assert.AreEqual (true, element.KeepAliveEnabled, "KeepAliveEnabled");
152 Assert.AreEqual (32768, element.MaxBufferSize, "MaxBufferSize");
153 Assert.AreEqual ("https://proxy.address", element.ProxyAddress.OriginalString, "ProxyAddress");
154 Assert.AreEqual (AuthenticationSchemes.None, element.ProxyAuthenticationScheme, "ProxyAuthenticationScheme");
155 Assert.AreEqual ("Realm", element.Realm, "Realm");
156 Assert.AreEqual (TransferMode.Streamed, element.TransferMode, "TransferMode");
157 Assert.AreEqual (true, element.UnsafeConnectionNtlmAuthentication, "UnsafeConnectionNtlmAuthentication");
158 Assert.AreEqual (false, element.UseDefaultWebProxy, "UseDefaultWebProxy");
162 public void PnrpPeerResolverElement () {
163 PnrpPeerResolverElement element = GetElement<PnrpPeerResolverElement> (0);
165 Assert.AreEqual (typeof (PnrpPeerResolverBindingElement), element.BindingElementType, "BindingElementType");
166 Assert.AreEqual ("pnrpPeerResolver", element.ConfigurationElementName, "ConfigurationElementName");
170 public void PrivacyNoticeElement () {
171 PrivacyNoticeElement element = GetElement<PrivacyNoticeElement> (0);
173 Assert.AreEqual (typeof (PrivacyNoticeBindingElement), element.BindingElementType, "BindingElementType");
174 Assert.AreEqual ("privacyNoticeAt", element.ConfigurationElementName, "ConfigurationElementName");
176 Assert.AreEqual ("http://url", element.Url.OriginalString, "Url");
177 Assert.AreEqual (5, element.Version, "Version");
181 public void ReliableSessionElement () {
182 ReliableSessionElement element = GetElement<ReliableSessionElement> (0);
184 Assert.AreEqual (typeof (ReliableSessionBindingElement), element.BindingElementType, "BindingElementType");
185 Assert.AreEqual ("reliableSession", element.ConfigurationElementName, "ConfigurationElementName");
187 Assert.AreEqual (TimeSpan.Parse ("00:00:00.4000000"), element.AcknowledgementInterval, "AcknowledgementInterval");
188 Assert.AreEqual (false, element.FlowControlEnabled, "FlowControlEnabled");
189 Assert.AreEqual (new TimeSpan (0, 15, 0), element.InactivityTimeout, "InactivityTimeout");
190 Assert.AreEqual (8, element.MaxPendingChannels, "MaxPendingChannels");
191 Assert.AreEqual (16, element.MaxRetryCount, "MaxRetryCount");
192 Assert.AreEqual (16, element.MaxTransferWindowSize, "MaxTransferWindowSize");
193 Assert.AreEqual (false, element.Ordered, "Ordered");
194 Assert.AreEqual (ReliableMessagingVersion.WSReliableMessaging11, element.ReliableMessagingVersion, "ReliableMessagingVersion");
198 public void SecurityElement () {
199 SecurityElement element = GetElement<SecurityElement> (0);
201 Assert.AreEqual (typeof (SecurityBindingElement), element.BindingElementType, "BindingElementType");
202 Assert.AreEqual ("security", element.ConfigurationElementName, "ConfigurationElementName");
208 public void SslStreamSecurityElement () {
209 SslStreamSecurityElement element = GetElement<SslStreamSecurityElement> (0);
211 Assert.AreEqual (typeof (SslStreamSecurityBindingElement), element.BindingElementType, "BindingElementType");
212 Assert.AreEqual ("sslStreamSecurity", element.ConfigurationElementName, "ConfigurationElementName");
214 Assert.AreEqual (true, element.RequireClientCertificate, "RequireClientCertificate");
218 public void TransactionFlowElement () {
219 TransactionFlowElement element = GetElement<TransactionFlowElement> (0);
221 Assert.AreEqual (typeof (TransactionFlowBindingElement), element.BindingElementType, "BindingElementType");
222 Assert.AreEqual ("transactionFlow", element.ConfigurationElementName, "ConfigurationElementName");
224 Assert.AreEqual (TransactionProtocol.WSAtomicTransactionOctober2004, element.TransactionProtocol, "TransactionProtocol");
228 public void UseManagedPresentationElement () {
229 UseManagedPresentationElement element = GetElement<UseManagedPresentationElement> (0);
231 Assert.AreEqual (typeof (UseManagedPresentationBindingElement), element.BindingElementType, "BindingElementType");
232 Assert.AreEqual ("useManagedPresentation", element.ConfigurationElementName, "ConfigurationElementName");
236 public void WindowsStreamSecurityElement () {
237 WindowsStreamSecurityElement element = GetElement<WindowsStreamSecurityElement> (1);
239 Assert.AreEqual (typeof (WindowsStreamSecurityBindingElement), element.BindingElementType, "BindingElementType");
240 Assert.AreEqual ("windowsStreamSecurity", element.ConfigurationElementName, "ConfigurationElementName");
242 Assert.AreEqual (ProtectionLevel.None, element.ProtectionLevel, "ProtectionLevel");
246 public void TextMessageEncodingElement () {
247 TextMessageEncodingElement element = GetElement<TextMessageEncodingElement> (1);
249 Assert.AreEqual (typeof (TextMessageEncodingBindingElement), element.BindingElementType, "BindingElementType");
250 Assert.AreEqual ("textMessageEncoding", element.ConfigurationElementName, "ConfigurationElementName");
252 Assert.AreEqual (128, element.MaxReadPoolSize, "MaxReadPoolSize");
253 Assert.AreEqual (Encoding.UTF32, element.WriteEncoding, "WriteEncoding");
254 Assert.AreEqual (MessageVersion.Soap11WSAddressingAugust2004, element.MessageVersion, "MessageVersion");
255 Assert.AreEqual (32, element.MaxWritePoolSize, "MaxWritePoolSize");
256 Assert.AreEqual (128, element.ReaderQuotas.MaxArrayLength, "ReaderQuotas.MaxArrayLength");
257 Assert.AreEqual (128, element.ReaderQuotas.MaxBytesPerRead, "ReaderQuotas.MaxBytesPerRead");
258 Assert.AreEqual (128, element.ReaderQuotas.MaxDepth, "ReaderQuotas.MaxDepth");
259 Assert.AreEqual (128, element.ReaderQuotas.MaxNameTableCharCount, "ReaderQuotas.MaxNameTableCharCount");
260 Assert.AreEqual (128, element.ReaderQuotas.MaxStringContentLength, "ReaderQuotas.MaxStringContentLength");
264 public void MtomMessageEncodingElement () {
265 MtomMessageEncodingElement element = GetElement<MtomMessageEncodingElement> (2);
267 Assert.AreEqual (typeof (MtomMessageEncodingBindingElement), element.BindingElementType, "BindingElementType");
268 Assert.AreEqual ("mtomMessageEncoding", element.ConfigurationElementName, "ConfigurationElementName");
270 Assert.AreEqual (128, element.MaxReadPoolSize, "MaxReadPoolSize");
271 Assert.AreEqual (32, element.MaxWritePoolSize, "MaxWritePoolSize");
272 Assert.AreEqual (32768, element.MaxBufferSize, "MaxBufferSize");
273 Assert.AreEqual (Encoding.UTF32, element.WriteEncoding, "WriteEncoding");
274 Assert.AreEqual (MessageVersion.Soap11WSAddressingAugust2004, element.MessageVersion, "MessageVersion");
275 Assert.AreEqual (256, element.ReaderQuotas.MaxArrayLength, "ReaderQuotas.MaxArrayLength");
276 Assert.AreEqual (256, element.ReaderQuotas.MaxBytesPerRead, "ReaderQuotas.MaxBytesPerRead");
277 Assert.AreEqual (256, element.ReaderQuotas.MaxDepth, "ReaderQuotas.MaxDepth");
278 Assert.AreEqual (256, element.ReaderQuotas.MaxNameTableCharCount, "ReaderQuotas.MaxNameTableCharCount");
279 Assert.AreEqual (256, element.ReaderQuotas.MaxStringContentLength, "ReaderQuotas.MaxStringContentLength");
283 public void MsmqIntegrationElement () {
284 MsmqIntegrationElement element = GetElement<MsmqIntegrationElement> (2);
286 Assert.AreEqual (typeof (global::System.ServiceModel.MsmqIntegration.MsmqIntegrationBindingElement), element.BindingElementType, "BindingElementType");
287 Assert.AreEqual ("msmqIntegration", element.ConfigurationElementName, "ConfigurationElementName");
289 Assert.AreEqual (true, element.ManualAddressing, "ManualAddressing");
290 Assert.AreEqual (262144, element.MaxBufferPoolSize, "MaxBufferPoolSize");
291 Assert.AreEqual (32768, element.MaxReceivedMessageSize, "MaxReceivedMessageSize");
292 Assert.AreEqual ("http://CustomDeadLetterQueue", element.CustomDeadLetterQueue.OriginalString, "CustomDeadLetterQueue");
293 Assert.AreEqual (DeadLetterQueue.Custom, element.DeadLetterQueue, "DeadLetterQueue");
294 Assert.AreEqual (false, element.Durable, "Durable");
295 Assert.AreEqual (false, element.ExactlyOnce, "ExactlyOnce");
296 Assert.AreEqual (3, element.MaxRetryCycles, "MaxRetryCycles");
297 Assert.AreEqual (ReceiveErrorHandling.Drop, element.ReceiveErrorHandling, "ReceiveErrorHandling");
298 Assert.AreEqual (10, element.ReceiveRetryCount, "ReceiveRetryCount");
299 Assert.AreEqual (new TimeSpan (0, 15, 0), element.RetryCycleDelay, "RetryCycleDelay");
300 Assert.AreEqual (TimeSpan.Parse ("1.12:00:00"), element.TimeToLive, "TimeToLive");
301 Assert.AreEqual (true, element.UseSourceJournal, "UseSourceJournal");
302 Assert.AreEqual (true, element.UseMsmqTracing, "UseMsmqTracing");
303 Assert.AreEqual (global::System.ServiceModel.MsmqIntegration.MsmqMessageSerializationFormat.Binary, element.SerializationFormat, "SerializationFormat");
304 Assert.AreEqual (MsmqAuthenticationMode.Certificate, element.MsmqTransportSecurity.MsmqAuthenticationMode, "MsmqTransportSecurity.MsmqAuthenticationMode");
305 Assert.AreEqual (MsmqEncryptionAlgorithm.Aes, element.MsmqTransportSecurity.MsmqEncryptionAlgorithm, "MsmqTransportSecurity.MsmqEncryptionAlgorithm");
306 Assert.AreEqual (ProtectionLevel.EncryptAndSign, element.MsmqTransportSecurity.MsmqProtectionLevel, "MsmqTransportSecurity.MsmqProtectionLevel");
307 Assert.AreEqual (MsmqSecureHashAlgorithm.Sha256, element.MsmqTransportSecurity.MsmqSecureHashAlgorithm, "MsmqTransportSecurity.MsmqSecureHashAlgorithm");
311 public void MsmqTransportElement () {
312 MsmqTransportElement element = GetElement<MsmqTransportElement> (3);
314 Assert.AreEqual (typeof (MsmqTransportBindingElement), element.BindingElementType, "BindingElementType");
315 Assert.AreEqual ("msmqTransport", element.ConfigurationElementName, "ConfigurationElementName");
317 Assert.AreEqual (true, element.ManualAddressing, "ManualAddressing");
318 Assert.AreEqual (262144, element.MaxBufferPoolSize, "MaxBufferPoolSize");
319 Assert.AreEqual (262144, element.MaxReceivedMessageSize, "MaxReceivedMessageSize");
320 Assert.AreEqual ("http://CustomDeadLetterQueue", element.CustomDeadLetterQueue.OriginalString, "CustomDeadLetterQueue");
321 Assert.AreEqual (DeadLetterQueue.Custom, element.DeadLetterQueue, "DeadLetterQueue");
322 Assert.AreEqual (false, element.Durable, "Durable");
323 Assert.AreEqual (false, element.ExactlyOnce, "ExactlyOnce");
324 Assert.AreEqual (3, element.MaxRetryCycles, "MaxRetryCycles");
325 Assert.AreEqual (ReceiveErrorHandling.Drop, element.ReceiveErrorHandling, "ReceiveErrorHandling");
326 Assert.AreEqual (9, element.ReceiveRetryCount, "ReceiveRetryCount");
327 Assert.AreEqual (new TimeSpan (0, 15, 0), element.RetryCycleDelay, "RetryCycleDelay");
328 Assert.AreEqual (TimeSpan.Parse ("1.12:00:00"), element.TimeToLive, "TimeToLive");
329 Assert.AreEqual (true, element.UseSourceJournal, "UseSourceJournal");
330 Assert.AreEqual (true, element.UseMsmqTracing, "UseMsmqTracing");
331 Assert.AreEqual (MsmqAuthenticationMode.Certificate, element.MsmqTransportSecurity.MsmqAuthenticationMode, "MsmqTransportSecurity.MsmqAuthenticationMode");
332 Assert.AreEqual (MsmqEncryptionAlgorithm.Aes, element.MsmqTransportSecurity.MsmqEncryptionAlgorithm, "MsmqTransportSecurity.MsmqEncryptionAlgorithm");
333 Assert.AreEqual (ProtectionLevel.EncryptAndSign, element.MsmqTransportSecurity.MsmqProtectionLevel, "MsmqTransportSecurity.MsmqProtectionLevel");
334 Assert.AreEqual (MsmqSecureHashAlgorithm.Sha256, element.MsmqTransportSecurity.MsmqSecureHashAlgorithm, "MsmqTransportSecurity.MsmqSecureHashAlgorithm");
338 public void NamedPipeTransportElement () {
339 NamedPipeTransportElement element = GetElement<NamedPipeTransportElement> (4);
341 Assert.AreEqual (typeof (NamedPipeTransportBindingElement), element.BindingElementType, "BindingElementType");
342 Assert.AreEqual ("namedPipeTransport", element.ConfigurationElementName, "ConfigurationElementName");
344 Assert.AreEqual (true, element.ManualAddressing, "ManualAddressing");
345 Assert.AreEqual (262144, element.MaxBufferPoolSize, "MaxBufferPoolSize");
346 Assert.AreEqual (32768, element.MaxBufferSize, "MaxBufferSize");
347 Assert.AreEqual (32768, element.MaxReceivedMessageSize, "MaxReceivedMessageSize");
348 Assert.AreEqual (4096, element.ConnectionBufferSize, "ConnectionBufferSize");
349 Assert.AreEqual (HostNameComparisonMode.Exact, element.HostNameComparisonMode, "HostNameComparisonMode");
350 Assert.AreEqual (new TimeSpan (0, 0, 20), element.ChannelInitializationTimeout, "ChannelInitializationTimeout");
351 Assert.AreEqual (5, element.MaxPendingConnections, "MaxPendingConnections");
352 Assert.AreEqual (TimeSpan.Parse ("00:00:01.2000000"), element.MaxOutputDelay, "MaxOutputDelay");
353 Assert.AreEqual (3, element.MaxPendingAccepts, "MaxPendingAccepts");
354 Assert.AreEqual (TransferMode.Streamed, element.TransferMode, "MaxPendingAccepts");
356 Assert.AreEqual ("GroupName", element.ConnectionPoolSettings.GroupName, "ConnectionPoolSettings.GroupName");
357 Assert.AreEqual (new TimeSpan (0, 6, 0), element.ConnectionPoolSettings.IdleTimeout, "ConnectionPoolSettings.IdleTimeout");
358 Assert.AreEqual (20, element.ConnectionPoolSettings.MaxOutboundConnectionsPerEndpoint, "ConnectionPoolSettings.MaxOutboundConnectionsPerEndpoint");
362 public void TcpTransportElement () {
363 TcpTransportElement element = GetElement<TcpTransportElement> (5);
365 Assert.AreEqual (typeof (TcpTransportBindingElement), element.BindingElementType, "BindingElementType");
366 Assert.AreEqual ("tcpTransport", element.ConfigurationElementName, "ConfigurationElementName");
368 Assert.AreEqual (true, element.ManualAddressing, "ManualAddressing");
369 Assert.AreEqual (262144, element.MaxBufferPoolSize, "MaxBufferPoolSize");
370 Assert.AreEqual (32768, element.MaxBufferSize, "MaxBufferSize");
371 Assert.AreEqual (32768, element.MaxReceivedMessageSize, "MaxReceivedMessageSize");
372 Assert.AreEqual (4096, element.ConnectionBufferSize, "ConnectionBufferSize");
373 Assert.AreEqual (HostNameComparisonMode.Exact, element.HostNameComparisonMode, "HostNameComparisonMode");
374 Assert.AreEqual (new TimeSpan (0, 0, 15), element.ChannelInitializationTimeout, "ChannelInitializationTimeout");
375 Assert.AreEqual (20, element.MaxPendingConnections, "MaxPendingConnections");
376 Assert.AreEqual (TimeSpan.Parse ("00:00:01.2000000"), element.MaxOutputDelay, "MaxOutputDelay");
377 Assert.AreEqual (3, element.MaxPendingAccepts, "MaxPendingAccepts");
378 Assert.AreEqual (TransferMode.Streamed, element.TransferMode, "MaxPendingAccepts");
379 Assert.AreEqual (20, element.ListenBacklog, "ListenBacklog");
380 Assert.AreEqual (true, element.PortSharingEnabled, "PortSharingEnabled");
381 Assert.AreEqual (true, element.TeredoEnabled, "TeredoEnabled");
383 Assert.AreEqual ("GroupName", element.ConnectionPoolSettings.GroupName, "ConnectionPoolSettings.GroupName");
384 Assert.AreEqual (new TimeSpan (0, 15, 0), element.ConnectionPoolSettings.LeaseTimeout, "ConnectionPoolSettings.LeaseTimeout");
385 Assert.AreEqual (new TimeSpan (0, 2, 30), element.ConnectionPoolSettings.IdleTimeout, "ConnectionPoolSettings.IdleTimeout");
386 Assert.AreEqual (30, element.ConnectionPoolSettings.MaxOutboundConnectionsPerEndpoint, "ConnectionPoolSettings.MaxOutboundConnectionsPerEndpoint");
390 public void PeerTransportElement () {
391 PeerTransportElement element = GetElement<PeerTransportElement> (6);
393 Assert.AreEqual (typeof (PeerTransportBindingElement), element.BindingElementType, "BindingElementType");
394 Assert.AreEqual ("peerTransport", element.ConfigurationElementName, "ConfigurationElementName");
396 Assert.AreEqual (262144, element.MaxBufferPoolSize, "MaxBufferPoolSize");
397 Assert.AreEqual (32768, element.MaxReceivedMessageSize, "MaxReceivedMessageSize");
398 Assert.AreEqual (IPAddress.Parse ("192.168.0.1"), element.ListenIPAddress, "ListenIPAddress");
399 Assert.AreEqual (88, element.Port, "Port");
401 Assert.AreEqual (SecurityMode.Message, element.Security.Mode, "Security.Mode");
402 Assert.AreEqual (PeerTransportCredentialType.Certificate, element.Security.Transport.CredentialType, "Security.Transport.CredentialType");