add initialized channel tests
Signed-off-by: Sahil Kumar <[email protected]>
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -82,3 +82,24 @@ class FakeChatApi extends Fake implements StreamChatApi {
|
||||
AttachmentFileUploader get fileUploader =>
|
||||
_fileUploader ??= MockAttachmentFileUploader();
|
||||
}
|
||||
|
||||
class FakeClientState extends Fake implements ClientState {
|
||||
@override
|
||||
OwnUser? get user => OwnUser(id: 'test-user-id');
|
||||
|
||||
var _totalUnreadCount = 0;
|
||||
|
||||
@override
|
||||
int? get totalUnreadCount => _totalUnreadCount;
|
||||
|
||||
@override
|
||||
set totalUnreadCount(int? unreadCount) {
|
||||
_totalUnreadCount += unreadCount ?? 0;
|
||||
}
|
||||
}
|
||||
|
||||
class FakeMessage extends Fake implements Message {}
|
||||
|
||||
class FakeAttachmentFile extends Fake implements AttachmentFile {}
|
||||
|
||||
class FakeEvent extends Fake implements Event {}
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:dio/dio.dart' show MultipartFile;
|
||||
import 'package:stream_chat/src/core/models/event.dart';
|
||||
import 'package:stream_chat/src/core/models/message.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
||||
Matcher isSameMultipartFileAs(MultipartFile targetFile) =>
|
||||
@@ -17,3 +20,72 @@ class _IsSameMultipartFileAs extends Matcher {
|
||||
bool matches(covariant MultipartFile file, Map matchState) =>
|
||||
file.length == targetFile.length;
|
||||
}
|
||||
|
||||
Matcher isSameEventAs(Event targetEvent) =>
|
||||
_IsSameEventAs(targetEvent: targetEvent);
|
||||
|
||||
class _IsSameEventAs extends Matcher {
|
||||
const _IsSameEventAs({required this.targetEvent});
|
||||
|
||||
final Event targetEvent;
|
||||
|
||||
@override
|
||||
Description describe(Description description) =>
|
||||
description.add('is same event as $targetEvent');
|
||||
|
||||
@override
|
||||
bool matches(covariant Event event, Map matchState) =>
|
||||
event.type == targetEvent.type;
|
||||
}
|
||||
|
||||
Matcher isSameMessageAs(
|
||||
Message targetMessage, {
|
||||
bool matchReactions = false,
|
||||
bool matchSendingStatus = false,
|
||||
}) =>
|
||||
_IsSameMessageAs(
|
||||
targetMessage: targetMessage,
|
||||
matchReactions: matchReactions,
|
||||
matchSendingStatus: matchSendingStatus,
|
||||
);
|
||||
|
||||
class _IsSameMessageAs extends Matcher {
|
||||
const _IsSameMessageAs({
|
||||
required this.targetMessage,
|
||||
this.matchReactions = false,
|
||||
this.matchSendingStatus = false,
|
||||
});
|
||||
|
||||
final Message targetMessage;
|
||||
final bool matchReactions;
|
||||
final bool matchSendingStatus;
|
||||
|
||||
@override
|
||||
Description describe(Description description) =>
|
||||
description.add('is same message as $targetMessage');
|
||||
|
||||
@override
|
||||
bool matches(covariant Message message, Map matchState) {
|
||||
var matches = message.id == targetMessage.id;
|
||||
if (matchSendingStatus) {
|
||||
matches &= message.status == targetMessage.status;
|
||||
}
|
||||
if (matchReactions) {
|
||||
matches &= const ListEquality().equals(
|
||||
message.ownReactions
|
||||
?.map((it) => '${it.type}-${it.messageId}')
|
||||
.toList(),
|
||||
targetMessage.ownReactions
|
||||
?.map((it) => '${it.type}-${it.messageId}')
|
||||
.toList());
|
||||
matches &= const ListEquality().equals(
|
||||
message.latestReactions
|
||||
?.map((it) => '${it.type}-${it.messageId}')
|
||||
.toList(),
|
||||
targetMessage.latestReactions
|
||||
?.map((it) => '${it.type}-${it.messageId}')
|
||||
.toList());
|
||||
}
|
||||
return matches;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:mocktail/mocktail.dart';
|
||||
import 'package:stream_chat/src/client/client.dart';
|
||||
import 'package:stream_chat/src/core/api/attachment_file_uploader.dart';
|
||||
import 'package:stream_chat/src/core/api/channel_api.dart';
|
||||
import 'package:stream_chat/src/core/api/device_api.dart';
|
||||
@@ -12,8 +13,13 @@ import 'package:stream_chat/src/core/api/user_api.dart';
|
||||
import 'package:stream_chat/src/core/http/connection_id_manager.dart';
|
||||
import 'package:stream_chat/src/core/http/stream_http_client.dart';
|
||||
import 'package:stream_chat/src/core/http/token_manager.dart';
|
||||
import 'package:stream_chat/src/core/models/channel_config.dart';
|
||||
import 'package:stream_chat/src/core/models/channel_model.dart';
|
||||
import 'package:stream_chat/src/db/chat_persistence_client.dart';
|
||||
import 'package:web_socket_channel/web_socket_channel.dart';
|
||||
|
||||
import 'db/chat_persistence_client_test.dart';
|
||||
|
||||
class MockWebSocketChannel extends Mock implements WebSocketChannel {}
|
||||
|
||||
class MockWebSocketSink extends Mock implements WebSocketSink {}
|
||||
@@ -57,3 +63,24 @@ class MockGeneralApi extends Mock implements GeneralApi {}
|
||||
|
||||
class MockAttachmentFileUploader extends Mock
|
||||
implements AttachmentFileUploader {}
|
||||
|
||||
class MockPersistenceClient extends Mock implements ChatPersistenceClient {}
|
||||
|
||||
class MockStreamChatClient extends Mock implements StreamChatClient {
|
||||
@override
|
||||
bool get persistenceEnabled => false;
|
||||
}
|
||||
|
||||
class MockStreamChatClientWithPersistence extends Mock
|
||||
implements StreamChatClient {
|
||||
ChatPersistenceClient? _persistenceClient;
|
||||
|
||||
@override
|
||||
ChatPersistenceClient get chatPersistenceClient =>
|
||||
_persistenceClient ??= MockPersistenceClient();
|
||||
|
||||
@override
|
||||
bool get persistenceEnabled => true;
|
||||
}
|
||||
|
||||
class MockChannelConfig extends Mock implements ChannelConfig {}
|
||||
|
||||
Reference in New Issue
Block a user