1 //
2 // CustomPeerResolverServiceTest.cs
3 //
4 // Author:
5 //	 Marcos Cobena (marcoscobena@gmail.com)
6 //
7 // Copyright 2007 Marcos Cobena (http://www.youcannoteatbits.org/)
8 //
9 #if !MOBILE && !XAMMAC_4_5
10 using System;
11 using System.Collections.Generic;
12 using System.ServiceModel;
13 using System.ServiceModel.Description;
14 using System.ServiceModel.PeerResolvers;
15 using System.Text;
16 
17 using NUnit.Framework;
18 
19 using MonoTests.Helpers;
20 
21 namespace MonoTests.System.ServiceModel.PeerResolvers
22 {
23 	[TestFixture]
24 	public class CustomPeerResolverServiceTest
25 	{
26 		private CustomPeerResolverService cprs;
27 
28 		[SetUp]
SetUp()29 		protected void SetUp ()
30 		{
31 			var port = NetworkHelpers.FindFreePort ();
32 			Environment.SetEnvironmentVariable ("MONO_CUSTOMPEERRESOLVERSERVICE_PORT", port.ToString ());
33 			cprs = new CustomPeerResolverService ();
34 		}
35 
36 		[Test]
37 		[Category ("NotWorking")]
CloseTest()38 		public void CloseTest ()
39 		{
40 			cprs.Open ();
41 			cprs.Close ();
42 		}
43 
44 		[Test]
45 		[ExpectedException (typeof (InvalidOperationException))]
CloseTest1()46 		public void CloseTest1 ()
47 		{
48 			cprs.Close ();
49 		}
50 
51 		[Test]
52 		[ExpectedException (typeof (InvalidOperationException))]
GetServiceSettingsTest()53 		public void GetServiceSettingsTest ()
54 		{
55 			ServiceSettingsResponseInfo ssri;
56 
57 			ssri = cprs.GetServiceSettings ();
58 		}
59 
60 		[Test]
61 		[ExpectedException (typeof (ArgumentException))]
OpenTest1()62 		public void OpenTest1 ()
63 		{
64 			cprs.CleanupInterval = TimeSpan.Zero;
65 			cprs.Open ();
66 		}
67 
68 		[Test]
69 		[ExpectedException (typeof (ArgumentException))]
OpenTest2()70 		public void OpenTest2 ()
71 		{
72 			cprs.RefreshInterval = TimeSpan.Zero;
73 			cprs.Open ();
74 		}
75 
76 		[Test]
77 		[ExpectedException (typeof (ArgumentException))]
OpenTest3()78 		public void OpenTest3 ()
79 		{
80 			cprs.CleanupInterval = TimeSpan.Zero;
81 			cprs.RefreshInterval = TimeSpan.Zero;
82 			cprs.Open ();
83 		}
84 
85 		[Test]
86 		[ExpectedException (typeof (InvalidOperationException))]
87 		[Category ("NotWorking")]
OpenTest4()88 		public void OpenTest4 ()
89 		{
90 			cprs.Open ();
91 			try {
92 				cprs.Open ();
93 			} finally {
94 				cprs.Close ();
95 			}
96 		}
97 
98 		[Test]
99 		[ExpectedException (typeof (ArgumentException))]
RefreshTest()100 		public void RefreshTest ()
101 		{
102 			cprs.Refresh (null);
103 		}
104 
105 		[Test]
106 		[ExpectedException (typeof (InvalidOperationException))]
RefreshTest1()107 		public void RefreshTest1 ()
108 		{
109 			cprs.Refresh (new RefreshInfo ());
110 		}
111 
112 		//[Test]
113 		//public void RefreshTest2 ()
114 		//{
115 		//	cprs.Open ();
116 		//	cprs.Refresh(new RefreshInfo ("foo", new Guid ()));
117 		//}
118 
119 		[Test]
120 		[ExpectedException (typeof( ArgumentException))]
RegisterTest()121 		public void RegisterTest ()
122 		{
123 			cprs.Register (null);
124 		}
125 
126 		[Test]
127 		[ExpectedException (typeof (InvalidOperationException))]
RegisterTest1()128 		public void RegisterTest1 ()
129 		{
130 			cprs.Register (new RegisterInfo ());
131 		}
132 
133 		//[Test]
134 		//public void RegisterTest2 ()
135 		//{
136 		//	cprs.Open ();
137 		//	cprs.Register(new RegisterInfo ());
138 		//}
139 
140 		[Test]
141 		[ExpectedException (typeof (ArgumentException))]
ResolveTest()142 		public void ResolveTest ()
143 		{
144 			cprs.Resolve (null);
145 		}
146 
147 		[Test]
148 		[ExpectedException (typeof (InvalidOperationException))]
ResolveTest1()149 		public void ResolveTest1 ()
150 		{
151 			cprs.Resolve (new ResolveInfo ());
152 		}
153 
154 		//[Test]
155 		//public void ResolveTest2 ()
156 		//{
157 		//	cprs.Open ();
158 		//	cprs.Resolve (new ResolveInfo ());
159 		//}
160 
161 		[Test]
162 		[ExpectedException (typeof (ArgumentException))]
UnregisterTest()163 		public void UnregisterTest ()
164 		{
165 			cprs.Unregister (null);
166 		}
167 
168 		[Test]
169 		[ExpectedException (typeof (InvalidOperationException))]
UnregisterTest1()170 		public void UnregisterTest1 ()
171 		{
172 			cprs.Unregister (new UnregisterInfo ());
173 		}
174 
175 		//[Test]
176 		//public void UnregisterTest2 ()
177 		//{
178 		//	cprs.Open ();
179 		//	cprs.Unregister (new UnregisterInfo ());
180 		//}
181 
182 		[Test]
183 		[ExpectedException (typeof (ArgumentException))]
UpdateTest()184 		public void UpdateTest ()
185 		{
186 			cprs.Update (null);
187 		}
188 
189 		[Test]
190 		[ExpectedException (typeof (InvalidOperationException))]
UpdateTest1()191 		public void UpdateTest1 ()
192 		{
193 			cprs.Update (new UpdateInfo ());
194 		}
195 
196 		//[Test]
197 		//public void UpdateTest2 ()
198 		//{
199 		//	cprs.Open ();
200 		//	cprs.Update (new UpdateInfo ());
201 		//}
202 
203 		[Test]
Contract()204 		public void Contract ()
205 		{
206 			var cd = ContractDescription.GetContract (typeof (IPeerResolverContract));
207 			Assert.IsNull (cd.CallbackContractType, "#1");
208 			Assert.AreEqual (typeof (IPeerResolverContract), cd.ContractType, "#2");
209 			Assert.AreEqual (SessionMode.Allowed, cd.SessionMode, "#3");
210 		}
211 	}
212 }
213 #endif
214