@@ -3,53 +3,59 @@ import 'package:stream_chat_persistence/src/dao/dao.dart';
|
||||
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
|
||||
|
||||
class MockChatDatabase extends Mock implements MoorChatDatabase {
|
||||
UserDao _userDao;
|
||||
UserDao? _userDao;
|
||||
|
||||
@override
|
||||
UserDao get userDao => _userDao ??= MockUserDao();
|
||||
|
||||
ChannelDao _channelDao;
|
||||
ChannelDao? _channelDao;
|
||||
|
||||
@override
|
||||
ChannelDao get channelDao => _channelDao ??= MockChannelDao();
|
||||
|
||||
MessageDao _messageDao;
|
||||
MessageDao? _messageDao;
|
||||
|
||||
@override
|
||||
MessageDao get messageDao => _messageDao ??= MockMessageDao();
|
||||
|
||||
PinnedMessageDao _pinnedMessageDao;
|
||||
PinnedMessageDao? _pinnedMessageDao;
|
||||
|
||||
@override
|
||||
PinnedMessageDao get pinnedMessageDao =>
|
||||
_pinnedMessageDao ??= MockPinnedMessageDao();
|
||||
|
||||
MemberDao _memberDao;
|
||||
MemberDao? _memberDao;
|
||||
|
||||
@override
|
||||
MemberDao get memberDao => _memberDao ??= MockMemberDao();
|
||||
|
||||
ReactionDao _reactionDao;
|
||||
ReactionDao? _reactionDao;
|
||||
|
||||
@override
|
||||
ReactionDao get reactionDao => _reactionDao ??= MockReactionDao();
|
||||
|
||||
ReadDao _readDao;
|
||||
ReadDao? _readDao;
|
||||
|
||||
@override
|
||||
ReadDao get readDao => _readDao ??= MockReadDao();
|
||||
|
||||
ChannelQueryDao _channelQueryDao;
|
||||
ChannelQueryDao? _channelQueryDao;
|
||||
|
||||
@override
|
||||
ChannelQueryDao get channelQueryDao =>
|
||||
_channelQueryDao ??= MockChannelQueryDao();
|
||||
|
||||
ConnectionEventDao _connectionEventDao;
|
||||
ConnectionEventDao? _connectionEventDao;
|
||||
|
||||
@override
|
||||
ConnectionEventDao get connectionEventDao =>
|
||||
_connectionEventDao ??= MockConnectionEventDao();
|
||||
|
||||
@override
|
||||
Future<void> flush() => Future.value();
|
||||
|
||||
@override
|
||||
Future<void> disconnect() => Future.value();
|
||||
}
|
||||
|
||||
class MockUserDao extends Mock implements UserDao {}
|
||||
|
||||
@@ -32,7 +32,7 @@ void main() {
|
||||
test('should return list of String if json data list is provided', () {
|
||||
final data = ['data1', 'data2', 'data3'];
|
||||
final res = listConverter.mapToDart(jsonEncode(data));
|
||||
expect(res.length, data.length);
|
||||
expect(res!.length, data.length);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@ import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
||||
void main() {
|
||||
ChannelDao channelDao;
|
||||
MoorChatDatabase database;
|
||||
late ChannelDao channelDao;
|
||||
late MoorChatDatabase database;
|
||||
|
||||
setUp(() {
|
||||
database = MoorChatDatabase.testable('testUserId');
|
||||
@@ -32,7 +32,8 @@ void main() {
|
||||
|
||||
// Should match the dummy channel
|
||||
final updatedChannel = await channelDao.getChannelByCid(cid);
|
||||
expect(updatedChannel.id, id);
|
||||
expect(updatedChannel, isNotNull);
|
||||
expect(updatedChannel!.id, id);
|
||||
expect(updatedChannel.cid, cid);
|
||||
expect(updatedChannel.type, type);
|
||||
});
|
||||
@@ -53,7 +54,8 @@ void main() {
|
||||
|
||||
// Should match the dummy channel
|
||||
final updatedChannel = await channelDao.getChannelByCid(cid);
|
||||
expect(updatedChannel.id, id);
|
||||
expect(updatedChannel, isNotNull);
|
||||
expect(updatedChannel!.id, id);
|
||||
expect(updatedChannel.cid, cid);
|
||||
expect(updatedChannel.type, type);
|
||||
|
||||
@@ -108,7 +110,8 @@ void main() {
|
||||
|
||||
// Should match the dummy channel
|
||||
final updatedChannel = await channelDao.getChannelByCid(cid);
|
||||
expect(updatedChannel.id, id);
|
||||
expect(updatedChannel, isNotNull);
|
||||
expect(updatedChannel!.id, id);
|
||||
expect(updatedChannel.cid, cid);
|
||||
expect(updatedChannel.type, type);
|
||||
|
||||
@@ -119,7 +122,8 @@ void main() {
|
||||
|
||||
// Should match the new channel
|
||||
final newUpdatedChannel = await channelDao.getChannelByCid(cid);
|
||||
expect(newUpdatedChannel.id, id);
|
||||
expect(newUpdatedChannel, isNotNull);
|
||||
expect(newUpdatedChannel!.id, id);
|
||||
expect(newUpdatedChannel.cid, cid);
|
||||
expect(newUpdatedChannel.type, newType);
|
||||
});
|
||||
|
||||
@@ -8,8 +8,8 @@ import 'package:test/test.dart';
|
||||
import '../utils/date_matcher.dart';
|
||||
|
||||
void main() {
|
||||
MoorChatDatabase database;
|
||||
ChannelQueryDao channelQueryDao;
|
||||
late MoorChatDatabase database;
|
||||
late ChannelQueryDao channelQueryDao;
|
||||
|
||||
setUp(() {
|
||||
database = MoorChatDatabase.testable('testUserId');
|
||||
@@ -147,7 +147,7 @@ void main() {
|
||||
// Should match lastMessageAt date
|
||||
expect(
|
||||
updatedChannel.lastMessageAt,
|
||||
isSameDateAs(insertedChannel.lastMessageAt),
|
||||
isSameDateAs(insertedChannel.lastMessageAt!),
|
||||
);
|
||||
}
|
||||
});
|
||||
@@ -160,10 +160,7 @@ void main() {
|
||||
const pagination = PaginationParams(offset: offset, limit: limit);
|
||||
|
||||
// Inserting test data for get channels
|
||||
final insertedChannels = await _insertTestDataForGetChannel(
|
||||
filter,
|
||||
count: 30,
|
||||
);
|
||||
await _insertTestDataForGetChannel(filter, count: 30);
|
||||
|
||||
// Should match with the inserted channels
|
||||
final updatedChannels = await channelQueryDao.getChannels(
|
||||
@@ -210,7 +207,7 @@ void main() {
|
||||
// Should match lastMessageAt date
|
||||
expect(
|
||||
updatedChannel.lastMessageAt,
|
||||
isSameDateAs(insertedChannel.lastMessageAt),
|
||||
isSameDateAs(insertedChannel.lastMessageAt!),
|
||||
);
|
||||
}
|
||||
});
|
||||
@@ -226,8 +223,8 @@ void main() {
|
||||
|
||||
test('should return sorted channels using custom field', () async {
|
||||
int sortComparator(ChannelModel a, ChannelModel b) {
|
||||
final aData = a.extraData['test_custom_field'] as int;
|
||||
final bData = b.extraData['test_custom_field'] as int;
|
||||
final aData = a.extraData!['test_custom_field'] as int;
|
||||
final bData = b.extraData!['test_custom_field'] as int;
|
||||
return bData.compareTo(aData);
|
||||
}
|
||||
|
||||
@@ -261,7 +258,7 @@ void main() {
|
||||
// Should match lastMessageAt date
|
||||
expect(
|
||||
updatedChannel.lastMessageAt,
|
||||
isSameDateAs(insertedChannel.lastMessageAt),
|
||||
isSameDateAs(insertedChannel.lastMessageAt!),
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -6,8 +6,8 @@ import 'package:test/test.dart';
|
||||
import '../utils/date_matcher.dart';
|
||||
|
||||
void main() {
|
||||
ConnectionEventDao eventDao;
|
||||
MoorChatDatabase database;
|
||||
late ConnectionEventDao eventDao;
|
||||
late MoorChatDatabase database;
|
||||
|
||||
setUp(() {
|
||||
database = MoorChatDatabase.testable('testUserId');
|
||||
@@ -30,7 +30,8 @@ void main() {
|
||||
|
||||
// Should match the added event
|
||||
final updatedEvent = await eventDao.connectionEvent;
|
||||
expect(updatedEvent.me.id, newEvent.me.id);
|
||||
expect(updatedEvent, isNotNull);
|
||||
expect(updatedEvent!.me!.id, newEvent.me!.id);
|
||||
expect(updatedEvent.totalUnreadCount, newEvent.totalUnreadCount);
|
||||
expect(updatedEvent.unreadChannels, newEvent.unreadChannels);
|
||||
});
|
||||
@@ -70,7 +71,8 @@ void main() {
|
||||
|
||||
// Should match the previously added event
|
||||
final fetchedEvent = await eventDao.connectionEvent;
|
||||
expect(fetchedEvent.me.id, event.me.id);
|
||||
expect(fetchedEvent, isNotNull);
|
||||
expect(fetchedEvent!.me!.id, event.me!.id);
|
||||
expect(fetchedEvent.totalUnreadCount, event.totalUnreadCount);
|
||||
expect(fetchedEvent.unreadChannels, event.unreadChannels);
|
||||
|
||||
@@ -80,7 +82,8 @@ void main() {
|
||||
|
||||
// Should match the updated event
|
||||
final fetchedNewEvent = await eventDao.connectionEvent;
|
||||
expect(fetchedNewEvent.me.id, event.me.id);
|
||||
expect(fetchedNewEvent, isNotNull);
|
||||
expect(fetchedNewEvent!.me!.id, event.me!.id);
|
||||
expect(fetchedNewEvent.totalUnreadCount, event.totalUnreadCount);
|
||||
expect(fetchedNewEvent.unreadChannels, newEvent.unreadChannels);
|
||||
});
|
||||
|
||||
@@ -8,8 +8,8 @@ import 'package:test/test.dart';
|
||||
import '../utils/date_matcher.dart';
|
||||
|
||||
void main() {
|
||||
MemberDao memberDao;
|
||||
MoorChatDatabase database;
|
||||
late MemberDao memberDao;
|
||||
late MoorChatDatabase database;
|
||||
|
||||
setUp(() {
|
||||
database = MoorChatDatabase.testable('testUserId');
|
||||
@@ -53,7 +53,7 @@ void main() {
|
||||
for (var i = 0; i < fetchedMembers.length; i++) {
|
||||
final member = memberList[i];
|
||||
final fetchedMember = fetchedMembers[i];
|
||||
expect(fetchedMember.user.id, member.user.id);
|
||||
expect(fetchedMember.user!.id, member.user!.id);
|
||||
expect(fetchedMember.banned, member.banned);
|
||||
expect(fetchedMember.shadowBanned, member.shadowBanned);
|
||||
expect(fetchedMember.createdAt, isSameDateAs(member.createdAt));
|
||||
@@ -63,7 +63,7 @@ void main() {
|
||||
expect(fetchedMember.updatedAt, isSameDateAs(member.updatedAt));
|
||||
expect(
|
||||
fetchedMember.inviteAcceptedAt,
|
||||
isSameDateAs(member.inviteAcceptedAt),
|
||||
isSameDateAs(member.inviteAcceptedAt!),
|
||||
);
|
||||
}
|
||||
});
|
||||
@@ -80,7 +80,7 @@ void main() {
|
||||
for (var i = 0; i < fetchedMembers.length; i++) {
|
||||
final member = memberList[i];
|
||||
final fetchedMember = fetchedMembers[i];
|
||||
expect(fetchedMember.user.id, member.user.id);
|
||||
expect(fetchedMember.user!.id, member.user!.id);
|
||||
expect(fetchedMember.banned, member.banned);
|
||||
expect(fetchedMember.shadowBanned, member.shadowBanned);
|
||||
expect(fetchedMember.createdAt, isSameDateAs(member.createdAt));
|
||||
@@ -90,7 +90,7 @@ void main() {
|
||||
expect(fetchedMember.updatedAt, isSameDateAs(member.updatedAt));
|
||||
expect(
|
||||
fetchedMember.inviteAcceptedAt,
|
||||
isSameDateAs(member.inviteAcceptedAt),
|
||||
isSameDateAs(member.inviteAcceptedAt!),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -118,13 +118,13 @@ void main() {
|
||||
expect(newFetchedMembers.length, fetchedMembers.length + 1);
|
||||
expect(
|
||||
newFetchedMembers
|
||||
.firstWhere((it) => it.user.id == copyMember.user.id)
|
||||
.firstWhere((it) => it.user!.id == copyMember.user!.id)
|
||||
.banned,
|
||||
true,
|
||||
);
|
||||
expect(
|
||||
newFetchedMembers
|
||||
.where((it) => it.user.id == newMember.user.id)
|
||||
.where((it) => it.user!.id == newMember.user!.id)
|
||||
.isNotEmpty,
|
||||
true,
|
||||
);
|
||||
|
||||
@@ -6,8 +6,8 @@ import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
||||
void main() {
|
||||
MessageDao messageDao;
|
||||
MoorChatDatabase database;
|
||||
late MessageDao messageDao;
|
||||
late MoorChatDatabase database;
|
||||
|
||||
setUp(() {
|
||||
database = MoorChatDatabase.testable('testUserId');
|
||||
@@ -32,7 +32,7 @@ void main() {
|
||||
shadowed: math.Random().nextBool(),
|
||||
replyCount: index,
|
||||
updatedAt: DateTime.now(),
|
||||
extraData: {'extra_test_field': 'extraTestData'},
|
||||
extraData: const {'extra_test_field': 'extraTestData'},
|
||||
text: 'Dummy text #$index',
|
||||
pinned: math.Random().nextBool(),
|
||||
pinnedAt: DateTime.now(),
|
||||
@@ -49,7 +49,7 @@ void main() {
|
||||
shadowed: math.Random().nextBool(),
|
||||
replyCount: index,
|
||||
updatedAt: DateTime.now(),
|
||||
extraData: {'extra_test_field': 'extraTestData'},
|
||||
extraData: const {'extra_test_field': 'extraTestData'},
|
||||
text: 'Dummy text #$index',
|
||||
quotedMessageId: messages[index].id,
|
||||
pinned: math.Random().nextBool(),
|
||||
@@ -69,7 +69,7 @@ void main() {
|
||||
shadowed: math.Random().nextBool(),
|
||||
replyCount: index,
|
||||
updatedAt: DateTime.now(),
|
||||
extraData: {'extra_test_field': 'extraTestData'},
|
||||
extraData: const {'extra_test_field': 'extraTestData'},
|
||||
text: 'Dummy text #$index',
|
||||
pinned: math.Random().nextBool(),
|
||||
pinnedAt: DateTime.now(),
|
||||
@@ -168,7 +168,8 @@ void main() {
|
||||
|
||||
// Fetched message id should match the inserted message id
|
||||
final fetchedMessage = await messageDao.getMessageById(id);
|
||||
expect(fetchedMessage.id, insertedMessages.first.id);
|
||||
expect(fetchedMessage, isNotNull);
|
||||
expect(fetchedMessage!.id, insertedMessages.first.id);
|
||||
});
|
||||
|
||||
test('getThreadMessages', () async {
|
||||
@@ -332,7 +333,7 @@ void main() {
|
||||
showInChannel: math.Random().nextBool(),
|
||||
replyCount: 4,
|
||||
updatedAt: DateTime.now(),
|
||||
extraData: {'extra_test_field': 'extraTestData'},
|
||||
extraData: const {'extra_test_field': 'extraTestData'},
|
||||
text: 'Dummy text #4',
|
||||
pinned: math.Random().nextBool(),
|
||||
pinnedAt: DateTime.now(),
|
||||
|
||||
@@ -6,8 +6,8 @@ import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
||||
void main() {
|
||||
PinnedMessageDao pinnedMessageDao;
|
||||
MoorChatDatabase database;
|
||||
late PinnedMessageDao pinnedMessageDao;
|
||||
late MoorChatDatabase database;
|
||||
|
||||
setUp(() {
|
||||
database = MoorChatDatabase.testable('testUserId');
|
||||
@@ -32,7 +32,7 @@ void main() {
|
||||
shadowed: math.Random().nextBool(),
|
||||
replyCount: index,
|
||||
updatedAt: DateTime.now(),
|
||||
extraData: {'extra_test_field': 'extraTestData'},
|
||||
extraData: const {'extra_test_field': 'extraTestData'},
|
||||
text: 'Dummy text #$index',
|
||||
pinned: math.Random().nextBool(),
|
||||
pinnedAt: DateTime.now(),
|
||||
@@ -49,7 +49,7 @@ void main() {
|
||||
shadowed: math.Random().nextBool(),
|
||||
replyCount: index,
|
||||
updatedAt: DateTime.now(),
|
||||
extraData: {'extra_test_field': 'extraTestData'},
|
||||
extraData: const {'extra_test_field': 'extraTestData'},
|
||||
text: 'Dummy text #$index',
|
||||
quotedMessageId: messages[index].id,
|
||||
pinned: math.Random().nextBool(),
|
||||
@@ -69,7 +69,7 @@ void main() {
|
||||
shadowed: math.Random().nextBool(),
|
||||
replyCount: index,
|
||||
updatedAt: DateTime.now(),
|
||||
extraData: {'extra_test_field': 'extraTestData'},
|
||||
extraData: const {'extra_test_field': 'extraTestData'},
|
||||
text: 'Dummy text #$index',
|
||||
pinned: math.Random().nextBool(),
|
||||
pinnedAt: DateTime.now(),
|
||||
@@ -168,7 +168,8 @@ void main() {
|
||||
|
||||
// Fetched message id should match the inserted message id
|
||||
final fetchedMessage = await pinnedMessageDao.getMessageById(id);
|
||||
expect(fetchedMessage.id, insertedMessages.first.id);
|
||||
expect(fetchedMessage, isNotNull);
|
||||
expect(fetchedMessage!.id, insertedMessages.first.id);
|
||||
});
|
||||
|
||||
test('getThreadMessages', () async {
|
||||
@@ -333,7 +334,7 @@ void main() {
|
||||
showInChannel: math.Random().nextBool(),
|
||||
replyCount: 4,
|
||||
updatedAt: DateTime.now(),
|
||||
extraData: {'extra_test_field': 'extraTestData'},
|
||||
extraData: const {'extra_test_field': 'extraTestData'},
|
||||
text: 'Dummy text #4',
|
||||
pinned: math.Random().nextBool(),
|
||||
pinnedAt: DateTime.now(),
|
||||
|
||||
@@ -6,8 +6,8 @@ import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
||||
void main() {
|
||||
ReactionDao reactionDao;
|
||||
MoorChatDatabase database;
|
||||
late ReactionDao reactionDao;
|
||||
late MoorChatDatabase database;
|
||||
|
||||
setUp(() {
|
||||
database = MoorChatDatabase.testable('testUserId');
|
||||
@@ -16,7 +16,7 @@ void main() {
|
||||
|
||||
Future<List<Reaction>> _prepareReactionData(
|
||||
String messageId, {
|
||||
String userId,
|
||||
String? userId,
|
||||
int count = 3,
|
||||
}) async {
|
||||
final users = List.generate(count, (index) => User(id: 'testUserId$index'));
|
||||
@@ -29,7 +29,7 @@ void main() {
|
||||
showInChannel: math.Random().nextBool(),
|
||||
replyCount: 3,
|
||||
updatedAt: DateTime.now(),
|
||||
extraData: {'extra_test_field': 'extraTestData'},
|
||||
extraData: const {'extra_test_field': 'extraTestData'},
|
||||
text: 'Dummy text',
|
||||
pinned: math.Random().nextBool(),
|
||||
pinnedAt: DateTime.now(),
|
||||
|
||||
@@ -6,8 +6,8 @@ import 'package:test/test.dart';
|
||||
import '../utils/date_matcher.dart';
|
||||
|
||||
void main() {
|
||||
ReadDao readDao;
|
||||
MoorChatDatabase database;
|
||||
late ReadDao readDao;
|
||||
late MoorChatDatabase database;
|
||||
|
||||
setUp(() {
|
||||
database = MoorChatDatabase.testable('testUserId');
|
||||
|
||||
@@ -6,8 +6,8 @@ import 'package:test/test.dart';
|
||||
import 'package:stream_chat/stream_chat.dart';
|
||||
|
||||
void main() {
|
||||
UserDao userDao;
|
||||
MoorChatDatabase database;
|
||||
late UserDao userDao;
|
||||
late MoorChatDatabase database;
|
||||
|
||||
setUp(() {
|
||||
database = MoorChatDatabase.testable('testUserId');
|
||||
|
||||
@@ -34,15 +34,21 @@ void main() {
|
||||
expect(channelModel.updatedAt, isSameDateAs(entity.updatedAt));
|
||||
expect(channelModel.memberCount, entity.memberCount);
|
||||
expect(channelModel.cid, entity.cid);
|
||||
expect(channelModel.lastMessageAt, isSameDateAs(entity.lastMessageAt));
|
||||
expect(channelModel.deletedAt, isSameDateAs(entity.deletedAt));
|
||||
expect(channelModel.lastMessageAt, isSameDateAs(entity.lastMessageAt!));
|
||||
expect(channelModel.deletedAt, isSameDateAs(entity.deletedAt!));
|
||||
expect(channelModel.extraData, entity.extraData);
|
||||
expect(channelModel.createdBy.id, entity.createdById);
|
||||
expect(channelModel.createdBy!.id, entity.createdById);
|
||||
});
|
||||
|
||||
test('toChannelState should map entity into ChannelState ', () {
|
||||
final members = List.generate(3, (index) => Member());
|
||||
final reads = List.generate(3, (index) => Read());
|
||||
final reads = List.generate(
|
||||
3,
|
||||
(index) => Read(
|
||||
user: User(id: 'testUserId$index'),
|
||||
lastRead: DateTime.now(),
|
||||
),
|
||||
);
|
||||
final messages = List.generate(3, (index) => Message());
|
||||
|
||||
final channelState = entity.toChannelState(
|
||||
@@ -59,7 +65,7 @@ void main() {
|
||||
expect(channelState.messages.length, messages.length);
|
||||
expect(channelState.pinnedMessages.length, messages.length);
|
||||
|
||||
final channelModel = channelState.channel;
|
||||
final channelModel = channelState.channel!;
|
||||
expect(channelModel.id, entity.id);
|
||||
expect(channelModel.config.toJson()['max_message_length'], 33);
|
||||
expect(channelModel.frozen, entity.frozen);
|
||||
@@ -67,10 +73,10 @@ void main() {
|
||||
expect(channelModel.updatedAt, isSameDateAs(entity.updatedAt));
|
||||
expect(channelModel.memberCount, entity.memberCount);
|
||||
expect(channelModel.cid, entity.cid);
|
||||
expect(channelModel.lastMessageAt, isSameDateAs(entity.lastMessageAt));
|
||||
expect(channelModel.deletedAt, isSameDateAs(entity.deletedAt));
|
||||
expect(channelModel.lastMessageAt, isSameDateAs(entity.lastMessageAt!));
|
||||
expect(channelModel.deletedAt, isSameDateAs(entity.deletedAt!));
|
||||
expect(channelModel.extraData, entity.extraData);
|
||||
expect(channelModel.createdBy.id, entity.createdById);
|
||||
expect(channelModel.createdBy!.id, entity.createdById);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -103,9 +109,9 @@ void main() {
|
||||
expect(channelEntity.updatedAt, isSameDateAs(model.updatedAt));
|
||||
expect(channelEntity.memberCount, model.memberCount);
|
||||
expect(channelEntity.cid, model.cid);
|
||||
expect(channelEntity.lastMessageAt, isSameDateAs(model.lastMessageAt));
|
||||
expect(channelEntity.deletedAt, isSameDateAs(model.deletedAt));
|
||||
expect(channelEntity.lastMessageAt, isSameDateAs(model.lastMessageAt!));
|
||||
expect(channelEntity.deletedAt, isSameDateAs(model.deletedAt!));
|
||||
expect(channelEntity.extraData, model.extraData);
|
||||
expect(channelEntity.createdById, model.createdBy.id);
|
||||
expect(channelEntity.createdById, model.createdBy!.id);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ void main() {
|
||||
);
|
||||
final event = entity.toEvent();
|
||||
expect(event, isA<Event>());
|
||||
expect(event.me.id, ownUser.id);
|
||||
expect(event.me!.id, ownUser.id);
|
||||
expect(event.totalUnreadCount, entity.totalUnreadCount);
|
||||
expect(event.unreadChannels, entity.unreadChannels);
|
||||
});
|
||||
|
||||
@@ -25,12 +25,12 @@ void main() {
|
||||
);
|
||||
final member = entity.toMember(user: user);
|
||||
expect(member, isA<Member>());
|
||||
expect(member.user.id, entity.userId);
|
||||
expect(member.user!.id, entity.userId);
|
||||
expect(member.createdAt, isSameDateAs(entity.createdAt));
|
||||
expect(member.updatedAt, isSameDateAs(entity.updatedAt));
|
||||
expect(member.role, entity.role);
|
||||
expect(member.inviteAcceptedAt, isSameDateAs(entity.inviteAcceptedAt));
|
||||
expect(member.inviteRejectedAt, isSameDateAs(entity.inviteRejectedAt));
|
||||
expect(member.inviteAcceptedAt, isSameDateAs(entity.inviteAcceptedAt!));
|
||||
expect(member.inviteRejectedAt, isSameDateAs(entity.inviteRejectedAt!));
|
||||
expect(member.invited, entity.invited);
|
||||
expect(member.banned, entity.banned);
|
||||
expect(member.shadowBanned, entity.shadowBanned);
|
||||
@@ -55,12 +55,12 @@ void main() {
|
||||
final entity = member.toEntity(cid: cid);
|
||||
expect(entity, isA<MemberEntity>());
|
||||
expect(entity.channelCid, cid);
|
||||
expect(entity.userId, member.user.id);
|
||||
expect(entity.userId, member.user!.id);
|
||||
expect(entity.createdAt, isSameDateAs(member.createdAt));
|
||||
expect(entity.updatedAt, isSameDateAs(member.updatedAt));
|
||||
expect(entity.role, member.role);
|
||||
expect(entity.inviteAcceptedAt, isSameDateAs(member.inviteAcceptedAt));
|
||||
expect(entity.inviteRejectedAt, isSameDateAs(member.inviteRejectedAt));
|
||||
expect(entity.inviteAcceptedAt, isSameDateAs(member.inviteAcceptedAt!));
|
||||
expect(entity.inviteRejectedAt, isSameDateAs(member.inviteRejectedAt!));
|
||||
expect(entity.invited, member.invited);
|
||||
expect(entity.banned, member.banned);
|
||||
expect(entity.shadowBanned, member.shadowBanned);
|
||||
|
||||
@@ -32,7 +32,7 @@ void main() {
|
||||
);
|
||||
final entity = MessageEntity(
|
||||
id: 'testMessageId',
|
||||
attachments: attachments?.map((it) => jsonEncode(it.toData()))?.toList(),
|
||||
attachments: attachments.map((it) => jsonEncode(it.toData())).toList(),
|
||||
channelCid: 'testCid',
|
||||
type: 'testType',
|
||||
parentId: 'testParentId',
|
||||
@@ -46,8 +46,9 @@ void main() {
|
||||
reactionCounts: reactions.fold(
|
||||
{},
|
||||
(prev, curr) =>
|
||||
prev..update(curr.type, (value) => value + 1, ifAbsent: () => 1),
|
||||
prev?..update(curr.type, (value) => value + 1, ifAbsent: () => 1),
|
||||
),
|
||||
mentionedUsers: const [],
|
||||
status: MessageSendingStatus.sent,
|
||||
updatedAt: DateTime.now(),
|
||||
extraData: {'extra_test_data': 'extraData'},
|
||||
@@ -82,13 +83,13 @@ void main() {
|
||||
expect(message.status, entity.status);
|
||||
expect(message.updatedAt, isSameDateAs(entity.updatedAt));
|
||||
expect(message.extraData, entity.extraData);
|
||||
expect(message.user.id, entity.userId);
|
||||
expect(message.deletedAt, isSameDateAs(entity.deletedAt));
|
||||
expect(message.user!.id, entity.userId);
|
||||
expect(message.deletedAt, isSameDateAs(entity.deletedAt!));
|
||||
expect(message.text, entity.messageText);
|
||||
expect(message.pinned, entity.pinned);
|
||||
expect(message.pinExpires, isSameDateAs(entity.pinExpires));
|
||||
expect(message.pinnedAt, isSameDateAs(entity.pinnedAt));
|
||||
expect(message.pinnedBy.id, entity.pinnedByUserId);
|
||||
expect(message.pinExpires, isSameDateAs(entity.pinExpires!));
|
||||
expect(message.pinnedAt, isSameDateAs(entity.pinnedAt!));
|
||||
expect(message.pinnedBy!.id, entity.pinnedByUserId);
|
||||
expect(message.reactionCounts, entity.reactionCounts);
|
||||
expect(message.reactionScores, entity.reactionScores);
|
||||
for (var i = 0; i < message.attachments.length; i++) {
|
||||
@@ -138,11 +139,11 @@ void main() {
|
||||
reactionCounts: reactions.fold(
|
||||
{},
|
||||
(prev, curr) =>
|
||||
prev..update(curr.type, (value) => value + 1, ifAbsent: () => 1),
|
||||
prev?..update(curr.type, (value) => value + 1, ifAbsent: () => 1),
|
||||
),
|
||||
status: MessageSendingStatus.sending,
|
||||
updatedAt: DateTime.now(),
|
||||
extraData: {'extra_test_data': 'extraData'},
|
||||
extraData: const {'extra_test_data': 'extraData'},
|
||||
user: user,
|
||||
deletedAt: DateTime.now(),
|
||||
text: 'dummy text',
|
||||
@@ -167,18 +168,18 @@ void main() {
|
||||
expect(entity.status, message.status);
|
||||
expect(entity.updatedAt, isSameDateAs(message.updatedAt));
|
||||
expect(entity.extraData, message.extraData);
|
||||
expect(entity.userId, message.user.id);
|
||||
expect(entity.deletedAt, isSameDateAs(message.deletedAt));
|
||||
expect(entity.userId, message.user!.id);
|
||||
expect(entity.deletedAt, isSameDateAs(message.deletedAt!));
|
||||
expect(entity.messageText, message.text);
|
||||
expect(entity.pinned, message.pinned);
|
||||
expect(entity.pinExpires, isSameDateAs(message.pinExpires));
|
||||
expect(entity.pinnedAt, isSameDateAs(message.pinnedAt));
|
||||
expect(entity.pinnedByUserId, message.pinnedBy.id);
|
||||
expect(entity.pinExpires, isSameDateAs(message.pinExpires!));
|
||||
expect(entity.pinnedAt, isSameDateAs(message.pinnedAt!));
|
||||
expect(entity.pinnedByUserId, message.pinnedBy!.id);
|
||||
expect(entity.reactionCounts, message.reactionCounts);
|
||||
expect(entity.reactionScores, message.reactionScores);
|
||||
expect(
|
||||
entity.attachments,
|
||||
message.attachments?.map((it) => jsonEncode(it.toData()))?.toList(),
|
||||
message.attachments.map((it) => jsonEncode(it.toData())).toList(),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ void main() {
|
||||
);
|
||||
final entity = PinnedMessageEntity(
|
||||
id: 'testMessageId',
|
||||
attachments: attachments?.map((it) => jsonEncode(it.toData()))?.toList(),
|
||||
attachments: attachments.map((it) => jsonEncode(it.toData())).toList(),
|
||||
channelCid: 'testCid',
|
||||
type: 'testType',
|
||||
parentId: 'testParentId',
|
||||
@@ -46,8 +46,9 @@ void main() {
|
||||
reactionCounts: reactions.fold(
|
||||
{},
|
||||
(prev, curr) =>
|
||||
prev..update(curr.type, (value) => value + 1, ifAbsent: () => 1),
|
||||
prev?..update(curr.type, (value) => value + 1, ifAbsent: () => 1),
|
||||
),
|
||||
mentionedUsers: [],
|
||||
status: MessageSendingStatus.sent,
|
||||
updatedAt: DateTime.now(),
|
||||
extraData: {'extra_test_data': 'extraData'},
|
||||
@@ -82,13 +83,13 @@ void main() {
|
||||
expect(message.status, entity.status);
|
||||
expect(message.updatedAt, isSameDateAs(entity.updatedAt));
|
||||
expect(message.extraData, entity.extraData);
|
||||
expect(message.user.id, entity.userId);
|
||||
expect(message.deletedAt, isSameDateAs(entity.deletedAt));
|
||||
expect(message.user!.id, entity.userId);
|
||||
expect(message.deletedAt, isSameDateAs(entity.deletedAt!));
|
||||
expect(message.text, entity.messageText);
|
||||
expect(message.pinned, entity.pinned);
|
||||
expect(message.pinExpires, isSameDateAs(entity.pinExpires));
|
||||
expect(message.pinnedAt, isSameDateAs(entity.pinnedAt));
|
||||
expect(message.pinnedBy.id, entity.pinnedByUserId);
|
||||
expect(message.pinExpires, isSameDateAs(entity.pinExpires!));
|
||||
expect(message.pinnedAt, isSameDateAs(entity.pinnedAt!));
|
||||
expect(message.pinnedBy!.id, entity.pinnedByUserId);
|
||||
expect(message.reactionCounts, entity.reactionCounts);
|
||||
expect(message.reactionScores, entity.reactionScores);
|
||||
for (var i = 0; i < message.attachments.length; i++) {
|
||||
@@ -138,11 +139,11 @@ void main() {
|
||||
reactionCounts: reactions.fold(
|
||||
{},
|
||||
(prev, curr) =>
|
||||
prev..update(curr.type, (value) => value + 1, ifAbsent: () => 1),
|
||||
prev?..update(curr.type, (value) => value + 1, ifAbsent: () => 1),
|
||||
),
|
||||
status: MessageSendingStatus.sending,
|
||||
updatedAt: DateTime.now(),
|
||||
extraData: {'extra_test_data': 'extraData'},
|
||||
extraData: const {'extra_test_data': 'extraData'},
|
||||
user: user,
|
||||
deletedAt: DateTime.now(),
|
||||
text: 'dummy text',
|
||||
@@ -167,18 +168,18 @@ void main() {
|
||||
expect(entity.status, message.status);
|
||||
expect(entity.updatedAt, isSameDateAs(message.updatedAt));
|
||||
expect(entity.extraData, message.extraData);
|
||||
expect(entity.userId, message.user.id);
|
||||
expect(entity.deletedAt, isSameDateAs(message.deletedAt));
|
||||
expect(entity.userId, message.user!.id);
|
||||
expect(entity.deletedAt, isSameDateAs(message.deletedAt!));
|
||||
expect(entity.messageText, message.text);
|
||||
expect(entity.pinned, message.pinned);
|
||||
expect(entity.pinExpires, isSameDateAs(message.pinExpires));
|
||||
expect(entity.pinnedAt, isSameDateAs(message.pinnedAt));
|
||||
expect(entity.pinnedByUserId, message.pinnedBy.id);
|
||||
expect(entity.pinExpires, isSameDateAs(message.pinExpires!));
|
||||
expect(entity.pinnedAt, isSameDateAs(message.pinnedAt!));
|
||||
expect(entity.pinnedByUserId, message.pinnedBy!.id);
|
||||
expect(entity.reactionCounts, message.reactionCounts);
|
||||
expect(entity.reactionScores, message.reactionScores);
|
||||
expect(
|
||||
entity.attachments,
|
||||
message.attachments?.map((it) => jsonEncode(it.toData()))?.toList(),
|
||||
message.attachments.map((it) => jsonEncode(it.toData())).toList(),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ void main() {
|
||||
expect(user.role, entity.role);
|
||||
expect(user.createdAt, isSameDateAs(entity.createdAt));
|
||||
expect(user.updatedAt, isSameDateAs(entity.updatedAt));
|
||||
expect(user.lastActive, isSameDateAs(entity.lastActive));
|
||||
expect(user.lastActive, isSameDateAs(entity.lastActive!));
|
||||
expect(user.online, entity.online);
|
||||
expect(user.banned, entity.banned);
|
||||
expect(user.extraData, entity.extraData);
|
||||
@@ -47,7 +47,7 @@ void main() {
|
||||
expect(entity.role, user.role);
|
||||
expect(entity.createdAt, isSameDateAs(user.createdAt));
|
||||
expect(entity.updatedAt, isSameDateAs(user.updatedAt));
|
||||
expect(entity.lastActive, isSameDateAs(user.lastActive));
|
||||
expect(entity.lastActive, isSameDateAs(user.lastActive!));
|
||||
expect(entity.online, user.online);
|
||||
expect(entity.banned, user.banned);
|
||||
expect(entity.extraData, user.extraData);
|
||||
|
||||
@@ -1,13 +1,10 @@
|
||||
import 'package:test/test.dart';
|
||||
import 'package:meta/meta.dart';
|
||||
|
||||
Matcher isSameDateAs(DateTime targetDate) =>
|
||||
_IsSameDateAs(targetDate: targetDate);
|
||||
|
||||
class _IsSameDateAs extends Matcher {
|
||||
const _IsSameDateAs({
|
||||
@required this.targetDate,
|
||||
}) : assert(targetDate != null, '');
|
||||
const _IsSameDateAs({required this.targetDate});
|
||||
|
||||
final DateTime targetDate;
|
||||
|
||||
|
||||
@@ -10,22 +10,6 @@ MoorChatDatabase _testDatabaseProvider(String userId, ConnectionMode mode) =>
|
||||
MoorChatDatabase.testable(userId);
|
||||
|
||||
void main() {
|
||||
group('client constructor', () {
|
||||
test('throws assertion error if null connectionMode is provided', () {
|
||||
expect(
|
||||
() => StreamChatPersistenceClient(connectionMode: null),
|
||||
throwsA(isA<AssertionError>()),
|
||||
);
|
||||
});
|
||||
|
||||
test('throws assertion error if null logLevel is provided', () {
|
||||
expect(
|
||||
() => StreamChatPersistenceClient(logLevel: null),
|
||||
throwsA(isA<AssertionError>()),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
group('connect', () {
|
||||
const userId = 'testUserId';
|
||||
test('successfully connects with the Database', () async {
|
||||
@@ -34,7 +18,7 @@ void main() {
|
||||
await client.connect(userId, databaseProvider: _testDatabaseProvider);
|
||||
expect(client.db, isNotNull);
|
||||
expect(client.db, isA<MoorChatDatabase>());
|
||||
expect(client.db.userId, userId);
|
||||
expect(client.db!.userId, userId);
|
||||
|
||||
addTearDown(() async {
|
||||
await client.disconnect();
|
||||
@@ -48,7 +32,7 @@ void main() {
|
||||
expect(client.db, isNotNull);
|
||||
expect(client.db, isNotNull);
|
||||
expect(client.db, isA<MoorChatDatabase>());
|
||||
expect(client.db.userId, userId);
|
||||
expect(client.db!.userId, userId);
|
||||
expect(
|
||||
() => client.connect(userId, databaseProvider: _testDatabaseProvider),
|
||||
throwsException,
|
||||
@@ -73,7 +57,7 @@ void main() {
|
||||
const userId = 'testUserId';
|
||||
final mockDatabase = MockChatDatabase();
|
||||
MoorChatDatabase _mockDatabaseProvider(_, __) => mockDatabase;
|
||||
StreamChatPersistenceClient client;
|
||||
late StreamChatPersistenceClient client;
|
||||
|
||||
setUp(() async {
|
||||
client = StreamChatPersistenceClient(logLevel: Level.ALL);
|
||||
@@ -95,12 +79,13 @@ void main() {
|
||||
});
|
||||
|
||||
test('getConnectionInfo', () async {
|
||||
final event = Event(type: 'testEvent');
|
||||
const event = Event(type: 'testEvent');
|
||||
when(() => mockDatabase.connectionEventDao.connectionEvent)
|
||||
.thenAnswer((_) async => event);
|
||||
|
||||
final fetchedEvent = await client.getConnectionInfo();
|
||||
expect(fetchedEvent.type, event.type);
|
||||
expect(fetchedEvent, isNotNull);
|
||||
expect(fetchedEvent!.type, event.type);
|
||||
verify(() => mockDatabase.connectionEventDao.connectionEvent).called(1);
|
||||
});
|
||||
|
||||
@@ -115,11 +100,9 @@ void main() {
|
||||
});
|
||||
|
||||
test('updateConnectionInfo', () async {
|
||||
final event = Event(type: 'testEvent');
|
||||
const event = Event(type: 'testEvent');
|
||||
when(() => mockDatabase.connectionEventDao.updateConnectionEvent(event))
|
||||
.thenAnswer((_) async {
|
||||
return;
|
||||
});
|
||||
.thenAnswer((_) async => 1);
|
||||
|
||||
await client.updateConnectionInfo(event);
|
||||
verify(() => mockDatabase.connectionEventDao.updateConnectionEvent(event))
|
||||
@@ -129,9 +112,7 @@ void main() {
|
||||
test('updateLastSyncAt', () async {
|
||||
final lastSync = DateTime.now();
|
||||
when(() => mockDatabase.connectionEventDao.updateLastSyncAt(lastSync))
|
||||
.thenAnswer((_) {
|
||||
return;
|
||||
});
|
||||
.thenAnswer((_) async => 1);
|
||||
|
||||
await client.updateLastSyncAt(lastSync);
|
||||
verify(() => mockDatabase.connectionEventDao.updateLastSyncAt(lastSync))
|
||||
@@ -149,13 +130,14 @@ void main() {
|
||||
});
|
||||
|
||||
test('getChannelByCid', () async {
|
||||
const cid = 'testCid';
|
||||
const cid = 'testType:testId';
|
||||
final channelModel = ChannelModel(cid: cid);
|
||||
when(() => mockDatabase.channelDao.getChannelByCid(cid))
|
||||
.thenAnswer((_) async => channelModel);
|
||||
|
||||
final fetchedChannelModel = await client.getChannelByCid(cid);
|
||||
expect(fetchedChannelModel.cid, channelModel.cid);
|
||||
expect(fetchedChannelModel, isNotNull);
|
||||
expect(fetchedChannelModel!.cid, channelModel.cid);
|
||||
verify(() => mockDatabase.channelDao.getChannelByCid(cid)).called(1);
|
||||
});
|
||||
|
||||
@@ -172,7 +154,13 @@ void main() {
|
||||
|
||||
test('getReadsByCid', () async {
|
||||
const cid = 'testCid';
|
||||
final reads = List.generate(3, (index) => Read());
|
||||
final reads = List.generate(
|
||||
3,
|
||||
(index) => Read(
|
||||
user: User(id: 'testUserId$index'),
|
||||
lastRead: DateTime.now(),
|
||||
),
|
||||
);
|
||||
when(() => mockDatabase.readDao.getReadsByCid(cid))
|
||||
.thenAnswer((_) async => reads);
|
||||
|
||||
@@ -205,10 +193,16 @@ void main() {
|
||||
});
|
||||
|
||||
test('getChannelStateByCid', () async {
|
||||
const cid = 'testCid';
|
||||
const cid = 'testType:testId';
|
||||
final messages = List.generate(3, (index) => Message());
|
||||
final members = List.generate(3, (index) => Member());
|
||||
final reads = List.generate(3, (index) => Read());
|
||||
final reads = List.generate(
|
||||
3,
|
||||
(index) => Read(
|
||||
user: User(id: 'testUserId$index'),
|
||||
lastRead: DateTime.now(),
|
||||
),
|
||||
);
|
||||
final channel = ChannelModel(cid: cid);
|
||||
|
||||
when(() => mockDatabase.memberDao.getMembersByCid(cid))
|
||||
@@ -227,7 +221,7 @@ void main() {
|
||||
expect(fetchedChannelState.pinnedMessages.length, messages.length);
|
||||
expect(fetchedChannelState.members.length, members.length);
|
||||
expect(fetchedChannelState.read.length, reads.length);
|
||||
expect(fetchedChannelState.channel.cid, channel.cid);
|
||||
expect(fetchedChannelState.channel!.cid, channel.cid);
|
||||
|
||||
verify(() => mockDatabase.memberDao.getMembersByCid(cid)).called(1);
|
||||
verify(() => mockDatabase.readDao.getReadsByCid(cid)).called(1);
|
||||
@@ -238,11 +232,17 @@ void main() {
|
||||
});
|
||||
|
||||
test('getChannelStates', () async {
|
||||
const cid = 'testCid';
|
||||
const cid = 'testType:testId';
|
||||
final channels = List.generate(3, (index) => ChannelModel(cid: cid));
|
||||
final messages = List.generate(3, (index) => Message());
|
||||
final members = List.generate(3, (index) => Member());
|
||||
final reads = List.generate(3, (index) => Read());
|
||||
final reads = List.generate(
|
||||
3,
|
||||
(index) => Read(
|
||||
user: User(id: 'testUserId$index'),
|
||||
lastRead: DateTime.now(),
|
||||
),
|
||||
);
|
||||
final channel = ChannelModel(cid: cid);
|
||||
final channelStates = channels
|
||||
.map(
|
||||
@@ -279,7 +279,7 @@ void main() {
|
||||
expect(fetched.messages.length, original.messages.length);
|
||||
expect(fetched.pinnedMessages.length, original.pinnedMessages.length);
|
||||
expect(fetched.read.length, original.read.length);
|
||||
expect(fetched.channel.cid, original.channel.cid);
|
||||
expect(fetched.channel!.cid, original.channel!.cid);
|
||||
}
|
||||
|
||||
verify(() => mockDatabase.channelQueryDao.getChannels()).called(1);
|
||||
@@ -296,9 +296,7 @@ void main() {
|
||||
const cids = <String>[];
|
||||
when(() =>
|
||||
mockDatabase.channelQueryDao.updateChannelQueries(filter, cids))
|
||||
.thenAnswer((realInvocation) async {
|
||||
return;
|
||||
});
|
||||
.thenAnswer((_) => Future.value());
|
||||
|
||||
await client.updateChannelQueries(filter, cids);
|
||||
verify(() =>
|
||||
@@ -309,9 +307,7 @@ void main() {
|
||||
test('deleteMessageById', () async {
|
||||
const messageId = 'testMessageId';
|
||||
when(() => mockDatabase.messageDao.deleteMessageByIds([messageId]))
|
||||
.thenAnswer((_) async {
|
||||
return;
|
||||
});
|
||||
.thenAnswer((_) async => 1);
|
||||
|
||||
await client.deleteMessageById(messageId);
|
||||
verify(() => mockDatabase.messageDao.deleteMessageByIds([messageId]))
|
||||
@@ -321,9 +317,7 @@ void main() {
|
||||
test('deletePinnedMessageById', () async {
|
||||
const messageId = 'testMessageId';
|
||||
when(() => mockDatabase.pinnedMessageDao.deleteMessageByIds([messageId]))
|
||||
.thenAnswer((_) async {
|
||||
return;
|
||||
});
|
||||
.thenAnswer((_) async => 1);
|
||||
|
||||
await client.deletePinnedMessageById(messageId);
|
||||
verify(() =>
|
||||
@@ -334,9 +328,7 @@ void main() {
|
||||
test('deleteMessageByIds', () async {
|
||||
const messageIds = <String>[];
|
||||
when(() => mockDatabase.messageDao.deleteMessageByIds(messageIds))
|
||||
.thenAnswer((_) async {
|
||||
return;
|
||||
});
|
||||
.thenAnswer((_) async => 1);
|
||||
|
||||
await client.deleteMessageByIds(messageIds);
|
||||
verify(() => mockDatabase.messageDao.deleteMessageByIds(messageIds))
|
||||
@@ -346,9 +338,7 @@ void main() {
|
||||
test('deletePinnedMessageByIds', () async {
|
||||
const messageIds = <String>[];
|
||||
when(() => mockDatabase.pinnedMessageDao.deleteMessageByIds(messageIds))
|
||||
.thenAnswer((_) async {
|
||||
return;
|
||||
});
|
||||
.thenAnswer((_) async => 1);
|
||||
|
||||
await client.deletePinnedMessageByIds(messageIds);
|
||||
verify(() => mockDatabase.pinnedMessageDao.deleteMessageByIds(messageIds))
|
||||
@@ -358,9 +348,7 @@ void main() {
|
||||
test('deleteMessageByCid', () async {
|
||||
const cid = 'testCid';
|
||||
when(() => mockDatabase.messageDao.deleteMessageByCids([cid]))
|
||||
.thenAnswer((_) async {
|
||||
return;
|
||||
});
|
||||
.thenAnswer((_) async => 1);
|
||||
|
||||
await client.deleteMessageByCid(cid);
|
||||
verify(() => mockDatabase.messageDao.deleteMessageByCids([cid]))
|
||||
@@ -370,9 +358,7 @@ void main() {
|
||||
test('deletePinnedMessageByCid', () async {
|
||||
const cid = 'testCid';
|
||||
when(() => mockDatabase.pinnedMessageDao.deleteMessageByCids([cid]))
|
||||
.thenAnswer((_) async {
|
||||
return;
|
||||
});
|
||||
.thenAnswer((_) async => 1);
|
||||
|
||||
await client.deletePinnedMessageByCid(cid);
|
||||
verify(() => mockDatabase.pinnedMessageDao.deleteMessageByCids([cid]))
|
||||
@@ -382,9 +368,7 @@ void main() {
|
||||
test('deleteMessageByCids', () async {
|
||||
const cids = <String>[];
|
||||
when(() => mockDatabase.messageDao.deleteMessageByCids(cids))
|
||||
.thenAnswer((_) async {
|
||||
return;
|
||||
});
|
||||
.thenAnswer((_) async => 1);
|
||||
|
||||
await client.deleteMessageByCids(cids);
|
||||
verify(() => mockDatabase.messageDao.deleteMessageByCids(cids)).called(1);
|
||||
@@ -393,9 +377,7 @@ void main() {
|
||||
test('deletePinnedMessageByCids', () async {
|
||||
const cids = <String>[];
|
||||
when(() => mockDatabase.pinnedMessageDao.deleteMessageByCids(cids))
|
||||
.thenAnswer((_) async {
|
||||
return;
|
||||
});
|
||||
.thenAnswer((_) async => 1);
|
||||
|
||||
await client.deletePinnedMessageByCids(cids);
|
||||
verify(() => mockDatabase.pinnedMessageDao.deleteMessageByCids(cids))
|
||||
@@ -405,9 +387,7 @@ void main() {
|
||||
test('deleteChannels', () async {
|
||||
const cids = <String>[];
|
||||
when(() => mockDatabase.channelDao.deleteChannelByCids(cids))
|
||||
.thenAnswer((_) async {
|
||||
return;
|
||||
});
|
||||
.thenAnswer((_) async => 1);
|
||||
|
||||
await client.deleteChannels(cids);
|
||||
verify(() => mockDatabase.channelDao.deleteChannelByCids(cids)).called(1);
|
||||
@@ -417,9 +397,7 @@ void main() {
|
||||
const cid = 'testCid';
|
||||
final messages = List.generate(3, (index) => Message());
|
||||
when(() => mockDatabase.messageDao.updateMessages(cid, messages))
|
||||
.thenAnswer((_) async {
|
||||
return;
|
||||
});
|
||||
.thenAnswer((_) => Future.value());
|
||||
|
||||
await client.updateMessages(cid, messages);
|
||||
verify(() => mockDatabase.messageDao.updateMessages(cid, messages))
|
||||
@@ -430,9 +408,7 @@ void main() {
|
||||
const cid = 'testCid';
|
||||
final messages = List.generate(3, (index) => Message());
|
||||
when(() => mockDatabase.pinnedMessageDao.updateMessages(cid, messages))
|
||||
.thenAnswer((_) async {
|
||||
return;
|
||||
});
|
||||
.thenAnswer((_) => Future.value());
|
||||
|
||||
await client.updatePinnedMessages(cid, messages);
|
||||
verify(() => mockDatabase.pinnedMessageDao.updateMessages(cid, messages))
|
||||
@@ -445,14 +421,12 @@ void main() {
|
||||
List.generate(3, (index) => Message(parentId: 'testParentId$index'));
|
||||
final threads = messages.fold<Map<String, List<Message>>>(
|
||||
{},
|
||||
(prev, curr) {
|
||||
return prev
|
||||
..update(
|
||||
curr.parentId,
|
||||
(value) => [...value, curr],
|
||||
ifAbsent: () => [],
|
||||
);
|
||||
},
|
||||
(prev, curr) => prev
|
||||
..update(
|
||||
curr.parentId!,
|
||||
(value) => [...value, curr],
|
||||
ifAbsent: () => [],
|
||||
),
|
||||
);
|
||||
when(() => mockDatabase.messageDao.getThreadMessages(cid))
|
||||
.thenAnswer((realInvocation) async => messages);
|
||||
@@ -469,11 +443,10 @@ void main() {
|
||||
});
|
||||
|
||||
test('updateChannels', () async {
|
||||
final channels = List.generate(3, (index) => ChannelModel());
|
||||
const cid = 'testType:testId';
|
||||
final channels = List.generate(3, (index) => ChannelModel(cid: cid));
|
||||
when(() => mockDatabase.channelDao.updateChannels(channels))
|
||||
.thenAnswer((_) async {
|
||||
return;
|
||||
});
|
||||
.thenAnswer((_) => Future.value());
|
||||
|
||||
await client.updateChannels(channels);
|
||||
verify(() => mockDatabase.channelDao.updateChannels(channels)).called(1);
|
||||
@@ -483,9 +456,7 @@ void main() {
|
||||
const cid = 'testCid';
|
||||
final members = List.generate(3, (index) => Member());
|
||||
when(() => mockDatabase.memberDao.updateMembers(cid, members))
|
||||
.thenAnswer((_) async {
|
||||
return;
|
||||
});
|
||||
.thenAnswer((_) => Future.value());
|
||||
|
||||
await client.updateMembers(cid, members);
|
||||
verify(() => mockDatabase.memberDao.updateMembers(cid, members))
|
||||
@@ -494,32 +465,36 @@ void main() {
|
||||
|
||||
test('updateReads', () async {
|
||||
const cid = 'testCid';
|
||||
final reads = List.generate(3, (index) => Read());
|
||||
final reads = List.generate(
|
||||
3,
|
||||
(index) => Read(
|
||||
user: User(id: 'testUserId$index'),
|
||||
lastRead: DateTime.now(),
|
||||
),
|
||||
);
|
||||
when(() => mockDatabase.readDao.updateReads(cid, reads))
|
||||
.thenAnswer((_) async {
|
||||
return;
|
||||
});
|
||||
.thenAnswer((_) => Future.value());
|
||||
|
||||
await client.updateReads(cid, reads);
|
||||
verify(() => mockDatabase.readDao.updateReads(cid, reads)).called(1);
|
||||
});
|
||||
|
||||
test('updateUsers', () async {
|
||||
final users = List.generate(3, (index) => User());
|
||||
when(() => mockDatabase.userDao.updateUsers(users)).thenAnswer((_) async {
|
||||
return;
|
||||
});
|
||||
final users = List.generate(3, (index) => User(id: 'testUserId$index'));
|
||||
when(() => mockDatabase.userDao.updateUsers(users))
|
||||
.thenAnswer((_) => Future.value());
|
||||
|
||||
await client.updateUsers(users);
|
||||
verify(() => mockDatabase.userDao.updateUsers(users)).called(1);
|
||||
});
|
||||
|
||||
test('updateReactions', () async {
|
||||
final reactions = List.generate(3, (index) => Reaction());
|
||||
final reactions = List.generate(
|
||||
3,
|
||||
(index) => Reaction(type: 'testType$index'),
|
||||
);
|
||||
when(() => mockDatabase.reactionDao.updateReactions(reactions))
|
||||
.thenAnswer((_) async {
|
||||
return;
|
||||
});
|
||||
.thenAnswer((_) => Future.value());
|
||||
|
||||
await client.updateReactions(reactions);
|
||||
verify(() => mockDatabase.reactionDao.updateReactions(reactions))
|
||||
@@ -530,9 +505,7 @@ void main() {
|
||||
final messageIds = <String>[];
|
||||
when(() =>
|
||||
mockDatabase.reactionDao.deleteReactionsByMessageIds(messageIds))
|
||||
.thenAnswer((_) async {
|
||||
return;
|
||||
});
|
||||
.thenAnswer((_) => Future.value());
|
||||
|
||||
await client.deleteReactionsByMessageId(messageIds);
|
||||
verify(() =>
|
||||
@@ -543,9 +516,7 @@ void main() {
|
||||
test('deleteMembersByCids', () async {
|
||||
final cids = <String>[];
|
||||
when(() => mockDatabase.memberDao.deleteMemberByCids(cids))
|
||||
.thenAnswer((_) async {
|
||||
return;
|
||||
});
|
||||
.thenAnswer((_) => Future.value());
|
||||
|
||||
await client.deleteMembersByCids(cids);
|
||||
verify(() => mockDatabase.memberDao.deleteMemberByCids(cids)).called(1);
|
||||
|
||||
Reference in New Issue
Block a user