Skip to content

Commit b3f1194

Browse files
committed
Don't use '[ExpectedException]' in MVVM tests
1 parent 2b42d13 commit b3f1194

File tree

7 files changed

+24
-41
lines changed

7 files changed

+24
-41
lines changed

tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ObservableGroup.cs

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -118,39 +118,34 @@ public void Test_ObservableGroup_IReadOnlyObservableGroup_ShouldReturnExpectedVa
118118
}
119119

120120
[TestMethod]
121-
[ExpectedException(typeof(ArgumentNullException))]
122121
public void Test_ObservableGroup_Ctor_NullKey()
123122
{
124-
_ = new ObservableGroup<string, int>((string)null!);
123+
_ = Assert.ThrowsExactly<ArgumentNullException>(() => _ = new ObservableGroup<string, int>((string)null!));
125124
}
126125

127126
[TestMethod]
128-
[ExpectedException(typeof(ArgumentNullException))]
129127
public void Test_ObservableGroup_Ctor_NullGroup()
130128
{
131-
_ = new ObservableGroup<string, int>((IGrouping<string, int>)null!);
129+
_ = Assert.ThrowsExactly<ArgumentNullException>(() => _ = new ObservableGroup<string, int>((IGrouping<string, int>)null!));
132130
}
133131

134132
[TestMethod]
135-
[ExpectedException(typeof(ArgumentNullException))]
136133
public void Test_ObservableGroup_Ctor_NullKeyWithNotNullElements()
137134
{
138-
_ = new ObservableGroup<string, int>(null!, new int[0]);
135+
_ = Assert.ThrowsExactly<ArgumentNullException>(() => _ = new ObservableGroup<string, int>(null!, []));
139136
}
140137

141138
[TestMethod]
142-
[ExpectedException(typeof(ArgumentNullException))]
143139
public void Test_ObservableGroup_Ctor_NotNullKeyWithNullElements()
144140
{
145-
_ = new ObservableGroup<string, int>("A", null!);
141+
_ = Assert.ThrowsExactly<ArgumentNullException>(() => _ = new ObservableGroup<string, int>("A", null!));
146142
}
147143

148144
[TestMethod]
149-
[ExpectedException(typeof(ArgumentNullException))]
150145
public void Test_ObservableGroup_Ctor_NullKeySetter()
151146
{
152147
ObservableGroup<string, int> group = new("A");
153148

154-
group.Key = null!;
149+
_ = Assert.ThrowsExactly<ArgumentNullException>(() => group.Key = null!);
155150
}
156151
}

tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ObservableGroupedCollection.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,8 @@ public void Test_ObservableGroupedCollection_Ctor_WithGroups_ShouldHaveExpectedV
4141
}
4242

4343
[TestMethod]
44-
[ExpectedException(typeof(ArgumentNullException))]
4544
public void Test_ObservableGroupedCollection_Ctor_NullCollection()
4645
{
47-
_ = new ObservableGroupedCollection<string, int>(null!);
46+
_ = Assert.ThrowsExactly<ArgumentNullException>(() => _ = new ObservableGroupedCollection<string, int>(null!));
4847
}
4948
}

tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ObservableGroupedCollectionExtensions.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,13 @@ public void Test_ObservableGroupedCollectionExtensions_FirstGroupByKey_WhenGroup
2929
}
3030

3131
[TestMethod]
32-
[ExpectedException(typeof(InvalidOperationException))]
3332
public void Test_ObservableGroupedCollectionExtensions_FirstGroupByKey_WhenGroupDoesNotExist_ShouldThrow()
3433
{
3534
ObservableGroupedCollection<string, int> groupedCollection = new();
3635

3736
_ = groupedCollection.AddGroup("A", new[] { 23 });
3837

39-
_ = groupedCollection.FirstGroupByKey("I do not exist");
38+
_ = Assert.ThrowsExactly<InvalidOperationException>(() => _ = groupedCollection.FirstGroupByKey("I do not exist"));
4039
}
4140

4241
[TestMethod]
@@ -84,7 +83,6 @@ public void Test_ObservableGroupedCollectionExtensions_FirstGroupByKey_WhenGroup
8483
[TestMethod]
8584
[DataRow(-1)]
8685
[DataRow(3)]
87-
[ExpectedException(typeof(ArgumentOutOfRangeException))]
8886
public void Test_ObservableGroupedCollectionExtensions_FirstGroupByKey_WhenGroupExistsAndIndexOutOfRange_ShouldReturnThrow(int index)
8987
{
9088
ObservableGroupedCollection<string, int> groupedCollection = new();
@@ -93,7 +91,7 @@ public void Test_ObservableGroupedCollectionExtensions_FirstGroupByKey_WhenGroup
9391
_ = groupedCollection.AddGroup("B", new[] { 10, 11, 12 });
9492
_ = groupedCollection.AddGroup("B", new[] { 42 });
9593

96-
_ = groupedCollection.FirstGroupByKey("B")[index];
94+
_ = Assert.ThrowsExactly<ArgumentOutOfRangeException>(() => _ = groupedCollection.FirstGroupByKey("B")[index]);
9795
}
9896

9997
[TestMethod]

tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ReadOnlyObservableGroup.cs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -131,23 +131,20 @@ public void Test_ReadOnlyObservableGroup_IReadOnlyObservableGroup_ShouldReturnEx
131131
}
132132

133133
[TestMethod]
134-
[ExpectedException(typeof(ArgumentNullException))]
135134
public void Test_ReadOnlyObservableGroup_Ctor_NullKeyWithNotNullElements()
136135
{
137-
_ = new ReadOnlyObservableGroup<string, int>(null!, new ObservableCollection<int>());
136+
_ = Assert.ThrowsExactly<ArgumentNullException>(() => _ = new ReadOnlyObservableGroup<string, int>(null!, new ObservableCollection<int>()));
138137
}
139138

140139
[TestMethod]
141-
[ExpectedException(typeof(ArgumentNullException))]
142140
public void Test_ReadOnlyObservableGroup_Ctor_NotNullKeyWithNullElements()
143141
{
144-
_ = new ReadOnlyObservableGroup<string, int>("A", null!);
142+
_ = Assert.ThrowsExactly<ArgumentNullException>(() => _ = new ReadOnlyObservableGroup<string, int>("A", null!));
145143
}
146144

147145
[TestMethod]
148-
[ExpectedException(typeof(ArgumentNullException))]
149146
public void Test_ReadOnlyObservableGroup_Ctor_NullGroup()
150147
{
151-
_ = new ReadOnlyObservableGroup<string, int>(null!);
148+
_ = Assert.ThrowsExactly<ArgumentNullException>(() => _ = new ReadOnlyObservableGroup<string, int>(null!));
152149
}
153150
}

tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ReadOnlyObservableGroupedCollection.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -470,16 +470,14 @@ private static bool IsReplaceEventValid(NotifyCollectionChangedEventArgs args, I
470470
private static bool IsResetEventValid(NotifyCollectionChangedEventArgs args) => args.Action == NotifyCollectionChangedAction.Reset && args.NewItems == null && args.OldItems == null;
471471

472472
[TestMethod]
473-
[ExpectedException(typeof(ArgumentNullException))]
474473
public void Test_ReadOnlyObservableGroupedCollection_Ctor_NullCollectionWithObservableGroups()
475474
{
476-
_ = new ReadOnlyObservableGroupedCollection<string, int>((ObservableCollection<ObservableGroup<string, int>>)null!);
475+
_ = Assert.ThrowsExactly<ArgumentNullException>(() => _ = new ReadOnlyObservableGroupedCollection<string, int>((ObservableCollection<ObservableGroup<string, int>>)null!));
477476
}
478477

479478
[TestMethod]
480-
[ExpectedException(typeof(ArgumentNullException))]
481479
public void Test_ReadOnlyObservableGroupedCollection_Ctor_NullCollectionWithReadOnlyObservableGroups()
482480
{
483-
_ = new ReadOnlyObservableGroupedCollection<string, int>((ObservableCollection<ReadOnlyObservableGroup<string, int>>)null!);
481+
_ = Assert.ThrowsExactly<ArgumentNullException>(() => _ = new ReadOnlyObservableGroupedCollection<string, int>((ObservableCollection<ReadOnlyObservableGroup<string, int>>)null!));
484482
}
485483
}

tests/CommunityToolkit.Mvvm.UnitTests/Test_Messenger.Observables.cs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,23 +80,20 @@ public void Test_Messenger_CreateObservable_WithToken(Type type)
8080
}
8181

8282
[TestMethod]
83-
[ExpectedException(typeof(ArgumentNullException))]
8483
public void Test_Messenger_CreateObservable_NullMessenger()
8584
{
86-
_ = IMessengerExtensions.CreateObservable<MessageA>(null!);
85+
_ = Assert.ThrowsExactly<ArgumentNullException>(() => _ = IMessengerExtensions.CreateObservable<MessageA>(null!));
8786
}
8887

8988
[TestMethod]
90-
[ExpectedException(typeof(ArgumentNullException))]
9189
public void Test_Messenger_CreateObservable_WithToken_NullMessenger()
9290
{
93-
_ = IMessengerExtensions.CreateObservable<MessageA, string>(null!, "Hello");
91+
_ = Assert.ThrowsExactly<ArgumentNullException>(() => _ = IMessengerExtensions.CreateObservable<MessageA, string>(null!, "Hello"));
9492
}
9593

9694
[TestMethod]
97-
[ExpectedException(typeof(ArgumentNullException))]
9895
public void Test_Messenger_CreateObservable_WithToken_NullToken()
9996
{
100-
_ = IMessengerExtensions.CreateObservable<MessageA, string>(new WeakReferenceMessenger(), null!);
97+
_ = Assert.ThrowsExactly<ArgumentNullException>(() => _ = IMessengerExtensions.CreateObservable<MessageA, string>(new WeakReferenceMessenger(), null!));
10198
}
10299
}

tests/CommunityToolkit.Mvvm.UnitTests/Test_Messenger.Request.cs

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ void Receive(object recipient, NumberRequestMessage m)
4545
[TestMethod]
4646
[DataRow(typeof(StrongReferenceMessenger))]
4747
[DataRow(typeof(WeakReferenceMessenger))]
48-
[ExpectedException(typeof(InvalidOperationException))]
4948
public void Test_Messenger_RequestMessage_Fail_NoReply(Type type)
5049
{
5150
IMessenger? messenger = (IMessenger)Activator.CreateInstance(type)!;
@@ -54,13 +53,12 @@ public void Test_Messenger_RequestMessage_Fail_NoReply(Type type)
5453

5554
Assert.IsFalse(message.HasReceivedResponse);
5655

57-
_ = message.Response;
56+
_ = Assert.ThrowsExactly<InvalidOperationException>(() => _ = message.Response);
5857
}
5958

6059
[TestMethod]
6160
[DataRow(typeof(StrongReferenceMessenger))]
6261
[DataRow(typeof(WeakReferenceMessenger))]
63-
[ExpectedException(typeof(InvalidOperationException))]
6462
public void Test_Messenger_RequestMessage_Fail_MultipleReplies(Type type)
6563
{
6664
IMessenger? messenger = (IMessenger)Activator.CreateInstance(type)!;
@@ -74,7 +72,7 @@ static void Receive(object recipient, NumberRequestMessage m)
7472

7573
messenger.Register<NumberRequestMessage>(recipient, Receive);
7674

77-
int result = messenger.Send<NumberRequestMessage>();
75+
_ = Assert.ThrowsExactly<InvalidOperationException>(() => _ = messenger.Send<NumberRequestMessage>());
7876

7977
GC.KeepAlive(recipient);
8078
}
@@ -145,7 +143,6 @@ void Receive(object recipient, AsyncNumberRequestMessage m)
145143
[TestMethod]
146144
[DataRow(typeof(StrongReferenceMessenger))]
147145
[DataRow(typeof(WeakReferenceMessenger))]
148-
[ExpectedException(typeof(InvalidOperationException))]
149146
public async Task Test_Messenger_AsyncRequestMessage_Fail_NoReply(Type type)
150147
{
151148
IMessenger? messenger = (IMessenger)Activator.CreateInstance(type)!;
@@ -154,13 +151,12 @@ public async Task Test_Messenger_AsyncRequestMessage_Fail_NoReply(Type type)
154151

155152
Assert.IsFalse(message.HasReceivedResponse);
156153

157-
_ = await message.Response;
154+
_ = await Assert.ThrowsExactlyAsync<InvalidOperationException>(async () => _ = await message.Response);
158155
}
159156

160157
[TestMethod]
161158
[DataRow(typeof(StrongReferenceMessenger))]
162159
[DataRow(typeof(WeakReferenceMessenger))]
163-
[ExpectedException(typeof(InvalidOperationException))]
164160
public async Task Test_Messenger_AsyncRequestMessage_Fail_MultipleReplies(Type type)
165161
{
166162
IMessenger? messenger = (IMessenger)Activator.CreateInstance(type)!;
@@ -174,9 +170,12 @@ static void Receive(object recipient, AsyncNumberRequestMessage m)
174170

175171
messenger.Register<AsyncNumberRequestMessage>(recipient, Receive);
176172

177-
int result = await messenger.Send<AsyncNumberRequestMessage>();
173+
_ = Assert.ThrowsExactly<InvalidOperationException>(async () =>
174+
{
175+
_ = await messenger.Send<AsyncNumberRequestMessage>();
178176

179-
GC.KeepAlive(recipient);
177+
GC.KeepAlive(recipient);
178+
});
180179
}
181180

182181
public class AsyncNumberRequestMessage : AsyncRequestMessage<int>

0 commit comments

Comments
 (0)