@@ -77,10 +77,9 @@ void InsertDelegateCallback(List<MessageElement> elements, List<SuggestedMention
77
77
}
78
78
79
79
[ Test ]
80
- public async Task TestInsertSuggestedMention ( )
80
+ public async Task TestInsertSuggestedMentionsAndSend ( )
81
81
{
82
- var messageDraft = channel . CreateMessageDraft ( ) ;
83
- messageDraft . SetSearchForSuggestions ( true ) ;
82
+ var messageDraft = channel . CreateMessageDraft ( shouldSearchForSuggestions : true ) ;
84
83
var successReset = new ManualResetEvent ( false ) ;
85
84
var step = "user_suggestion" ;
86
85
messageDraft . OnDraftUpdated += ( elements , mentions ) =>
@@ -101,8 +100,7 @@ public async Task TestInsertSuggestedMention()
101
100
Assert . True ( elements . Any ( x => x . Text . Contains ( "Mock Usernamiski" ) ) ) ;
102
101
successReset . Set ( ) ;
103
102
break ;
104
- //TODO: to be re-enabled after Channel and Link mentions approach unification
105
- /*case "channel_suggestion":
103
+ case "channel_suggestion" :
106
104
var channelSuggestion =
107
105
mentions . FirstOrDefault ( x => x . Target is { Target : "message_draft_tests_channel" , Type : MentionType . Channel } ) ;
108
106
@@ -113,9 +111,13 @@ public async Task TestInsertSuggestedMention()
113
111
messageDraft . InsertSuggestedMention ( channelSuggestion , channelSuggestion . ReplaceTo ) ;
114
112
break ;
115
113
case "channel_inserted" :
116
- Assert.True(elements.Any(x => x.Text.Contains("MessageDraftTestingChannel")));
114
+ Assert . True ( elements . Any ( x => x . Text . Contains ( "MessageDraftTestingChannel" ) ) , "channel wasn't inserted into MD" ) ;
115
+ successReset . Set ( ) ;
116
+ break ;
117
+ case "link_inserted" :
118
+ Assert . True ( elements . Any ( x => x . MentionTarget is { Type : MentionType . Url , Target : "www.pubnub.com" } ) , "text link wasn't insterted into MD" ) ;
117
119
successReset . Set ( ) ;
118
- break;*/
120
+ break ;
119
121
default :
120
122
Assert . Fail ( "Unexpected draft update callback flow in test" ) ;
121
123
break ;
@@ -124,57 +126,36 @@ public async Task TestInsertSuggestedMention()
124
126
messageDraft . InsertText ( 0 , "maybe i'll mention @Mock" ) ;
125
127
var userInserted = successReset . WaitOne ( 5000 ) ;
126
128
Assert . True ( userInserted , "didn't receive user insertion callback" ) ;
127
-
128
- //TODO: to be re-enabled after Channel and Link mentions approach unification
129
- /*step = "channel_suggestion";
129
+
130
+ step = "channel_suggestion" ;
130
131
successReset = new ManualResetEvent ( false ) ;
131
132
messageDraft . InsertText ( 0 , "now mention #MessageDraft " ) ;
132
133
var channelInserted = successReset . WaitOne ( 5000 ) ;
133
134
Assert . True ( channelInserted , "didn't receive channel insertion callback" ) ;
134
135
136
+ step = "link_inserted" ;
137
+ successReset = new ManualResetEvent ( false ) ;
138
+ messageDraft . AddMention ( 0 , 3 , new MentionTarget ( ) { Target = "www.pubnub.com" , Type = MentionType . Url } ) ;
139
+ var linkAdded = successReset . WaitOne ( 5000 ) ;
140
+ Assert . True ( channelInserted , "didn't receive text link insertion callback" ) ;
141
+
135
142
var messageReset = new ManualResetEvent ( false ) ;
143
+ Message messageFromDraft = null ;
136
144
channel . OnMessageReceived += message =>
137
145
{
138
- Assert.True(message.ReferencedChannels.Any(x => x.Id == channel.Id), "received message doesn't contain expected referenced channel");
139
- Assert.True(message.MentionedUsers.Any(x => x.Id == dummyUser.Id), "received message doesn't contain expected mentioned user");
146
+ messageFromDraft = message ;
140
147
messageReset . Set ( ) ;
141
148
} ;
142
149
await messageDraft . Send ( ) ;
143
150
var receivedMessage = messageReset . WaitOne ( 10000 ) ;
144
- Assert.True(receivedMessage, "didn't receive message callback");*/
145
- }
146
-
147
- //TODO: to be re-enabled after Channel and Link mentions approach unification
148
- /*[Test]
149
- public async Task TestAddAndSendTextLink()
150
- {
151
- var messageDraft = channel.CreateMessageDraft();
152
- messageDraft.InsertText(0, "some text goes here");
153
- var updateReset = new ManualResetEvent(false);
154
- messageDraft.OnDraftUpdated += (elements, mentions) =>
151
+ Assert . True ( receivedMessage , "didn't receive message callback" ) ;
152
+ if ( messageFromDraft != null )
155
153
{
156
- Assert.True(elements.Any(x => x is { Text: "some", MentionTarget: {Target: "www.pubnub.com", Type: MentionType.Url} })
157
- , "updated message draft doesn't contain expected element");
158
- updateReset.Set();
159
- };
160
- messageDraft.AddMention(0, 4, new MentionTarget()
161
- {
162
- Target = "www.pubnub.com",
163
- Type = MentionType.Url
164
- });
165
- var updated = updateReset.WaitOne(3000);
166
- Assert.True(updated, "didn't receive md update callback");
167
-
168
- var messageReset = new ManualResetEvent(false);
169
- channel.OnMessageReceived += message =>
170
- {
171
- Assert.True(message.TextLinks.Any(x => x.Link == "www.pubnub.com"), "didn't find expected link in received message");
172
- messageReset.Set();
173
- };
174
- await messageDraft.Send();
175
- var received = messageReset.WaitOne(6000);
176
- Assert.True(received, "didn't receive message callback after md send");
177
- }*/
154
+ Assert . True ( messageFromDraft . TextLinks . Any ( x => x . Link == "www.pubnub.com" ) , "received message doesn't contain expected text link" ) ;
155
+ Assert . True ( messageFromDraft . ReferencedChannels . Any ( x => x . Id == channel . Id ) , "received message doesn't contain expected referenced channel" ) ;
156
+ Assert . True ( messageFromDraft . MentionedUsers . Any ( x => x . Id == dummyUser . Id ) , "received message doesn't contain expected mentioned user" ) ;
157
+ }
158
+ }
178
159
179
160
[ Test ]
180
161
public async Task TestAddAndRemoveMention ( )
0 commit comments