1 // 2 // NetMsmqBindingTest.cs 3 // 4 // Author: 5 // Atsushi Enomoto <atsushi@ximian.com> 6 // 7 // Copyright (C) 2007 Novell, Inc. http://www.novell.com 8 // 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: 16 // 17 // The above copyright notice and this permission notice shall be 18 // included in all copies or substantial portions of the Software. 19 // 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. 27 // 28 #if !MOBILE && !XAMMAC_4_5 29 using System; 30 using System.Collections.ObjectModel; 31 using System.Net.Security; 32 using System.ServiceModel; 33 using System.ServiceModel.Channels; 34 using System.ServiceModel.Security; 35 using NUnit.Framework; 36 37 namespace MonoTests.System.ServiceModel 38 { 39 [TestFixture] 40 public class NetMsmqBindingTest 41 { 42 [Test] DefaultValues()43 public void DefaultValues () 44 { 45 NetMsmqBinding b = new NetMsmqBinding (); 46 Assert.AreEqual (EnvelopeVersion.Soap12, b.EnvelopeVersion, "#1"); 47 Assert.AreEqual (0x80000, b.MaxBufferPoolSize, "#2"); 48 Assert.AreEqual (QueueTransferProtocol.Native, b.QueueTransferProtocol, "#2"); 49 Assert.IsNotNull (b.ReaderQuotas, "#3"); 50 Assert.IsFalse (b.UseActiveDirectory, "#4"); 51 52 Assert.IsNull (b.CustomDeadLetterQueue, "#5"); 53 Assert.AreEqual (DeadLetterQueue.System, b.DeadLetterQueue, "#6"); 54 Assert.IsTrue (b.Durable, "#7"); 55 Assert.IsTrue (b.ExactlyOnce, "#8"); 56 Assert.AreEqual (0x10000, b.MaxReceivedMessageSize, "#9"); 57 Assert.AreEqual (2, b.MaxRetryCycles, "#10"); 58 Assert.AreEqual (ReceiveErrorHandling.Fault, b.ReceiveErrorHandling, "#11"); 59 Assert.AreEqual (5, b.ReceiveRetryCount, "#12"); 60 // hmm, it is documented as 10 minutes but ... 61 Assert.AreEqual (TimeSpan.FromMinutes (30), b.RetryCycleDelay, "#13"); 62 Assert.AreEqual ("net.msmq", b.Scheme, "#14"); 63 Assert.AreEqual (TimeSpan.FromDays (1), b.TimeToLive, "#15"); 64 Assert.IsFalse (b.UseMsmqTracing, "#16"); 65 Assert.IsFalse (b.UseSourceJournal, "#17"); 66 } 67 68 /* 69 [Test] 70 [ExpectedException (typeof (InvalidOperationException))] 71 public void DefaultValueSecurityModeMessageError () 72 { 73 NetMsmqBinding b = new NetMsmqBinding (BasicHttpSecurityMode.Message); 74 // "BasicHttp binding requires that NetMsmqBinding.Security.Message.ClientCredentialType be equivalent to the BasicHttpMessageCredentialType.Certificate credential type for secure messages. Select Transport or TransportWithMessageCredential security for UserName credentials." 75 b.CreateBindingElements (); 76 } 77 */ 78 79 [Test] CreateBindingElements()80 public void CreateBindingElements () 81 { 82 BindingElementCollection bl = new NetMsmqBinding ().CreateBindingElements (); 83 Assert.AreEqual (2, bl.Count, "#1"); 84 Assert.IsTrue (bl [0] is BinaryMessageEncodingBindingElement, "#2"); 85 Assert.IsTrue (bl [1] is MsmqTransportBindingElement, "#3"); 86 } 87 88 /* 89 [Test] 90 public void MessageEncoding () 91 { 92 NetMsmqBinding b = new NetMsmqBinding (); 93 foreach (BindingElement be in b.CreateBindingElements ()) { 94 MessageEncodingBindingElement mbe = 95 be as MessageEncodingBindingElement; 96 if (mbe != null) { 97 MessageEncoderFactory f = mbe.CreateMessageEncoderFactory (); 98 MessageEncoder e = f.Encoder; 99 100 Assert.AreEqual (typeof (TextMessageEncodingBindingElement), mbe.GetType (), "#1-1"); 101 Assert.AreEqual (MessageVersion.Soap11, f.MessageVersion, "#2-1"); 102 Assert.AreEqual ("text/xml; charset=utf-8", e.ContentType, "#3-1"); 103 Assert.AreEqual ("text/xml", e.MediaType, "#3-2"); 104 return; 105 } 106 } 107 Assert.Fail ("No message encodiing binding element."); 108 } 109 */ 110 } 111 } 112 #endif