// Mocks generated by Mockito 5.4.4 from annotations
// in unionflow_mobile_apps/test/features/communication/domain/usecases/send_broadcast_test.dart.
// Do not manually edit this file.

// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'dart:async' as _i4;

import 'package:dartz/dartz.dart' as _i2;
import 'package:mockito/mockito.dart' as _i1;
import 'package:unionflow_mobile_apps/core/error/failures.dart' as _i5;
import 'package:unionflow_mobile_apps/features/communication/domain/entities/conversation.dart'
    as _i6;
import 'package:unionflow_mobile_apps/features/communication/domain/entities/message.dart'
    as _i7;
import 'package:unionflow_mobile_apps/features/communication/domain/entities/message_template.dart'
    as _i8;
import 'package:unionflow_mobile_apps/features/communication/domain/repositories/messaging_repository.dart'
    as _i3;

// 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: prefer_const_constructors
// ignore_for_file: unnecessary_parenthesis
// ignore_for_file: camel_case_types
// ignore_for_file: subtype_of_sealed_class

class _FakeEither_0<L, R> extends _i1.SmartFake implements _i2.Either<L, R> {
  _FakeEither_0(
    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 _i3.MessagingRepository {
  MockMessagingRepository() {
    _i1.throwOnMissingStub(this);
  }

  @override
  _i4.Future<_i2.Either<_i5.Failure, List<_i6.Conversation>>> getConversations({
    String? organizationId,
    bool? includeArchived = false,
  }) =>
      (super.noSuchMethod(
        Invocation.method(
          #getConversations,
          [],
          {
            #organizationId: organizationId,
            #includeArchived: includeArchived,
          },
        ),
        returnValue:
            _i4.Future<_i2.Either<_i5.Failure, List<_i6.Conversation>>>.value(
                _FakeEither_0<_i5.Failure, List<_i6.Conversation>>(
          this,
          Invocation.method(
            #getConversations,
            [],
            {
              #organizationId: organizationId,
              #includeArchived: includeArchived,
            },
          ),
        )),
      ) as _i4.Future<_i2.Either<_i5.Failure, List<_i6.Conversation>>>);

  @override
  _i4.Future<_i2.Either<_i5.Failure, _i6.Conversation>> getConversationById(
          String? conversationId) =>
      (super.noSuchMethod(
        Invocation.method(
          #getConversationById,
          [conversationId],
        ),
        returnValue:
            _i4.Future<_i2.Either<_i5.Failure, _i6.Conversation>>.value(
                _FakeEither_0<_i5.Failure, _i6.Conversation>(
          this,
          Invocation.method(
            #getConversationById,
            [conversationId],
          ),
        )),
      ) as _i4.Future<_i2.Either<_i5.Failure, _i6.Conversation>>);

  @override
  _i4.Future<_i2.Either<_i5.Failure, _i6.Conversation>> createConversation({
    required String? name,
    required List<String>? participantIds,
    String? organizationId,
    String? description,
  }) =>
      (super.noSuchMethod(
        Invocation.method(
          #createConversation,
          [],
          {
            #name: name,
            #participantIds: participantIds,
            #organizationId: organizationId,
            #description: description,
          },
        ),
        returnValue:
            _i4.Future<_i2.Either<_i5.Failure, _i6.Conversation>>.value(
                _FakeEither_0<_i5.Failure, _i6.Conversation>(
          this,
          Invocation.method(
            #createConversation,
            [],
            {
              #name: name,
              #participantIds: participantIds,
              #organizationId: organizationId,
              #description: description,
            },
          ),
        )),
      ) as _i4.Future<_i2.Either<_i5.Failure, _i6.Conversation>>);

  @override
  _i4.Future<_i2.Either<_i5.Failure, void>> archiveConversation(
          String? conversationId) =>
      (super.noSuchMethod(
        Invocation.method(
          #archiveConversation,
          [conversationId],
        ),
        returnValue: _i4.Future<_i2.Either<_i5.Failure, void>>.value(
            _FakeEither_0<_i5.Failure, void>(
          this,
          Invocation.method(
            #archiveConversation,
            [conversationId],
          ),
        )),
      ) as _i4.Future<_i2.Either<_i5.Failure, void>>);

  @override
  _i4.Future<_i2.Either<_i5.Failure, void>> markConversationAsRead(
          String? conversationId) =>
      (super.noSuchMethod(
        Invocation.method(
          #markConversationAsRead,
          [conversationId],
        ),
        returnValue: _i4.Future<_i2.Either<_i5.Failure, void>>.value(
            _FakeEither_0<_i5.Failure, void>(
          this,
          Invocation.method(
            #markConversationAsRead,
            [conversationId],
          ),
        )),
      ) as _i4.Future<_i2.Either<_i5.Failure, void>>);

  @override
  _i4.Future<_i2.Either<_i5.Failure, void>> toggleMuteConversation(
          String? conversationId) =>
      (super.noSuchMethod(
        Invocation.method(
          #toggleMuteConversation,
          [conversationId],
        ),
        returnValue: _i4.Future<_i2.Either<_i5.Failure, void>>.value(
            _FakeEither_0<_i5.Failure, void>(
          this,
          Invocation.method(
            #toggleMuteConversation,
            [conversationId],
          ),
        )),
      ) as _i4.Future<_i2.Either<_i5.Failure, void>>);

  @override
  _i4.Future<_i2.Either<_i5.Failure, void>> togglePinConversation(
          String? conversationId) =>
      (super.noSuchMethod(
        Invocation.method(
          #togglePinConversation,
          [conversationId],
        ),
        returnValue: _i4.Future<_i2.Either<_i5.Failure, void>>.value(
            _FakeEither_0<_i5.Failure, void>(
          this,
          Invocation.method(
            #togglePinConversation,
            [conversationId],
          ),
        )),
      ) as _i4.Future<_i2.Either<_i5.Failure, void>>);

  @override
  _i4.Future<_i2.Either<_i5.Failure, List<_i7.Message>>> getMessages({
    required String? conversationId,
    int? limit,
    String? beforeMessageId,
  }) =>
      (super.noSuchMethod(
        Invocation.method(
          #getMessages,
          [],
          {
            #conversationId: conversationId,
            #limit: limit,
            #beforeMessageId: beforeMessageId,
          },
        ),
        returnValue:
            _i4.Future<_i2.Either<_i5.Failure, List<_i7.Message>>>.value(
                _FakeEither_0<_i5.Failure, List<_i7.Message>>(
          this,
          Invocation.method(
            #getMessages,
            [],
            {
              #conversationId: conversationId,
              #limit: limit,
              #beforeMessageId: beforeMessageId,
            },
          ),
        )),
      ) as _i4.Future<_i2.Either<_i5.Failure, List<_i7.Message>>>);

  @override
  _i4.Future<_i2.Either<_i5.Failure, _i7.Message>> sendMessage({
    required String? conversationId,
    required String? content,
    List<String>? attachments,
    _i7.MessagePriority? priority = _i7.MessagePriority.normal,
  }) =>
      (super.noSuchMethod(
        Invocation.method(
          #sendMessage,
          [],
          {
            #conversationId: conversationId,
            #content: content,
            #attachments: attachments,
            #priority: priority,
          },
        ),
        returnValue: _i4.Future<_i2.Either<_i5.Failure, _i7.Message>>.value(
            _FakeEither_0<_i5.Failure, _i7.Message>(
          this,
          Invocation.method(
            #sendMessage,
            [],
            {
              #conversationId: conversationId,
              #content: content,
              #attachments: attachments,
              #priority: priority,
            },
          ),
        )),
      ) as _i4.Future<_i2.Either<_i5.Failure, _i7.Message>>);

  @override
  _i4.Future<_i2.Either<_i5.Failure, _i7.Message>> sendBroadcast({
    required String? organizationId,
    required String? subject,
    required String? content,
    _i7.MessagePriority? priority = _i7.MessagePriority.normal,
    List<String>? attachments,
  }) =>
      (super.noSuchMethod(
        Invocation.method(
          #sendBroadcast,
          [],
          {
            #organizationId: organizationId,
            #subject: subject,
            #content: content,
            #priority: priority,
            #attachments: attachments,
          },
        ),
        returnValue: _i4.Future<_i2.Either<_i5.Failure, _i7.Message>>.value(
            _FakeEither_0<_i5.Failure, _i7.Message>(
          this,
          Invocation.method(
            #sendBroadcast,
            [],
            {
              #organizationId: organizationId,
              #subject: subject,
              #content: content,
              #priority: priority,
              #attachments: attachments,
            },
          ),
        )),
      ) as _i4.Future<_i2.Either<_i5.Failure, _i7.Message>>);

  @override
  _i4.Future<_i2.Either<_i5.Failure, _i7.Message>> sendTargetedMessage({
    required String? organizationId,
    required List<String>? targetRoles,
    required String? subject,
    required String? content,
    _i7.MessagePriority? priority = _i7.MessagePriority.normal,
  }) =>
      (super.noSuchMethod(
        Invocation.method(
          #sendTargetedMessage,
          [],
          {
            #organizationId: organizationId,
            #targetRoles: targetRoles,
            #subject: subject,
            #content: content,
            #priority: priority,
          },
        ),
        returnValue: _i4.Future<_i2.Either<_i5.Failure, _i7.Message>>.value(
            _FakeEither_0<_i5.Failure, _i7.Message>(
          this,
          Invocation.method(
            #sendTargetedMessage,
            [],
            {
              #organizationId: organizationId,
              #targetRoles: targetRoles,
              #subject: subject,
              #content: content,
              #priority: priority,
            },
          ),
        )),
      ) as _i4.Future<_i2.Either<_i5.Failure, _i7.Message>>);

  @override
  _i4.Future<_i2.Either<_i5.Failure, void>> markMessageAsRead(
          String? messageId) =>
      (super.noSuchMethod(
        Invocation.method(
          #markMessageAsRead,
          [messageId],
        ),
        returnValue: _i4.Future<_i2.Either<_i5.Failure, void>>.value(
            _FakeEither_0<_i5.Failure, void>(
          this,
          Invocation.method(
            #markMessageAsRead,
            [messageId],
          ),
        )),
      ) as _i4.Future<_i2.Either<_i5.Failure, void>>);

  @override
  _i4.Future<_i2.Either<_i5.Failure, _i7.Message>> editMessage({
    required String? messageId,
    required String? newContent,
  }) =>
      (super.noSuchMethod(
        Invocation.method(
          #editMessage,
          [],
          {
            #messageId: messageId,
            #newContent: newContent,
          },
        ),
        returnValue: _i4.Future<_i2.Either<_i5.Failure, _i7.Message>>.value(
            _FakeEither_0<_i5.Failure, _i7.Message>(
          this,
          Invocation.method(
            #editMessage,
            [],
            {
              #messageId: messageId,
              #newContent: newContent,
            },
          ),
        )),
      ) as _i4.Future<_i2.Either<_i5.Failure, _i7.Message>>);

  @override
  _i4.Future<_i2.Either<_i5.Failure, void>> deleteMessage(String? messageId) =>
      (super.noSuchMethod(
        Invocation.method(
          #deleteMessage,
          [messageId],
        ),
        returnValue: _i4.Future<_i2.Either<_i5.Failure, void>>.value(
            _FakeEither_0<_i5.Failure, void>(
          this,
          Invocation.method(
            #deleteMessage,
            [messageId],
          ),
        )),
      ) as _i4.Future<_i2.Either<_i5.Failure, void>>);

  @override
  _i4.Future<_i2.Either<_i5.Failure, List<_i8.MessageTemplate>>> getTemplates({
    String? organizationId,
    _i8.TemplateCategory? category,
  }) =>
      (super.noSuchMethod(
        Invocation.method(
          #getTemplates,
          [],
          {
            #organizationId: organizationId,
            #category: category,
          },
        ),
        returnValue: _i4
            .Future<_i2.Either<_i5.Failure, List<_i8.MessageTemplate>>>.value(
            _FakeEither_0<_i5.Failure, List<_i8.MessageTemplate>>(
          this,
          Invocation.method(
            #getTemplates,
            [],
            {
              #organizationId: organizationId,
              #category: category,
            },
          ),
        )),
      ) as _i4.Future<_i2.Either<_i5.Failure, List<_i8.MessageTemplate>>>);

  @override
  _i4.Future<_i2.Either<_i5.Failure, _i8.MessageTemplate>> getTemplateById(
          String? templateId) =>
      (super.noSuchMethod(
        Invocation.method(
          #getTemplateById,
          [templateId],
        ),
        returnValue:
            _i4.Future<_i2.Either<_i5.Failure, _i8.MessageTemplate>>.value(
                _FakeEither_0<_i5.Failure, _i8.MessageTemplate>(
          this,
          Invocation.method(
            #getTemplateById,
            [templateId],
          ),
        )),
      ) as _i4.Future<_i2.Either<_i5.Failure, _i8.MessageTemplate>>);

  @override
  _i4.Future<_i2.Either<_i5.Failure, _i8.MessageTemplate>> createTemplate({
    required String? name,
    required String? description,
    required _i8.TemplateCategory? category,
    required String? subject,
    required String? body,
    List<Map<String, dynamic>>? variables,
    String? organizationId,
  }) =>
      (super.noSuchMethod(
        Invocation.method(
          #createTemplate,
          [],
          {
            #name: name,
            #description: description,
            #category: category,
            #subject: subject,
            #body: body,
            #variables: variables,
            #organizationId: organizationId,
          },
        ),
        returnValue:
            _i4.Future<_i2.Either<_i5.Failure, _i8.MessageTemplate>>.value(
                _FakeEither_0<_i5.Failure, _i8.MessageTemplate>(
          this,
          Invocation.method(
            #createTemplate,
            [],
            {
              #name: name,
              #description: description,
              #category: category,
              #subject: subject,
              #body: body,
              #variables: variables,
              #organizationId: organizationId,
            },
          ),
        )),
      ) as _i4.Future<_i2.Either<_i5.Failure, _i8.MessageTemplate>>);

  @override
  _i4.Future<_i2.Either<_i5.Failure, _i8.MessageTemplate>> updateTemplate({
    required String? templateId,
    String? name,
    String? description,
    String? subject,
    String? body,
    bool? isActive,
  }) =>
      (super.noSuchMethod(
        Invocation.method(
          #updateTemplate,
          [],
          {
            #templateId: templateId,
            #name: name,
            #description: description,
            #subject: subject,
            #body: body,
            #isActive: isActive,
          },
        ),
        returnValue:
            _i4.Future<_i2.Either<_i5.Failure, _i8.MessageTemplate>>.value(
                _FakeEither_0<_i5.Failure, _i8.MessageTemplate>(
          this,
          Invocation.method(
            #updateTemplate,
            [],
            {
              #templateId: templateId,
              #name: name,
              #description: description,
              #subject: subject,
              #body: body,
              #isActive: isActive,
            },
          ),
        )),
      ) as _i4.Future<_i2.Either<_i5.Failure, _i8.MessageTemplate>>);

  @override
  _i4.Future<_i2.Either<_i5.Failure, void>> deleteTemplate(
          String? templateId) =>
      (super.noSuchMethod(
        Invocation.method(
          #deleteTemplate,
          [templateId],
        ),
        returnValue: _i4.Future<_i2.Either<_i5.Failure, void>>.value(
            _FakeEither_0<_i5.Failure, void>(
          this,
          Invocation.method(
            #deleteTemplate,
            [templateId],
          ),
        )),
      ) as _i4.Future<_i2.Either<_i5.Failure, void>>);

  @override
  _i4.Future<_i2.Either<_i5.Failure, _i7.Message>> sendFromTemplate({
    required String? templateId,
    required Map<String, String>? variables,
    required List<String>? recipientIds,
  }) =>
      (super.noSuchMethod(
        Invocation.method(
          #sendFromTemplate,
          [],
          {
            #templateId: templateId,
            #variables: variables,
            #recipientIds: recipientIds,
          },
        ),
        returnValue: _i4.Future<_i2.Either<_i5.Failure, _i7.Message>>.value(
            _FakeEither_0<_i5.Failure, _i7.Message>(
          this,
          Invocation.method(
            #sendFromTemplate,
            [],
            {
              #templateId: templateId,
              #variables: variables,
              #recipientIds: recipientIds,
            },
          ),
        )),
      ) as _i4.Future<_i2.Either<_i5.Failure, _i7.Message>>);

  @override
  _i4.Future<_i2.Either<_i5.Failure, int>> getUnreadCount(
          {String? organizationId}) =>
      (super.noSuchMethod(
        Invocation.method(
          #getUnreadCount,
          [],
          {#organizationId: organizationId},
        ),
        returnValue: _i4.Future<_i2.Either<_i5.Failure, int>>.value(
            _FakeEither_0<_i5.Failure, int>(
          this,
          Invocation.method(
            #getUnreadCount,
            [],
            {#organizationId: organizationId},
          ),
        )),
      ) as _i4.Future<_i2.Either<_i5.Failure, int>>);

  @override
  _i4.Future<_i2.Either<_i5.Failure, Map<String, dynamic>>> getMessagingStats({
    required String? organizationId,
    DateTime? startDate,
    DateTime? endDate,
  }) =>
      (super.noSuchMethod(
        Invocation.method(
          #getMessagingStats,
          [],
          {
            #organizationId: organizationId,
            #startDate: startDate,
            #endDate: endDate,
          },
        ),
        returnValue:
            _i4.Future<_i2.Either<_i5.Failure, Map<String, dynamic>>>.value(
                _FakeEither_0<_i5.Failure, Map<String, dynamic>>(
          this,
          Invocation.method(
            #getMessagingStats,
            [],
            {
              #organizationId: organizationId,
              #startDate: startDate,
              #endDate: endDate,
            },
          ),
        )),
      ) as _i4.Future<_i2.Either<_i5.Failure, Map<String, dynamic>>>);
}
