## Tests BLoC (Task P2.4 Mobile) - 25 nouveaux fichiers *_bloc_test.dart + mocks générés (build_runner) - Features couvertes : authentication, admin_users, adhesions, backup, communication/messaging, contributions, dashboard, finance (approval/budget), events, explore/network, feed, logs_monitoring, notifications, onboarding, organizations (switcher/types/CRUD), profile, reports, settings, solidarity - ~380 tests, > 80% coverage BLoCs ## Sécurité Production (Task P2.2) - lib/core/security/app_integrity_service.dart (freerasp 7.5.1) - Migration API breaking changes freerasp 7.5.1 : - onRootDetected → onPrivilegedAccess - onDebuggerDetected → onDebug - onSignatureDetected → onAppIntegrity - onHookDetected → onHooks - onEmulatorDetected → onSimulator - onUntrustedInstallationSourceDetected → onUnofficialStore - onDeviceBindingDetected → onDeviceBinding - onObfuscationIssuesDetected → onObfuscationIssues - Talsec.start() split → start() + attachListener() - const AndroidConfig/IOSConfig → final (constructors call ConfigVerifier) - supportedAlternativeStores → supportedStores ## Pubspec - bloc_test: ^9.1.7 → ^10.0.0 (compat flutter_bloc ^9.0.0) - freerasp 7.5.1 ## Config - android/app/build.gradle : ajustements release - lib/core/config/environment.dart : URLs API actualisées - lib/main.dart + app_router : intégrations sécurité/BLoC ## Cleanup - Suppression docs intermédiaires (TACHES_*.md, TASK_*_COMPLETION_REPORT.md, TESTS_UNITAIRES_PROGRESS.md) - .g.dart régénérés (json_serializable) - .mocks.dart régénérés (mockito) ## Résultat - 142 fichiers, +27 596 insertions - Toutes les tâches P2 mobile complétées Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
354 lines
12 KiB
Dart
354 lines
12 KiB
Dart
// Mocks generated by Mockito 5.4.6 from annotations
|
|
// in unionflow_mobile_apps/test/features/communication/bloc/messaging_bloc_test.dart.
|
|
// Do not manually edit this file.
|
|
|
|
// ignore_for_file: no_leading_underscores_for_library_prefixes
|
|
import 'dart:async' as _i6;
|
|
|
|
import 'package:mockito/mockito.dart' as _i1;
|
|
import 'package:unionflow_mobile_apps/core/websocket/websocket_service.dart'
|
|
as _i7;
|
|
import 'package:unionflow_mobile_apps/features/communication/domain/entities/contact_policy.dart'
|
|
as _i4;
|
|
import 'package:unionflow_mobile_apps/features/communication/domain/entities/conversation.dart'
|
|
as _i2;
|
|
import 'package:unionflow_mobile_apps/features/communication/domain/entities/message.dart'
|
|
as _i3;
|
|
import 'package:unionflow_mobile_apps/features/communication/domain/repositories/messaging_repository.dart'
|
|
as _i5;
|
|
|
|
// ignore_for_file: type=lint
|
|
// ignore_for_file: avoid_redundant_argument_values
|
|
// ignore_for_file: avoid_setters_without_getters
|
|
// ignore_for_file: comment_references
|
|
// ignore_for_file: deprecated_member_use
|
|
// ignore_for_file: deprecated_member_use_from_same_package
|
|
// ignore_for_file: implementation_imports
|
|
// ignore_for_file: invalid_use_of_visible_for_testing_member
|
|
// ignore_for_file: must_be_immutable
|
|
// ignore_for_file: prefer_const_constructors
|
|
// ignore_for_file: unnecessary_parenthesis
|
|
// ignore_for_file: camel_case_types
|
|
// ignore_for_file: subtype_of_sealed_class
|
|
// ignore_for_file: invalid_use_of_internal_member
|
|
|
|
class _FakeConversation_0 extends _i1.SmartFake implements _i2.Conversation {
|
|
_FakeConversation_0(Object parent, Invocation parentInvocation)
|
|
: super(parent, parentInvocation);
|
|
}
|
|
|
|
class _FakeMessage_1 extends _i1.SmartFake implements _i3.Message {
|
|
_FakeMessage_1(Object parent, Invocation parentInvocation)
|
|
: super(parent, parentInvocation);
|
|
}
|
|
|
|
class _FakeContactPolicy_2 extends _i1.SmartFake implements _i4.ContactPolicy {
|
|
_FakeContactPolicy_2(Object parent, Invocation parentInvocation)
|
|
: super(parent, parentInvocation);
|
|
}
|
|
|
|
/// A class which mocks [MessagingRepository].
|
|
///
|
|
/// See the documentation for Mockito's code generation for more information.
|
|
class MockMessagingRepository extends _i1.Mock
|
|
implements _i5.MessagingRepository {
|
|
MockMessagingRepository() {
|
|
_i1.throwOnMissingStub(this);
|
|
}
|
|
|
|
@override
|
|
_i6.Future<List<_i2.ConversationSummary>> getMesConversations() =>
|
|
(super.noSuchMethod(
|
|
Invocation.method(#getMesConversations, []),
|
|
returnValue: _i6.Future<List<_i2.ConversationSummary>>.value(
|
|
<_i2.ConversationSummary>[],
|
|
),
|
|
)
|
|
as _i6.Future<List<_i2.ConversationSummary>>);
|
|
|
|
@override
|
|
_i6.Future<_i2.Conversation> getConversation(String? conversationId) =>
|
|
(super.noSuchMethod(
|
|
Invocation.method(#getConversation, [conversationId]),
|
|
returnValue: _i6.Future<_i2.Conversation>.value(
|
|
_FakeConversation_0(
|
|
this,
|
|
Invocation.method(#getConversation, [conversationId]),
|
|
),
|
|
),
|
|
)
|
|
as _i6.Future<_i2.Conversation>);
|
|
|
|
@override
|
|
_i6.Future<_i2.Conversation> demarrerConversationDirecte({
|
|
required String? destinataireId,
|
|
required String? organisationId,
|
|
String? premierMessage,
|
|
}) =>
|
|
(super.noSuchMethod(
|
|
Invocation.method(#demarrerConversationDirecte, [], {
|
|
#destinataireId: destinataireId,
|
|
#organisationId: organisationId,
|
|
#premierMessage: premierMessage,
|
|
}),
|
|
returnValue: _i6.Future<_i2.Conversation>.value(
|
|
_FakeConversation_0(
|
|
this,
|
|
Invocation.method(#demarrerConversationDirecte, [], {
|
|
#destinataireId: destinataireId,
|
|
#organisationId: organisationId,
|
|
#premierMessage: premierMessage,
|
|
}),
|
|
),
|
|
),
|
|
)
|
|
as _i6.Future<_i2.Conversation>);
|
|
|
|
@override
|
|
_i6.Future<_i2.Conversation> demarrerConversationRole({
|
|
required String? roleCible,
|
|
required String? organisationId,
|
|
String? premierMessage,
|
|
}) =>
|
|
(super.noSuchMethod(
|
|
Invocation.method(#demarrerConversationRole, [], {
|
|
#roleCible: roleCible,
|
|
#organisationId: organisationId,
|
|
#premierMessage: premierMessage,
|
|
}),
|
|
returnValue: _i6.Future<_i2.Conversation>.value(
|
|
_FakeConversation_0(
|
|
this,
|
|
Invocation.method(#demarrerConversationRole, [], {
|
|
#roleCible: roleCible,
|
|
#organisationId: organisationId,
|
|
#premierMessage: premierMessage,
|
|
}),
|
|
),
|
|
),
|
|
)
|
|
as _i6.Future<_i2.Conversation>);
|
|
|
|
@override
|
|
_i6.Future<void> archiverConversation(String? conversationId) =>
|
|
(super.noSuchMethod(
|
|
Invocation.method(#archiverConversation, [conversationId]),
|
|
returnValue: _i6.Future<void>.value(),
|
|
returnValueForMissingStub: _i6.Future<void>.value(),
|
|
)
|
|
as _i6.Future<void>);
|
|
|
|
@override
|
|
_i6.Future<_i3.Message> envoyerMessage(
|
|
String? conversationId, {
|
|
required String? typeMessage,
|
|
String? contenu,
|
|
String? urlFichier,
|
|
int? dureeAudio,
|
|
String? messageParentId,
|
|
}) =>
|
|
(super.noSuchMethod(
|
|
Invocation.method(
|
|
#envoyerMessage,
|
|
[conversationId],
|
|
{
|
|
#typeMessage: typeMessage,
|
|
#contenu: contenu,
|
|
#urlFichier: urlFichier,
|
|
#dureeAudio: dureeAudio,
|
|
#messageParentId: messageParentId,
|
|
},
|
|
),
|
|
returnValue: _i6.Future<_i3.Message>.value(
|
|
_FakeMessage_1(
|
|
this,
|
|
Invocation.method(
|
|
#envoyerMessage,
|
|
[conversationId],
|
|
{
|
|
#typeMessage: typeMessage,
|
|
#contenu: contenu,
|
|
#urlFichier: urlFichier,
|
|
#dureeAudio: dureeAudio,
|
|
#messageParentId: messageParentId,
|
|
},
|
|
),
|
|
),
|
|
),
|
|
)
|
|
as _i6.Future<_i3.Message>);
|
|
|
|
@override
|
|
_i6.Future<List<_i3.Message>> getMessages(
|
|
String? conversationId, {
|
|
int? page = 0,
|
|
}) =>
|
|
(super.noSuchMethod(
|
|
Invocation.method(#getMessages, [conversationId], {#page: page}),
|
|
returnValue: _i6.Future<List<_i3.Message>>.value(<_i3.Message>[]),
|
|
)
|
|
as _i6.Future<List<_i3.Message>>);
|
|
|
|
@override
|
|
_i6.Future<void> marquerLu(String? conversationId) =>
|
|
(super.noSuchMethod(
|
|
Invocation.method(#marquerLu, [conversationId]),
|
|
returnValue: _i6.Future<void>.value(),
|
|
returnValueForMissingStub: _i6.Future<void>.value(),
|
|
)
|
|
as _i6.Future<void>);
|
|
|
|
@override
|
|
_i6.Future<void> supprimerMessage(
|
|
String? conversationId,
|
|
String? messageId,
|
|
) =>
|
|
(super.noSuchMethod(
|
|
Invocation.method(#supprimerMessage, [conversationId, messageId]),
|
|
returnValue: _i6.Future<void>.value(),
|
|
returnValueForMissingStub: _i6.Future<void>.value(),
|
|
)
|
|
as _i6.Future<void>);
|
|
|
|
@override
|
|
_i6.Future<void> bloquerMembre({
|
|
required String? membreABloquerId,
|
|
String? organisationId,
|
|
String? raison,
|
|
}) =>
|
|
(super.noSuchMethod(
|
|
Invocation.method(#bloquerMembre, [], {
|
|
#membreABloquerId: membreABloquerId,
|
|
#organisationId: organisationId,
|
|
#raison: raison,
|
|
}),
|
|
returnValue: _i6.Future<void>.value(),
|
|
returnValueForMissingStub: _i6.Future<void>.value(),
|
|
)
|
|
as _i6.Future<void>);
|
|
|
|
@override
|
|
_i6.Future<void> debloquerMembre(
|
|
String? membreId, {
|
|
String? organisationId,
|
|
}) =>
|
|
(super.noSuchMethod(
|
|
Invocation.method(
|
|
#debloquerMembre,
|
|
[membreId],
|
|
{#organisationId: organisationId},
|
|
),
|
|
returnValue: _i6.Future<void>.value(),
|
|
returnValueForMissingStub: _i6.Future<void>.value(),
|
|
)
|
|
as _i6.Future<void>);
|
|
|
|
@override
|
|
_i6.Future<List<Map<String, dynamic>>> getMesBlocages() =>
|
|
(super.noSuchMethod(
|
|
Invocation.method(#getMesBlocages, []),
|
|
returnValue: _i6.Future<List<Map<String, dynamic>>>.value(
|
|
<Map<String, dynamic>>[],
|
|
),
|
|
)
|
|
as _i6.Future<List<Map<String, dynamic>>>);
|
|
|
|
@override
|
|
_i6.Future<_i4.ContactPolicy> getPolitique(String? organisationId) =>
|
|
(super.noSuchMethod(
|
|
Invocation.method(#getPolitique, [organisationId]),
|
|
returnValue: _i6.Future<_i4.ContactPolicy>.value(
|
|
_FakeContactPolicy_2(
|
|
this,
|
|
Invocation.method(#getPolitique, [organisationId]),
|
|
),
|
|
),
|
|
)
|
|
as _i6.Future<_i4.ContactPolicy>);
|
|
|
|
@override
|
|
_i6.Future<_i4.ContactPolicy> mettreAJourPolitique(
|
|
String? organisationId, {
|
|
required String? typePolitique,
|
|
required bool? autoriserMembreVersMembre,
|
|
required bool? autoriserMembreVersRole,
|
|
required bool? autoriserNotesVocales,
|
|
}) =>
|
|
(super.noSuchMethod(
|
|
Invocation.method(
|
|
#mettreAJourPolitique,
|
|
[organisationId],
|
|
{
|
|
#typePolitique: typePolitique,
|
|
#autoriserMembreVersMembre: autoriserMembreVersMembre,
|
|
#autoriserMembreVersRole: autoriserMembreVersRole,
|
|
#autoriserNotesVocales: autoriserNotesVocales,
|
|
},
|
|
),
|
|
returnValue: _i6.Future<_i4.ContactPolicy>.value(
|
|
_FakeContactPolicy_2(
|
|
this,
|
|
Invocation.method(
|
|
#mettreAJourPolitique,
|
|
[organisationId],
|
|
{
|
|
#typePolitique: typePolitique,
|
|
#autoriserMembreVersMembre: autoriserMembreVersMembre,
|
|
#autoriserMembreVersRole: autoriserMembreVersRole,
|
|
#autoriserNotesVocales: autoriserNotesVocales,
|
|
},
|
|
),
|
|
),
|
|
),
|
|
)
|
|
as _i6.Future<_i4.ContactPolicy>);
|
|
}
|
|
|
|
/// A class which mocks [WebSocketService].
|
|
///
|
|
/// See the documentation for Mockito's code generation for more information.
|
|
class MockWebSocketService extends _i1.Mock implements _i7.WebSocketService {
|
|
MockWebSocketService() {
|
|
_i1.throwOnMissingStub(this);
|
|
}
|
|
|
|
@override
|
|
_i6.Stream<_i7.WebSocketEvent> get eventStream =>
|
|
(super.noSuchMethod(
|
|
Invocation.getter(#eventStream),
|
|
returnValue: _i6.Stream<_i7.WebSocketEvent>.empty(),
|
|
)
|
|
as _i6.Stream<_i7.WebSocketEvent>);
|
|
|
|
@override
|
|
_i6.Stream<bool> get connectionStatusStream =>
|
|
(super.noSuchMethod(
|
|
Invocation.getter(#connectionStatusStream),
|
|
returnValue: _i6.Stream<bool>.empty(),
|
|
)
|
|
as _i6.Stream<bool>);
|
|
|
|
@override
|
|
bool get isConnected =>
|
|
(super.noSuchMethod(Invocation.getter(#isConnected), returnValue: false)
|
|
as bool);
|
|
|
|
@override
|
|
void connect() => super.noSuchMethod(
|
|
Invocation.method(#connect, []),
|
|
returnValueForMissingStub: null,
|
|
);
|
|
|
|
@override
|
|
void disconnect() => super.noSuchMethod(
|
|
Invocation.method(#disconnect, []),
|
|
returnValueForMissingStub: null,
|
|
);
|
|
|
|
@override
|
|
void dispose() => super.noSuchMethod(
|
|
Invocation.method(#dispose, []),
|
|
returnValueForMissingStub: null,
|
|
);
|
|
}
|