add chat_persistence_client_test.dart

This commit is contained in:
Sahil Kumar
2021-06-03 20:04:32 +05:30
parent 1626d7432c
commit 63d391ba7a
@@ -0,0 +1,191 @@
import 'package:stream_chat/src/core/api/requests.dart';
import 'package:stream_chat/src/core/models/channel_model.dart';
import 'package:stream_chat/src/core/models/channel_state.dart';
import 'package:stream_chat/src/core/models/event.dart';
import 'package:stream_chat/src/core/models/filter.dart';
import 'package:stream_chat/src/core/models/member.dart';
import 'package:stream_chat/src/core/models/message.dart';
import 'package:stream_chat/src/core/models/reaction.dart';
import 'package:stream_chat/src/core/models/read.dart';
import 'package:stream_chat/src/core/models/user.dart';
import 'package:stream_chat/src/db/chat_persistence_client.dart';
import 'package:test/test.dart';
class TestPersistenceClient extends ChatPersistenceClient {
@override
Future<void> connect(String userId) => throw UnimplementedError();
@override
Future<void> deleteChannels(List<String> cids) => throw UnimplementedError();
@override
Future<void> deleteMembersByCids(List<String> cids) => Future.value();
@override
Future<void> deleteMessageByCids(List<String> cids) => Future.value();
@override
Future<void> deleteMessageByIds(List<String> messageIds) => Future.value();
@override
Future<void> deletePinnedMessageByCids(List<String> cids) => Future.value();
@override
Future<void> deletePinnedMessageByIds(List<String> messageIds) =>
Future.value();
@override
Future<void> deleteReactionsByMessageId(List<String> messageIds) =>
Future.value();
@override
Future<void> disconnect({bool flush = false}) => throw UnimplementedError();
@override
Future<ChannelModel?> getChannelByCid(String cid) async =>
ChannelModel(cid: cid);
@override
Future<List<String>> getChannelCids() => throw UnimplementedError();
@override
Future<List<ChannelState>> getChannelStates(
{Filter? filter,
List<SortOption<ChannelModel>>? sort,
PaginationParams? paginationParams}) =>
throw UnimplementedError();
@override
Future<Map<String, List<Message>>> getChannelThreads(String cid) =>
throw UnimplementedError();
@override
Future<Event?> getConnectionInfo() => throw UnimplementedError();
@override
Future<DateTime?> getLastSyncAt() => throw UnimplementedError();
@override
Future<List<Member>> getMembersByCid(String cid) async => [];
@override
Future<List<Message>> getMessagesByCid(String cid,
{PaginationParams? messagePagination}) async =>
[];
@override
Future<List<Message>> getPinnedMessagesByCid(String cid,
{PaginationParams? messagePagination}) async =>
[];
@override
Future<List<Read>> getReadsByCid(String cid) async => [];
@override
Future<List<Message>> getReplies(String parentId,
{PaginationParams? options}) =>
throw UnimplementedError();
@override
Future<void> updateChannelQueries(Filter? filter, List<String> cids,
{bool clearQueryCache = false}) =>
throw UnimplementedError();
@override
Future<void> updateChannels(List<ChannelModel> channels) => Future.value();
@override
Future<void> updateConnectionInfo(Event event) => throw UnimplementedError();
@override
Future<void> updateLastSyncAt(DateTime lastSyncAt) =>
throw UnimplementedError();
@override
Future<void> updateMembers(String cid, List<Member> members) =>
Future.value();
@override
Future<void> updateMessages(String cid, List<Message> messages) =>
Future.value();
@override
Future<void> updatePinnedMessages(String cid, List<Message> messages) =>
Future.value();
@override
Future<void> updateReactions(List<Reaction> reactions) => Future.value();
@override
Future<void> updateReads(String cid, List<Read> reads) => Future.value();
@override
Future<void> updateUsers(List<User> users) => Future.value();
}
void main() {
group('chatPersistenceClient', () {
final persistenceClient = TestPersistenceClient();
test('deleteMessageById', () {
const messageId = 'message-id';
persistenceClient.deleteMessageById(messageId);
});
test('deleteMessageByCid', () {
const messageId = 'message-id';
persistenceClient.deleteMessageByCid(messageId);
});
test('deletePinnedMessageById', () {
const messageId = 'message-id';
persistenceClient.deletePinnedMessageById(messageId);
});
test('deletePinnedMessageByCid', () {
const messageId = 'message-id';
persistenceClient.deletePinnedMessageByCid(messageId);
});
test('getChannelStateByCid', () async {
const cid = 'test:cid';
final channelState = await persistenceClient.getChannelStateByCid(cid);
expect(channelState, isNotNull);
});
test('updateChannelState', () async {
const cid = 'test:cid';
final channelState = ChannelState();
persistenceClient.updateChannelState(channelState);
});
test('updateChannelStates', () async {
const cid = 'test:cid';
final user = User(id: 'test-user-id');
final channelState = ChannelState(
channel: ChannelModel(cid: cid, createdBy: user),
messages: [
Message(
id: 'test-message',
text: 'test-message',
user: user,
ownReactions: [Reaction(type: 'test', user: user)],
latestReactions: [Reaction(type: 'test', user: user)],
)
],
pinnedMessages: [
Message(
id: 'test-message',
text: 'test-message',
user: user,
ownReactions: [Reaction(type: 'test', user: user)],
latestReactions: [Reaction(type: 'test', user: user)],
)
],
read: [Read(lastRead: DateTime.now(), user: user)],
members: [Member(user: user)],
);
persistenceClient.updateChannelStates([channelState]);
});
});
}