- Notifications
You must be signed in to change notification settings - Fork 324
/
Copy pathTest_ArgumentNullException.Messaging.cs
131 lines (101 loc) · 6.04 KB
/
Test_ArgumentNullException.Messaging.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
usingSystem;
usingSystem.Threading;
usingSystem.Threading.Tasks;
usingCommunityToolkit.Mvvm.Messaging;
usingCommunityToolkit.Mvvm.Messaging.Messages;
usingMicrosoft.VisualStudio.TestTools.UnitTesting;
namespaceCommunityToolkit.Mvvm.UnitTests;
publicpartialclassTest_ArgumentNullException
{
[TestMethod]
[DataRow(typeof(StrongReferenceMessenger))]
[DataRow(typeof(WeakReferenceMessenger))]
publicvoidTest_ArgumentNullException_Messenger(Typetype)
{
IMessengermessenger=(IMessenger)Activator.CreateInstance(type)!;
Assert(()=>messenger.IsRegistered<DummyMessage,int>(recipient:null!,42),"recipient");
Assert(()=>messenger.IsRegistered<DummyMessage,string>(newobject(),null!),"token");
Assert(()=>messenger.Register<object,DummyMessage,string>(recipient:null!,"",(r,m)=>{}),"recipient");
Assert(()=>messenger.Register<object,DummyMessage,string>(newobject(),null!,(r,m)=>{}),"token");
Assert(()=>messenger.Register<object,DummyMessage,string>(newobject(),"",handler:null!),"handler");
Assert(()=>messenger.UnregisterAll(recipient:null!),"recipient");
Assert(()=>messenger.UnregisterAll(recipient:null!,""),"recipient");
Assert(()=>messenger.UnregisterAll<string>(newobject(),token:null!),"token");
Assert(()=>messenger.Unregister<DummyMessage,string>(recipient:null!,""),"recipient");
Assert(()=>messenger.Unregister<DummyMessage,string>(newobject(),token:null!),"token");
Assert(()=>messenger.Send<DummyMessage,string>(message:null!,""),"message");
Assert(()=>messenger.Send<DummyMessage,string>(newDummyMessage(),token:null!),"token");
}
[TestMethod]
[DataRow(typeof(StrongReferenceMessenger))]
[DataRow(typeof(WeakReferenceMessenger))]
publicvoidTest_ArgumentNullException_MessengerExtensions(Typetype)
{
IMessengermessenger=(IMessenger)Activator.CreateInstance(type)!;
Assert(()=>((IMessenger)null!).IsRegistered<DummyMessage>(newobject()),"messenger");
Assert(()=>messenger.IsRegistered<DummyMessage>(recipient:null!),"recipient");
Assert(()=>((IMessenger)null!).RegisterAll(newobject()),"messenger");
Assert(()=>messenger.RegisterAll(recipient:null!),"recipient");
Assert(()=>((IMessenger)null!).RegisterAll(newobject(),""),"messenger");
Assert(()=>messenger.RegisterAll(recipient:null!,""),"recipient");
Assert(()=>messenger.RegisterAll<string>(newobject(),token:null!),"token");
Assert(()=>((IMessenger)null!).Register(newRecipient()),"messenger");
Assert(()=>messenger.Register<DummyMessage>(recipient:null!),"recipient");
Assert(()=>((IMessenger)null!).Register(newRecipient(),""),"messenger");
Assert(()=>messenger.Register<DummyMessage,string>(recipient:null!,""),"recipient");
Assert(()=>messenger.Register<DummyMessage,string>(newRecipient(),token:null!),"token");
Assert(()=>((IMessenger)null!).Register<DummyMessage>(newobject(),(r,m)=>{}),"messenger");
Assert(()=>messenger.Register<DummyMessage>(recipient:null!,(r,m)=>{}),"recipient");
Assert(()=>messenger.Register<DummyMessage>(newobject(),handler:null!),"handler");
Assert(()=>((IMessenger)null!).Register<Recipient,DummyMessage>(newRecipient(),(r,m)=>{}),"messenger");
Assert(()=>messenger.Register<Recipient,DummyMessage>(recipient:null!,(r,m)=>{}),"recipient");
Assert(()=>messenger.Register<Recipient,DummyMessage>(newRecipient(),handler:null!),"handler");
Assert(()=>((IMessenger)null!).Register<DummyMessage,string>(newRecipient(),"",(r,m)=>{}),"messenger");
Assert(()=>messenger.Register<DummyMessage,string>(recipient:null!,"",(r,m)=>{}),"recipient");
Assert(()=>messenger.Register<DummyMessage,string>(newRecipient(),token:null!,handler:null!),"token");
Assert(()=>messenger.Register<DummyMessage,string>(newRecipient(),"",handler:null!),"handler");
Assert(()=>((IMessenger)null!).Unregister<DummyMessage>(newRecipient()),"messenger");
Assert(()=>messenger.Unregister<DummyMessage>(recipient:null!),"recipient");
Assert(()=>((IMessenger)null!).Send<DummyMessage>(),"messenger");
Assert(()=>((IMessenger)null!).Send(newDummyMessage()),"messenger");
Assert(()=>messenger.Send<DummyMessage>(message:null!),"message");
Assert(()=>((IMessenger)null!).Send<DummyMessage,string>(""),"messenger");
Assert(()=>messenger.Send<DummyMessage,string>(token:null!),"token");
}
[TestMethod]
publicvoidTest_ArgumentNullException_AsyncCollectionRequestMessage()
{
AsyncCollectionRequestMessage<int>message=new();
Assert(()=>message.Reply(response:(Task<int>)null!),"response");
Assert(()=>message.Reply(response:(Func<CancellationToken,Task<int>>)null!),"response");
}
[TestMethod]
publicvoidTest_ArgumentNullException_AsyncRequestMessage()
{
AsyncRequestMessage<int>message=new();
Assert(()=>message.Reply(response:null!),"response");
}
[TestMethod]
publicvoidTest_ArgumentNullException_PropertyChangedMessage()
{
Assert(()=>newPropertyChangedMessage<int>(sender:null!,"",0,1),"sender");
}
[TestMethod]
publicvoidTest_ArgumentNullException_RequestMessage()
{
Assert(()=>_=(int)(RequestMessage<int>)null!,"message");
}
internalclassDummyMessage
{
}
internalclassRecipient:IRecipient<DummyMessage>
{
publicvoidReceive(DummyMessagemessage)
{
thrownewNotImplementedException();
}
}
}