Skip to content

Commit 9c0d0e9

Browse files
implement WIP threads + history functionality
1 parent b75341d commit 9c0d0e9

19 files changed

+336
-175
lines changed

c-sharp-chat/PubnubChatApi/PubNubChatApi.Tests/ChannelTests.cs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,29 @@ public async Task TestLeaveChannel()
109109
Assert.False(memberships.Memberships.Any(x => x.UserId == currentChatUser.Id), "Leave failed, current user found in channel memberships");
110110
}
111111

112+
[Test]
113+
public async Task TestGetMessagesHistory()
114+
{
115+
var channel = TestUtils.AssertOperation(await chat.CreatePublicConversation());
116+
channel.OnMessageReceived += async message =>
117+
{
118+
TestUtils.AssertOperation(await message.EditMessageText("some_new_text"));
119+
};
120+
channel.Join();
121+
await Task.Delay(3500);
122+
TestUtils.AssertOperation(await channel.SendText("wololo"));
123+
124+
await Task.Delay(10000);
125+
126+
var history =
127+
TestUtils.AssertOperation(await channel.GetMessageHistory("99999999999999999", "00000000000000000", 1));
128+
129+
Assert.True(history != null, "history was null null");
130+
Assert.True(history.Count == 1, "history count was wrong");
131+
Assert.True(history[0].OriginalMessageText == "wololo", "message from history had wrong original text");
132+
Assert.True(history[0].MessageText == "some_new_text", "message from history had wrong text");
133+
}
134+
112135
[Test]
113136
public async Task TestGetMemberships()
114137
{

c-sharp-chat/PubnubChatApi/PubNubChatApi.Tests/ChatTests.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,12 +70,15 @@ public async Task TestGetCurrentUser()
7070
[Test]
7171
public async Task TestGetEventHistory()
7272
{
73-
await chat.EmitEvent(PubnubChatEventType.Custom, channel.Id, "{\"test\":\"some_nonsense\"}");
73+
var testChannel = TestUtils.AssertOperation(await chat.CreatePublicConversation());
74+
await chat.EmitEvent(PubnubChatEventType.Custom, testChannel.Id, "{\"test\":\"some_nonsense\"}");
7475

7576
await Task.Delay(5000);
7677

77-
var history = await chat.GetEventsHistory(channel.Id, "99999999999999999", "00000000000000000", 50);
78-
Assert.True(history.Events.Any(x => x.ChannelId == channel.Id));
78+
var history = TestUtils.AssertOperation(
79+
await chat.GetEventsHistory(testChannel.Id, "99999999999999999", "00000000000000000", 50));
80+
Assert.True(history.Events.Any(x => x.ChannelId == testChannel.Id && x.Payload.Contains("\"test\":\"some_nonsense\"")),
81+
"Emitted event wasn't present in events history");
7982
}
8083

8184
[Test]

c-sharp-chat/PubnubChatApi/PubNubChatApi.Tests/MembershipTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ public async Task TestUnreadMessagesCount()
170170

171171
[Test]
172172
//Test added after a specific user issue where calling membership.GetUnreadMessagesCount()
173-
//after a history fetch would throw a C-Core PNR_RX_BUFF_NOT_EMPTY error
173+
//after a history fetch would throw an exception
174174
public async Task TestUnreadCountAfterFetchHistory()
175175
{
176176
await channel.SendText("some_text");

c-sharp-chat/PubnubChatApi/PubNubChatApi.Tests/MessageTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ public async Task TestCreateThread()
281281
try
282282
{
283283
message.SetListeningForUpdates(true);
284-
var thread = TestUtils.AssertOperation(await message.CreateThread());
284+
var thread = TestUtils.AssertOperation(message.CreateThread());
285285
thread.Join();
286286
await Task.Delay(3500);
287287
await thread.SendText("thread_init_text");

c-sharp-chat/PubnubChatApi/PubNubChatApi.Tests/ThreadsTests.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public async Task TestGetThreadHistory()
4444
channel.OnMessageReceived += async message =>
4545
{
4646
message.SetListeningForUpdates(true);
47-
var thread = TestUtils.AssertOperation(await message.CreateThread());
47+
var thread = TestUtils.AssertOperation(message.CreateThread());
4848
thread.Join();
4949

5050
await Task.Delay(5000);
@@ -55,7 +55,7 @@ public async Task TestGetThreadHistory()
5555

5656
await Task.Delay(10000);
5757

58-
var history = await thread.GetThreadHistory("99999999999999999", "00000000000000000", 3);
58+
var history = TestUtils.AssertOperation(await thread.GetThreadHistory("99999999999999999", "00000000000000000", 3));
5959
Assert.True(history.Count == 3 && history.Any(x => x.MessageText == "one"));
6060
historyReadReset.Set();
6161
};
@@ -71,14 +71,14 @@ public async Task TestThreadChannelParentChannelPinning()
7171
channel.OnMessageReceived += async message =>
7272
{
7373
message.SetListeningForUpdates(true);
74-
var thread = TestUtils.AssertOperation(await message.CreateThread());
74+
var thread = TestUtils.AssertOperation(message.CreateThread());
7575
thread.Join();
7676
await thread.SendText("thread init message");
7777

7878
await Task.Delay(7000);
7979

8080
var threadMessage =
81-
(await thread.GetThreadHistory("99999999999999999", "00000000000000000", 1))[0];
81+
TestUtils.AssertOperation(await thread.GetThreadHistory("99999999999999999", "00000000000000000", 1))[0];
8282
await thread.PinMessageToParentChannel(threadMessage);
8383

8484
await Task.Delay(7000);
@@ -104,7 +104,7 @@ public async Task TestThreadChannelEmitUserMention()
104104
var mentionedReset = new ManualResetEvent(false);
105105
channel.OnMessageReceived += async message =>
106106
{
107-
var thread = TestUtils.AssertOperation(await message.CreateThread());
107+
var thread = TestUtils.AssertOperation(message.CreateThread());
108108
thread.Join();
109109
await Task.Delay(2500);
110110
user.SetListeningForMentionEvents(true);
@@ -128,7 +128,7 @@ public async Task TestThreadMessageParentChannelPinning()
128128
channel.OnMessageReceived += async message =>
129129
{
130130
message.SetListeningForUpdates(true);
131-
var thread = TestUtils.AssertOperation(await message.CreateThread());
131+
var thread = TestUtils.AssertOperation(message.CreateThread());
132132
thread.Join();
133133

134134
await Task.Delay(3500);
@@ -139,7 +139,7 @@ public async Task TestThreadMessageParentChannelPinning()
139139

140140
await Task.Delay(8000);
141141

142-
var history = await thread.GetThreadHistory("99999999999999999", "00000000000000000", 3);
142+
var history = TestUtils.AssertOperation(await thread.GetThreadHistory("99999999999999999", "00000000000000000", 3));
143143
var threadMessage = history[0];
144144
await threadMessage.PinMessageToParentChannel();
145145

@@ -166,7 +166,7 @@ public async Task TestThreadMessageUpdate()
166166
channel.OnMessageReceived += async message =>
167167
{
168168
message.SetListeningForUpdates(true);
169-
var thread = TestUtils.AssertOperation(await message.CreateThread());
169+
var thread = TestUtils.AssertOperation(message.CreateThread());
170170
thread.Join();
171171

172172
await Task.Delay(3000);
@@ -177,7 +177,7 @@ public async Task TestThreadMessageUpdate()
177177

178178
await Task.Delay(10000);
179179

180-
var history = await thread.GetThreadHistory("99999999999999999", "00000000000000000", 3);
180+
var history = TestUtils.AssertOperation(await thread.GetThreadHistory("99999999999999999", "00000000000000000", 3));
181181
var threadMessage = history[0];
182182

183183
threadMessage.SetListeningForUpdates(true);

c-sharp-chat/PubnubChatApi/PubnubChatApi/Entities/Base/ChatEntity.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,15 @@ internal ChatEntity(Chat chat)
1414
this.chat = chat;
1515
}
1616

17-
protected void SetListening(Subscription subscription, bool listen, string channelId, SubscribeCallback listener)
17+
protected void SetListening(Subscription subscription, SubscriptionOptions subscriptionOptions, bool listen, string channelId, SubscribeCallback listener)
1818
{
1919
if (listen)
2020
{
2121
if (subscription != null)
2222
{
2323
return;
2424
}
25-
subscription = chat.PubnubInstance.Channel(channelId).Subscription(SubscriptionOptions.ReceivePresenceEvents);
25+
subscription = chat.PubnubInstance.Channel(channelId).Subscription(subscriptionOptions);
2626
subscription.AddListener(listener);
2727
subscription.Subscribe<object>();
2828
}
@@ -34,11 +34,11 @@ protected void SetListening(Subscription subscription, bool listen, string chann
3434

3535
public virtual void SetListeningForUpdates(bool listen)
3636
{
37-
SetListening(updateSubscription, listen, UpdateChannelId, CreateUpdateListener());
37+
SetListening(updateSubscription, SubscriptionOptions.None, listen, UpdateChannelId, CreateUpdateListener());
3838
}
3939

4040
protected abstract SubscribeCallback CreateUpdateListener();
4141

42-
public abstract Task Resync();
42+
public abstract Task Refresh();
4343
}
4444
}

0 commit comments

Comments
 (0)