forked from status-im/status-go
-
Notifications
You must be signed in to change notification settings - Fork 0
/
messenger_response_test.go
71 lines (54 loc) · 1.89 KB
/
messenger_response_test.go
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
package protocol
import (
"testing"
"github.com/stretchr/testify/require"
"github.com/status-im/status-go/protocol/common"
"github.com/status-im/status-go/protocol/encryption/multidevice"
)
func TestMessengerResponseMergeChats(t *testing.T) {
chat1 := &Chat{ID: "1"}
modifiedChat1 := &Chat{ID: "1", Name: "name"}
chat2 := &Chat{ID: "3"}
response1 := &MessengerResponse{}
response1.AddChat(chat1)
response2 := &MessengerResponse{}
response2.AddChats([]*Chat{modifiedChat1, chat2})
require.NoError(t, response1.Merge(response2))
require.Len(t, response1.Chats(), 2)
require.Equal(t, modifiedChat1, response1.chats[modifiedChat1.ID])
require.Equal(t, chat2, response1.chats[chat2.ID])
}
func TestMessengerResponseMergeMessages(t *testing.T) {
message1 := &common.Message{ID: "1"}
modifiedMessage1 := &common.Message{ID: "1", From: "name"}
message2 := &common.Message{ID: "3"}
response1 := &MessengerResponse{
Messages: []*common.Message{message1},
}
response2 := &MessengerResponse{
Messages: []*common.Message{modifiedMessage1, message2},
}
require.NoError(t, response1.Merge(response2))
require.Len(t, response1.Messages, 2)
require.Equal(t, modifiedMessage1, response1.Messages[0])
require.Equal(t, message2, response1.Messages[1])
}
func TestMessengerResponseMergeNotImplemented(t *testing.T) {
response1 := &MessengerResponse{}
response2 := &MessengerResponse{
Contacts: []*Contact{&Contact{}},
}
require.Error(t, response1.Merge(response2))
response2 = &MessengerResponse{
Installations: []*multidevice.Installation{&multidevice.Installation{}},
}
require.Error(t, response1.Merge(response2))
response2 = &MessengerResponse{
EmojiReactions: []*EmojiReaction{&EmojiReaction{}},
}
require.Error(t, response1.Merge(response2))
response2 = &MessengerResponse{
Invitations: []*GroupChatInvitation{&GroupChatInvitation{}},
}
require.Error(t, response1.Merge(response2))
}