major refactoring

Signed-off-by: Sahil Kumar <[email protected]>
This commit is contained in:
Sahil Kumar
2021-05-27 19:59:34 +05:30
parent 99afb0ba8e
commit 839ced618b
106 changed files with 4263 additions and 1937 deletions
@@ -63,7 +63,11 @@ class ChannelListCore extends StatefulWidget {
required this.loadingBuilder,
required this.listBuilder,
this.filter,
this.options,
this.state = true,
this.watch = true,
this.presence = false,
this.memberLimit,
this.messageLimit,
this.sort,
this.pagination = const PaginationParams(
limit: 25,
@@ -94,11 +98,11 @@ class ChannelListCore extends StatefulWidget {
/// You can also filter other built-in channel fields.
final Filter? filter;
/// Query channels options.
///
/// state: if true returns the Channel state
/// watch: if true listen to changes to this Channel in real time.
final Map<String, dynamic>? options;
// bool state = true,
// bool watch = true,
// bool presence = false,
// int? memberLimit,
// int? messageLimit,
/// The sorting used for the channels matching the filters.
/// Sorting is based on field and direction, multiple sorting options can be
@@ -107,6 +111,17 @@ class ChannelListCore extends StatefulWidget {
/// _at or member_count. Direction can be ascending or descending.
final List<SortOption<ChannelModel>>? sort;
/// If true returns the Channel state
final bool state;
/// If true listen to changes to this Channel in real time.
final bool watch;
final bool presence;
final int? memberLimit;
final int? messageLimit;
/// Pagination parameters
/// limit: the number of channels to return (max is 30)
/// offset: the offset (max is 1000)
@@ -149,18 +164,26 @@ class ChannelListCoreState extends State<ChannelListCore> {
Future<void> loadData() => _channelsBloc.queryChannels(
filter: widget.filter,
sortOptions: widget.sort,
state: widget.state,
watch: widget.watch,
presence: widget.presence,
memberLimit: widget.memberLimit,
messageLimit: widget.messageLimit,
paginationParams: widget.pagination,
options: widget.options,
);
/// Fetches more channels with updated pagination and updates the widget
Future<void> paginateData() => _channelsBloc.queryChannels(
filter: widget.filter,
sortOptions: widget.sort,
state: widget.state,
watch: widget.watch,
presence: widget.presence,
memberLimit: widget.memberLimit,
messageLimit: widget.messageLimit,
paginationParams: widget.pagination.copyWith(
offset: _channelsBloc.channels?.length ?? 0,
),
options: widget.options,
);
StreamSubscription<Event>? _subscription;
@@ -200,7 +223,11 @@ class ChannelListCoreState extends State<ChannelListCore> {
if (widget.filter?.toString() != oldWidget.filter?.toString() ||
jsonEncode(widget.sort) != jsonEncode(oldWidget.sort) ||
widget.options?.toString() != oldWidget.options?.toString() ||
widget.state != oldWidget.state ||
widget.watch != oldWidget.watch ||
widget.presence != oldWidget.presence ||
widget.messageLimit != oldWidget.messageLimit ||
widget.memberLimit != oldWidget.memberLimit ||
widget.pagination.toJson().toString() !=
oldWidget.pagination.toJson().toString()) {
loadData();
@@ -95,8 +95,13 @@ class ChannelsBlocState extends State<ChannelsBloc>
Future<void> queryChannels({
Filter? filter,
List<SortOption<ChannelModel>>? sortOptions,
bool state = true,
bool watch = true,
bool presence = false,
int? memberLimit,
int? messageLimit,
bool waitForConnect = true,
PaginationParams paginationParams = const PaginationParams(limit: 30),
Map<String, dynamic>? options,
}) async {
final client = _streamChatCoreState!.client;
@@ -117,7 +122,12 @@ class ChannelsBlocState extends State<ChannelsBloc>
await for (final channels in client.queryChannels(
filter: filter,
sort: sortOptions,
options: options,
state: state,
watch: watch,
presence: presence,
memberLimit: memberLimit,
messageLimit: messageLimit,
waitForConnect: waitForConnect,
paginationParams: paginationParams,
)) {
newChannels = channels;
@@ -109,7 +109,7 @@ class StreamChatCoreState extends State<StreamChatCore>
if (user != null) {
if (state == AppLifecycleState.paused) {
if (widget.onBackgroundEventReceived == null) {
client.disconnect();
client.closeConnection();
return;
}
_eventSubscription = client.on().listen(
@@ -118,7 +118,7 @@ class StreamChatCoreState extends State<StreamChatCore>
void onTimerComplete() {
_eventSubscription?.cancel();
client.disconnect();
client.closeConnection();
}
_disconnectTimer = Timer(widget.backgroundKeepAlive, onTimerComplete);
@@ -128,7 +128,7 @@ class StreamChatCoreState extends State<StreamChatCore>
_disconnectTimer?.cancel();
} else {
if (client.wsConnectionStatus == ConnectionStatus.disconnected) {
client.connect();
client.openConnection();
}
}
}
@@ -63,8 +63,8 @@ class UserListCore extends StatefulWidget {
required this.listBuilder,
Key? key,
this.filter,
this.options,
this.sort,
this.presence,
this.pagination,
this.groupAlphabetically = false,
this.userListController,
@@ -92,18 +92,15 @@ class UserListCore extends StatefulWidget {
/// You can also filter other built-in channel fields.
final Filter? filter;
/// Query channels options.
///
/// state: if true returns the Channel state
/// watch: if true listen to changes to this Channel in real time.
final Map<String, dynamic>? options;
/// The sorting used for the channels matching the filters.
/// Sorting is based on field and direction, multiple sorting options can be
/// provided. You can sort based on last_updated, last_message_at, updated_at,
/// created_at or member_count. Direction can be ascending or descending.
final List<SortOption>? sort;
///
final bool? presence;
/// Pagination parameters
/// limit: the number of users to return (max is 30)
/// offset: the offset (max is 1000)
@@ -186,22 +183,22 @@ class UserListCoreState extends State<UserListCore>
},
);
// ignore: public_member_api_docs
/// Fetches initial users and updates the widget
Future<void> loadData() => _usersBloc!.queryUsers(
filter: widget.filter,
sort: widget.sort,
presence: widget.presence,
pagination: widget.pagination,
options: widget.options,
);
// ignore: public_member_api_docs
/// Fetches more users with updated pagination and updates the widget
Future<void> paginateData() => _usersBloc!.queryUsers(
filter: widget.filter,
sort: widget.sort,
presence: widget.presence,
pagination: widget.pagination!.copyWith(
offset: _usersBloc!.users?.length ?? 0,
),
options: widget.options,
);
@override
@@ -209,7 +206,7 @@ class UserListCoreState extends State<UserListCore>
super.didUpdateWidget(oldWidget);
if (widget.filter?.toString() != oldWidget.filter?.toString() ||
jsonEncode(widget.sort) != jsonEncode(oldWidget.sort) ||
widget.options?.toString() != oldWidget.options?.toString() ||
widget.presence != oldWidget.presence ||
widget.pagination?.toJson().toString() !=
oldWidget.pagination?.toJson().toString()) {
loadData();
@@ -63,7 +63,7 @@ class UsersBlocState extends State<UsersBloc>
Future<void> queryUsers({
Filter? filter,
List<SortOption>? sort,
Map<String, dynamic>? options,
bool? presence,
PaginationParams? pagination,
}) async {
final client = _streamChatCore.client;
@@ -82,7 +82,7 @@ class UsersBlocState extends State<UsersBloc>
final usersResponse = await client.queryUsers(
filter: filter,
sort: sort,
options: options,
presence: presence,
pagination: pagination,
);
@@ -17,6 +17,10 @@ dependencies:
rxdart: ^0.26.0
stream_chat: ^2.0.0-nullsafety.1
dependency_overrides:
stream_chat:
path: ../stream_chat
dev_dependencies:
fake_async: ^1.2.0
flutter_test:
@@ -142,7 +142,11 @@ void main() {
when(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: pagination,
)).thenThrow(error);
@@ -162,7 +166,11 @@ void main() {
verify(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: pagination,
)).called(1);
},
@@ -191,7 +199,11 @@ void main() {
when(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: pagination,
)).thenAnswer((_) => Stream.value(channels));
@@ -211,7 +223,11 @@ void main() {
verify(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: pagination,
)).called(1);
},
@@ -240,7 +256,11 @@ void main() {
when(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: pagination,
)).thenAnswer((_) => Stream.value(channels));
@@ -260,7 +280,11 @@ void main() {
verify(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: pagination,
)).called(1);
},
@@ -297,7 +321,11 @@ void main() {
when(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: pagination,
)).thenAnswer((_) => Stream.value(channels));
@@ -321,7 +349,11 @@ void main() {
verify(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: pagination,
)).called(1);
@@ -335,7 +367,11 @@ void main() {
when(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: updatedPagination,
)).thenAnswer((_) => Stream.value(paginatedChannels));
@@ -355,7 +391,11 @@ void main() {
verify(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: updatedPagination,
)).called(1);
},
@@ -396,7 +436,11 @@ void main() {
when(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: pagination,
)).thenAnswer((_) => Stream.value(channels));
@@ -424,7 +468,11 @@ void main() {
verify(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: pagination,
)).called(1);
@@ -436,7 +484,11 @@ void main() {
when(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: updatedPagination,
)).thenAnswer((_) => Stream.value(updatedChannels));
@@ -451,7 +503,11 @@ void main() {
verify(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: updatedPagination,
)).called(1);
},
@@ -114,7 +114,11 @@ void main() {
when(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: any(named: 'paginationParams'),
)).thenAnswer(
(_) => Stream.fromIterable([offlineChannels, onlineChannels]),
@@ -133,7 +137,11 @@ void main() {
verify(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: any(named: 'paginationParams'),
)).called(1);
},
@@ -176,7 +184,11 @@ void main() {
when(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: any(named: 'paginationParams'),
)).thenThrow(error);
@@ -190,7 +202,11 @@ void main() {
verify(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: any(named: 'paginationParams'),
)).called(1);
},
@@ -228,7 +244,11 @@ void main() {
when(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: any(named: 'paginationParams'),
)).thenAnswer((_) => Stream.value(channels));
@@ -245,7 +265,11 @@ void main() {
verify(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: any(named: 'paginationParams'),
)).called(1);
@@ -257,7 +281,11 @@ void main() {
when(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: paginationParams,
)).thenAnswer(
(_) => Stream.value(newChannels),
@@ -279,7 +307,11 @@ void main() {
verify(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: paginationParams,
)).called(1);
},
@@ -320,7 +352,11 @@ void main() {
when(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: paginationParams,
)).thenAnswer((_) => Stream.value(channels));
@@ -336,7 +372,11 @@ void main() {
verify(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: paginationParams,
)).called(1);
@@ -345,7 +385,11 @@ void main() {
when(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: paginationParams,
)).thenThrow(error);
@@ -359,7 +403,11 @@ void main() {
verify(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: paginationParams,
)).called(1);
},
@@ -404,7 +452,11 @@ void main() {
when(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: any(named: 'paginationParams'),
)).thenAnswer(
(_) => Stream.value(channels),
@@ -415,7 +467,11 @@ void main() {
verify(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: any(named: 'paginationParams'),
)).called(1);
@@ -476,7 +532,11 @@ void main() {
when(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: any(named: 'paginationParams'),
)).thenAnswer(
(_) => Stream.value(channels),
@@ -487,11 +547,16 @@ void main() {
verify(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: any(named: 'paginationParams'),
)).called(1);
final channelDeletedOrNotificationRemovedEvent = Event(
type: EventType.channelDeleted,
channel: EventChannel(
cid: channels.first.cid!,
updatedAt: DateTime.now(),
@@ -557,7 +622,11 @@ void main() {
when(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: any(named: 'paginationParams'),
)).thenAnswer(
(_) => Stream.value(channels),
@@ -568,7 +637,11 @@ void main() {
verify(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: any(named: 'paginationParams'),
)).called(1);
@@ -648,7 +721,11 @@ void main() {
when(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: any(named: 'paginationParams'),
)).thenAnswer(
(_) => Stream.value(channels),
@@ -659,7 +736,11 @@ void main() {
verify(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: any(named: 'paginationParams'),
)).called(1);
@@ -735,7 +816,11 @@ void main() {
when(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: any(named: 'paginationParams'),
)).thenAnswer(
(_) => Stream.value(channels),
@@ -746,7 +831,11 @@ void main() {
verify(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: any(named: 'paginationParams'),
)).called(1);
@@ -813,7 +902,11 @@ void main() {
when(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: any(named: 'paginationParams'),
)).thenAnswer(
(_) => Stream.value(channels),
@@ -824,7 +917,11 @@ void main() {
verify(() => mockClient.queryChannels(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
state: any(named: 'state'),
watch: any(named: 'watch'),
presence: any(named: 'presence'),
memberLimit: any(named: 'memberLimit'),
messageLimit: any(named: 'messageLimit'),
paginationParams: any(named: 'paginationParams'),
)).called(1);
@@ -51,7 +51,7 @@ void main() {
);
testWidgets(
'didChangeAppLifecycleState should call client.disconnect() and return '
'didChangeAppLifecycleState should call client.closeConnection and return '
'if onBackgroundEventReceived is null and the widget lifestyle changes to '
'AppLifecycleState.paused',
(tester) async {
@@ -69,7 +69,7 @@ void main() {
expect(find.byKey(streamChatCoreKey), findsOneWidget);
expect(find.byKey(childKey), findsOneWidget);
when(() => mockClient.disconnect()).thenAnswer((_) async {
when(() => mockClient.closeConnection()).thenAnswer((_) async {
return;
});
@@ -79,7 +79,7 @@ void main() {
streamChatCoreState.didChangeAppLifecycleState(AppLifecycleState.paused);
verify(() => mockClient.disconnect()).called(1);
verify(() => mockClient.closeConnection()).called(1);
},
);
@@ -107,9 +107,9 @@ void main() {
expect(find.byKey(streamChatCoreKey), findsOneWidget);
expect(find.byKey(childKey), findsOneWidget);
final event = Event();
final event = Event(type: EventType.any);
when(() => mockClient.on()).thenAnswer((_) => Stream.value(event));
when(() => mockClient.disconnect()).thenAnswer((_) async {
when(() => mockClient.closeConnection()).thenAnswer((_) async {
return;
});
@@ -126,7 +126,7 @@ void main() {
await Future.delayed(backgroundKeepAlive);
verify(() => mockClient.disconnect()).called(1);
verify(() => mockClient.closeConnection()).called(1);
verifyNever(() => mockOnBackgroundEventReceived.call(event));
});
},
@@ -156,7 +156,7 @@ void main() {
expect(find.byKey(streamChatCoreKey), findsOneWidget);
expect(find.byKey(childKey), findsOneWidget);
final event = Event();
final event = Event(type: EventType.any);
when(() => mockClient.on()).thenAnswer((_) => Stream.value(event));
final streamChatCoreState = tester.state<StreamChatCoreState>(
@@ -198,10 +198,10 @@ void main() {
expect(find.byKey(streamChatCoreKey), findsOneWidget);
expect(find.byKey(childKey), findsOneWidget);
final event = Event();
final event = Event(type: EventType.any);
when(() => mockClient.on()).thenAnswer((_) => Stream.value(event));
when(() => mockClient.connect()).thenAnswer((_) async => event);
when(mockClient.disconnect).thenAnswer((_) async => null);
when(() => mockClient.openConnection()).thenAnswer((_) async => event);
when(() => mockClient.closeConnection()).thenAnswer((_) async => null);
when(() => mockClient.wsConnectionStatus)
.thenReturn(ConnectionStatus.disconnected);
@@ -217,7 +217,7 @@ void main() {
streamChatCoreState
.didChangeAppLifecycleState(AppLifecycleState.resumed);
verify(() => mockClient.connect()).called(1);
verify(() => mockClient.openConnection()).called(1);
});
},
);
@@ -134,7 +134,7 @@ void main() {
when(() => mockClient.queryUsers(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
presence: any(named: 'presence'),
pagination: any(named: 'pagination'),
)).thenThrow(error);
@@ -154,7 +154,7 @@ void main() {
verify(() => mockClient.queryUsers(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
presence: any(named: 'presence'),
pagination: any(named: 'pagination'),
)).called(1);
},
@@ -179,7 +179,7 @@ void main() {
when(() => mockClient.queryUsers(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
presence: any(named: 'presence'),
pagination: any(named: 'pagination'),
)).thenAnswer((_) async => QueryUsersResponse()..users = users);
@@ -199,7 +199,7 @@ void main() {
verify(() => mockClient.queryUsers(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
presence: any(named: 'presence'),
pagination: any(named: 'pagination'),
)).called(1);
},
@@ -224,7 +224,7 @@ void main() {
when(() => mockClient.queryUsers(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
presence: any(named: 'presence'),
pagination: any(named: 'pagination'),
)).thenAnswer((_) async => QueryUsersResponse()..users = users);
@@ -244,7 +244,7 @@ void main() {
verify(() => mockClient.queryUsers(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
presence: any(named: 'presence'),
pagination: any(named: 'pagination'),
)).called(1);
},
@@ -283,7 +283,7 @@ void main() {
when(() => mockClient.queryUsers(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
presence: any(named: 'presence'),
pagination: any(named: 'pagination'),
)).thenAnswer((_) async => QueryUsersResponse()..users = users);
@@ -310,7 +310,7 @@ void main() {
verify(() => mockClient.queryUsers(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
presence: any(named: 'presence'),
pagination: any(named: 'pagination'),
)).called(1);
},
@@ -352,7 +352,7 @@ void main() {
when(() => mockClient.queryUsers(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
presence: any(named: 'presence'),
pagination: any(named: 'pagination'),
)).thenAnswer((_) async => QueryUsersResponse()..users = users);
@@ -379,7 +379,7 @@ void main() {
verify(() => mockClient.queryUsers(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
presence: any(named: 'presence'),
pagination: any(named: 'pagination'),
)).called(1);
@@ -393,7 +393,7 @@ void main() {
when(() => mockClient.queryUsers(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
presence: any(named: 'presence'),
pagination: updatedPagination,
))
.thenAnswer(
@@ -411,7 +411,7 @@ void main() {
verify(() => mockClient.queryUsers(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
presence: any(named: 'presence'),
pagination: updatedPagination,
)).called(1);
},
@@ -457,7 +457,7 @@ void main() {
when(() => mockClient.queryUsers(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
presence: any(named: 'presence'),
pagination: any(named: 'pagination'),
)).thenAnswer((_) async => QueryUsersResponse()..users = users);
@@ -488,7 +488,7 @@ void main() {
verify(() => mockClient.queryUsers(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
presence: any(named: 'presence'),
pagination: any(named: 'pagination'),
)).called(1);
@@ -500,7 +500,7 @@ void main() {
when(() => mockClient.queryUsers(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
presence: any(named: 'presence'),
pagination: updatedPagination,
))
.thenAnswer((_) async => QueryUsersResponse()..users = updatedUsers);
@@ -515,7 +515,7 @@ void main() {
verify(() => mockClient.queryUsers(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
presence: any(named: 'presence'),
pagination: updatedPagination,
)).called(1);
},
@@ -72,7 +72,7 @@ void main() {
when(() => mockClient.queryUsers(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
presence: any(named: 'presence'),
pagination: any(named: 'pagination'),
)).thenAnswer((_) async => QueryUsersResponse()..users = users);
@@ -86,7 +86,7 @@ void main() {
verify(() => mockClient.queryUsers(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
presence: any(named: 'presence'),
pagination: any(named: 'pagination'),
)).called(1);
},
@@ -121,7 +121,7 @@ void main() {
when(() => mockClient.queryUsers(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
presence: any(named: 'presence'),
pagination: any(named: 'pagination'),
)).thenThrow(error);
@@ -135,7 +135,7 @@ void main() {
verify(() => mockClient.queryUsers(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
presence: any(named: 'presence'),
pagination: any(named: 'pagination'),
)).called(1);
},
@@ -171,7 +171,7 @@ void main() {
when(() => mockClient.queryUsers(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
presence: any(named: 'presence'),
pagination: any(named: 'pagination'),
)).thenAnswer((_) async => QueryUsersResponse()..users = users);
@@ -185,7 +185,7 @@ void main() {
verify(() => mockClient.queryUsers(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
presence: any(named: 'presence'),
pagination: any(named: 'pagination'),
)).called(1);
@@ -196,7 +196,7 @@ void main() {
when(() => mockClient.queryUsers(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
presence: any(named: 'presence'),
pagination: pagination,
))
.thenAnswer(
@@ -218,7 +218,7 @@ void main() {
verify(() => mockClient.queryUsers(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
presence: any(named: 'presence'),
pagination: pagination,
)).called(1);
},
@@ -254,7 +254,7 @@ void main() {
when(() => mockClient.queryUsers(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
presence: any(named: 'presence'),
pagination: any(named: 'pagination'),
)).thenAnswer((_) async => QueryUsersResponse()..users = users);
@@ -268,7 +268,7 @@ void main() {
verify(() => mockClient.queryUsers(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
presence: any(named: 'presence'),
pagination: any(named: 'pagination'),
)).called(1);
@@ -280,7 +280,7 @@ void main() {
when(() => mockClient.queryUsers(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
presence: any(named: 'presence'),
pagination: pagination,
)).thenThrow(error);
@@ -294,7 +294,7 @@ void main() {
verify(() => mockClient.queryUsers(
filter: any(named: 'filter'),
sort: any(named: 'sort'),
options: any(named: 'options'),
presence: any(named: 'presence'),
pagination: pagination,
)).called(1);
},