1 //
2 // Test.Mono.Messaging.RabbitMQ
3 //
4 // Authors:
5 //	  Michael Barker (mike@middlesoft.co.uk)
6 //
7 // (C) 2008 Michael Barker
8 //
9 
10 //
11 // Permission is hereby granted, free of charge, to any person obtaining
12 // a copy of this software and associated documentation files (the
13 // "Software"), to deal in the Software without restriction, including
14 // without limitation the rights to use, copy, modify, merge, publish,
15 // distribute, sublicense, and/or sell copies of the Software, and to
16 // permit persons to whom the Software is furnished to do so, subject to
17 // the following conditions:
18 //
19 // The above copyright notice and this permission notice shall be
20 // included in all copies or substantial portions of the Software.
21 //
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 //
30 
31 using System;
32 using System.Messaging;
33 
34 namespace MonoTests.System.Messaging
35 {
36 	public class MQUtil
37 	{
CreateQueueName()38 		public static string CreateQueueName ()
39 		{
40 			string testServer = Environment.GetEnvironmentVariable ("MONO_TEST_RABBITMQ_SERVER");
41 			if (testServer == null)
42 			{
43 				testServer = @".\private$";
44 			}
45 
46 			return testServer + @"\" + Guid.NewGuid ().ToString ();
47 		}
48 
GetQueue(string path)49 		public static MessageQueue GetQueue (string path)
50 		{
51 			return GetQueue (path, false);
52 		}
53 
GetQueue()54 		public static MessageQueue GetQueue ()
55 		{
56 			return GetQueue (CreateQueueName ());
57 		}
58 
GetQueue(string path, bool isTransactional)59 		public static MessageQueue GetQueue (string path, bool isTransactional)
60 		{
61 			return GetQueue (path, isTransactional,
62 			                 new BinaryMessageFormatter ());
63 		}
64 
GetQueue(string path, IMessageFormatter formatter)65 		public static MessageQueue GetQueue (string path, IMessageFormatter formatter)
66 		{
67 			return GetQueue (path, false, formatter);
68 		}
69 
GetQueue(string path, bool isTransactional, IMessageFormatter formatter)70 		public static MessageQueue GetQueue (string path, bool isTransactional,
71 		                                     IMessageFormatter formatter)
72 		{
73 			MessageQueue q;
74 			if (MessageQueue.Exists (path)) {
75 				q = new MessageQueue (path);
76 			} else {
77 				q = MessageQueue.Create (path, isTransactional);
78 			}
79 			q.Formatter = formatter;
80 			return q;
81 		}
82 	}
83 }
84