1 // -----------------------------------------------------------------------
\r
2 // Copyright (c) Microsoft Corporation. All rights reserved.
\r
3 // -----------------------------------------------------------------------
\r
5 using System.UnitTesting;
\r
6 using Microsoft.VisualStudio.TestTools.UnitTesting;
\r
9 using System.Runtime.Serialization;
\r
12 namespace System.ComponentModel.Composition
\r
15 public class CardinalityMismatchExceptionTests
\r
18 public void Constructor1_ShouldSetMessagePropertyToDefault()
\r
20 var exception = new ImportCardinalityMismatchException();
\r
22 ExceptionAssert.HasDefaultMessage(exception);
\r
26 public void Constructor2_NullAsMessageArgument_ShouldSetMessagePropertyToDefault()
\r
28 var exception = new ImportCardinalityMismatchException((string)null);
\r
30 ExceptionAssert.HasDefaultMessage(exception);
\r
34 public void Constructor3_NullAsMessageArgument_ShouldSetMessagePropertyToDefault()
\r
36 var exception = new ImportCardinalityMismatchException((string)null, new Exception());
\r
38 ExceptionAssert.HasDefaultMessage(exception);
\r
42 public void Constructor2_ValueAsMessageArgument_ShouldSetMessageProperty()
\r
44 var expectations = Expectations.GetExceptionMessages();
\r
46 foreach (var e in expectations)
\r
48 var exception = new ImportCardinalityMismatchException(e);
\r
50 Assert.AreEqual(e, exception.Message);
\r
55 public void Constructor3_ValueAsMessageArgument_ShouldSetMessageProperty()
\r
57 var expectations = Expectations.GetExceptionMessages();
\r
59 foreach (var e in expectations)
\r
61 var exception = new ImportCardinalityMismatchException(e, new Exception());
\r
63 Assert.AreEqual(e, exception.Message);
\r
68 public void Constructor1_ShouldSetInnerExceptionPropertyToNull()
\r
70 var exception = new ImportCardinalityMismatchException();
\r
72 Assert.IsNull(exception.InnerException);
\r
76 public void Constructor2_ShouldSetInnerExceptionPropertyToNull()
\r
78 var exception = new ImportCardinalityMismatchException("Message");
\r
80 Assert.IsNull(exception.InnerException);
\r
84 public void Constructor3_NullAsInnerExceptionArgument_ShouldSetInnerExceptionPropertyToNull()
\r
86 var exception = new ImportCardinalityMismatchException("Message", (Exception)null);
\r
88 Assert.IsNull(exception.InnerException);
\r
92 public void Constructor3_ValueAsInnerExceptionArgument_ShouldSetInnerExceptionProperty()
\r
94 var expectations = Expectations.GetInnerExceptions();
\r
96 foreach (var e in expectations)
\r
98 var exception = new ImportCardinalityMismatchException("Message", e);
\r
100 Assert.AreSame(e, exception.InnerException);
\r
107 public void Constructor4_NullAsInfoArgument_ShouldThrowArgumentNull()
\r
109 var context = new StreamingContext();
\r
111 ExceptionAssert.ThrowsArgument<ArgumentNullException>("info", () =>
\r
113 SerializationTestServices.Create<ImportCardinalityMismatchException>((SerializationInfo)null, context);
\r
118 public void InnerException_CanBeSerialized()
\r
120 var expectations = Expectations.GetInnerExceptionsWithNull();
\r
122 foreach (var e in expectations)
\r
124 var exception = CreateCardinalityMismatchException(e);
\r
126 var result = SerializationTestServices.RoundTrip(exception);
\r
128 ExtendedAssert.IsInstanceOfSameType(exception.InnerException, result.InnerException);
\r
133 public void Message_CanBeSerialized()
\r
135 var expectations = Expectations.GetExceptionMessages();
\r
137 foreach (var e in expectations)
\r
139 var exception = CreateCardinalityMismatchException(e);
\r
141 var result = SerializationTestServices.RoundTrip(exception);
\r
143 Assert.AreEqual(exception.Message, result.Message);
\r
149 private static ImportCardinalityMismatchException CreateCardinalityMismatchException()
\r
151 return CreateCardinalityMismatchException((string)null, (Exception)null);
\r
154 private static ImportCardinalityMismatchException CreateCardinalityMismatchException(string message)
\r
156 return CreateCardinalityMismatchException(message, (Exception)null);
\r
159 private static ImportCardinalityMismatchException CreateCardinalityMismatchException(Exception innerException)
\r
161 return CreateCardinalityMismatchException((string)null, innerException);
\r
164 private static ImportCardinalityMismatchException CreateCardinalityMismatchException(string message, Exception innerException)
\r
166 return new ImportCardinalityMismatchException(message, innerException);
\r