1 // -----------------------------------------------------------------------
\r
2 // Copyright (c) Microsoft Corporation. All rights reserved.
\r
3 // -----------------------------------------------------------------------
\r
5 using System.ComponentModel.Composition;
\r
6 using System.Collections.Generic;
\r
7 using System.UnitTesting;
\r
8 using Microsoft.VisualStudio.TestTools.UnitTesting;
\r
11 using System.Runtime.Serialization;
\r
14 namespace Microsoft.Internal
\r
17 public class AssumesTests
\r
20 public void NotNullOfT_NullAsValueArgument_ShouldThrowInternalErrorException()
\r
24 Assumes.NotNull<string>((string)null);
\r
29 public void NotNullOfT1T2_NullAsValue1Argument_ShouldThrowInternalErrorException()
\r
33 Assumes.NotNull<string, string>((string)null, "Value");
\r
38 public void NotNullOfT1T2_NullAsValue2Argument_ShouldThrowInternalErrorException()
\r
42 Assumes.NotNull<string, string>("Value", (string)null);
\r
47 public void NotNullOfT1T2_NullAsValue1ArgumentAndValue2Argument_ShouldThrowInternalErrorException()
\r
51 Assumes.NotNull<string, string>((string)null, (string)null);
\r
56 public void NotNullOfT1T2T3_NullAsValue1Argument_ShouldThrowInternalErrorException()
\r
60 Assumes.NotNull<string, string, string>((string)null, "Value", "Value");
\r
65 public void NotNullOfT1T2T3_NullAsValue2Argument_ShouldThrowInternalErrorException()
\r
69 Assumes.NotNull<string, string, string>("Value", (string)null, "Value");
\r
74 public void NotNullOfT1T2T3_NullAsValue3Argument_ShouldThrowInternalErrorException()
\r
78 Assumes.NotNull<string, string, string>("Value", "Value", (string)null);
\r
83 public void NotNullOfT1T2T3_NullAsValue1ArgumentAndValue2Argument_ShouldThrowInternalErrorException()
\r
87 Assumes.NotNull<string, string, string>((string)null, (string)null, "Value");
\r
92 public void NotNullOfT1T2T3_NullAsValue1ArgumentAnd3_ShouldThrowInternalErrorException()
\r
96 Assumes.NotNull<string, string, string>((string)null, "Value", (string)null);
\r
101 public void NotNullOfT1T2T3_NullAsValue2ArgumentAndValue3Argument_ShouldThrowInternalErrorException()
\r
105 Assumes.NotNull<string, string, string>("Value", (string)null, (string)null);
\r
110 public void NotNullOfT_ValueAsValueArgument_ShouldNotThrow()
\r
112 Assumes.NotNull<string>("Value");
\r
116 public void NotNullOfT1T2_ValueAsValue1ArgumentAndValue2Argument_ShouldNotThrow()
\r
118 Assumes.NotNull<string, string>("Value", "Value");
\r
122 public void NotNullOfT1T2T3_ValueAsValue1ArgumentAndValue2ArgumentAndValue3Argument_ShouldNotThrow()
\r
124 Assumes.NotNull<string, string, string>("Value", "Value", "Value");
\r
128 public void NullOfT_NullAsValueArgument_ShouldNotThrow()
\r
130 Assumes.Null<string>((string)null);
\r
134 public void NullOfT_ValueAsValueArgument_ShouldThrowInternalErrorException()
\r
138 Assumes.Null<string>("Value");
\r
143 public void NotNullOrEmpty_NullAsValueArgument_ShouldThrowInternalErrorException()
\r
147 Assumes.NotNullOrEmpty((string)null);
\r
152 public void NotNullOrEmpty_EmptyAsValueArgument_ShouldThrowInternalErrorException()
\r
156 Assumes.NotNullOrEmpty("");
\r
161 public void NotNullOrEmpty_ValueAsValueArgument_ShouldNotThrow()
\r
163 var expectations = new List<string>();
\r
164 expectations.Add(" ");
\r
165 expectations.Add(" ");
\r
166 expectations.Add(" ");
\r
167 expectations.Add("Value");
\r
169 foreach (var e in expectations)
\r
171 Assumes.NotNullOrEmpty(e);
\r
176 public void IsTrue1_FalseAsConditionArgument_ShouldThrowInternalErrorException()
\r
180 Assumes.IsTrue(false);
\r
185 public void IsTrue2_FalseAsConditionArgument_ShouldThrowInternalErrorException()
\r
189 Assumes.IsTrue(false, "Message");
\r
194 public void IsTrue1_TrueAsConditionArgument_ShouldNotThrow()
\r
196 Assumes.IsTrue(true);
\r
200 public void IsTrue2_TrueAsConditionArgument_ShouldNotThrow()
\r
202 Assumes.IsTrue(true, "Message");
\r
206 public void IsFalse1_TrueAsConditionArgument_ShouldThrowInternalErrorException()
\r
210 Assumes.IsFalse(true);
\r
215 public void IsFalse1_FalseAsConditionArgument_ShouldNotThrow()
\r
217 Assumes.IsFalse(false);
\r
221 public void NotReachable_ShouldAlwaysThrow()
\r
225 Assumes.NotReachable<object>();
\r
230 public void Fail_ShouldThrowInternalErrorException()
\r
232 var expectations = Expectations.GetExceptionMessages();
\r
234 foreach (var e in expectations)
\r
243 private static void Throws(Action action)
\r
250 catch (Exception ex)
\r
252 Type exceptionType = ex.GetType();
\r
254 // The exception should not be a
\r
255 // publicily catchable exception
\r
256 Assert.IsFalse(exceptionType.IsVisible);
\r
263 public void Message_CanBeSerialized()
\r
265 var expectations = Expectations.GetExceptionMessages();
\r
267 foreach (var e in expectations)
\r
269 var exception = CreateInternalErrorException(e);
\r
271 var result = SerializationTestServices.RoundTrip(exception);
\r
273 Assert.AreEqual(exception.Message, result.Message);
\r
279 private static Exception CreateInternalErrorException()
\r
281 return CreateInternalErrorException((string)null);
\r
284 private static Exception CreateInternalErrorException(string message)
\r
286 Exception exception = null;
\r
290 Assumes.Fail(message);
\r
292 catch (Exception ex)
\r
297 Assert.IsNotNull(exception);
\r