TF-2764 Remove ViewAttachmentForWebInteractor
This commit is contained in:
@@ -2,28 +2,21 @@ import 'dart:ui';
|
||||
|
||||
import 'package:core/core.dart';
|
||||
import 'package:dartz/dartz.dart' hide State;
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:http_parser/http_parser.dart';
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/capability/calendar_event_capability.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/capability/capability_identifier.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/state.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/user_name.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/calendar/calendar_event.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/calendar/reply/calendar_event_accept_response.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:mockito/annotations.dart';
|
||||
import 'package:mockito/mockito.dart';
|
||||
import 'package:model/model.dart';
|
||||
import 'package:tmail_ui_user/features/caching/caching_manager.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/event_action.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/calendar_event_accept_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/parse_calendar_event_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/view_attachment_for_web_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/calendar_event_accept_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/maybe_calendar_event_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/calendar_event_reject_interactor.dart';
|
||||
@@ -37,7 +30,6 @@ import 'package:tmail_ui_user/features/email/domain/usecases/move_to_mailbox_int
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/print_email_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/store_event_attendance_status_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/store_opened_email_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/view_attachment_for_web_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/controller/email_supervisor_controller.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/controller/single_email_controller.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/model/blob_calendar_event.dart';
|
||||
@@ -71,7 +63,6 @@ const fallbackGenerators = {
|
||||
MockSpec<DownloadAttachmentForWebInteractor>(),
|
||||
MockSpec<GetAllIdentitiesInteractor>(),
|
||||
MockSpec<StoreOpenedEmailInteractor>(),
|
||||
MockSpec<ViewAttachmentForWebInteractor>(),
|
||||
MockSpec<MailboxDashBoardController>(fallbackGenerators: fallbackGenerators),
|
||||
MockSpec<EmailSupervisorController>(fallbackGenerators: fallbackGenerators),
|
||||
MockSpec<DownloadManager>(fallbackGenerators: fallbackGenerators),
|
||||
@@ -91,6 +82,7 @@ const fallbackGenerators = {
|
||||
MockSpec<MaybeCalendarEventInteractor>(),
|
||||
MockSpec<RejectCalendarEventInteractor>(),
|
||||
MockSpec<StoreEventAttendanceStatusInteractor>(),
|
||||
MockSpec<PrintUtils>(),
|
||||
])
|
||||
void main() {
|
||||
TestWidgetsFlutterBinding.ensureInitialized();
|
||||
@@ -106,7 +98,6 @@ void main() {
|
||||
MockDownloadAttachmentForWebInteractor();
|
||||
final getAllIdentitiesInteractor = MockGetAllIdentitiesInteractor();
|
||||
final storeOpenedEmailInteractor = MockStoreOpenedEmailInteractor();
|
||||
final viewAttachmentForWebInteractor = MockViewAttachmentForWebInteractor();
|
||||
final mailboxDashboardController = MockMailboxDashBoardController();
|
||||
final emailSupervisorController = MockEmailSupervisorController();
|
||||
final downloadManager = MockDownloadManager();
|
||||
@@ -123,6 +114,7 @@ void main() {
|
||||
final uuid = MockUuid();
|
||||
final printEmailInteractor = MockPrintEmailInteractor();
|
||||
final storeEventAttendanceStatusInteractor = MockStoreEventAttendanceStatusInteractor();
|
||||
final printUtils = MockPrintUtils();
|
||||
|
||||
late SingleEmailController singleEmailController;
|
||||
|
||||
@@ -135,8 +127,6 @@ void main() {
|
||||
),
|
||||
}, {}, {}, UserName('data'), google, google, google, google, State('1'));
|
||||
const testTaskId = 'taskId';
|
||||
final testDownloadTaskId = DownloadTaskId(testTaskId);
|
||||
final testBytes = Uint8List(123);
|
||||
|
||||
setUpAll(() {
|
||||
Get.put<MailboxDashBoardController>(mailboxDashboardController);
|
||||
@@ -157,6 +147,7 @@ void main() {
|
||||
Get.put<ImagePaths>(imagePaths);
|
||||
Get.put<ResponsiveUtils>(responsiveUtils);
|
||||
Get.put<Uuid>(uuid);
|
||||
Get.put<PrintUtils>(printUtils);
|
||||
|
||||
when(mailboxDashboardController.accountId).thenReturn(Rxn(testAccountId));
|
||||
when(uuid.v4()).thenReturn(testTaskId);
|
||||
@@ -174,115 +165,11 @@ void main() {
|
||||
downloadAttachmentForWebInteractor,
|
||||
getAllIdentitiesInteractor,
|
||||
storeOpenedEmailInteractor,
|
||||
viewAttachmentForWebInteractor,
|
||||
printEmailInteractor,
|
||||
storeEventAttendanceStatusInteractor,
|
||||
);
|
||||
});
|
||||
|
||||
group('single email controller', () {
|
||||
test(
|
||||
'should call execute on ViewAttachmentForWebInteractor '
|
||||
'when viewAttachmentForWeb is called',
|
||||
() {
|
||||
// arrange
|
||||
when(mailboxDashboardController.sessionCurrent).thenReturn(testSession);
|
||||
final testAttachment = Attachment();
|
||||
|
||||
// act
|
||||
singleEmailController.viewAttachmentForWeb(testAttachment);
|
||||
|
||||
// assert
|
||||
verify(viewAttachmentForWebInteractor.execute(
|
||||
any,
|
||||
testAttachment,
|
||||
testAccountId,
|
||||
any,
|
||||
any,
|
||||
)).called(1);
|
||||
},
|
||||
);
|
||||
|
||||
test(
|
||||
'should trigger mailboxDashBoardController.deleteDownloadTask & downloadManager.openDownloadedFileWeb'
|
||||
'when attachment mime type is pdf',
|
||||
() async {
|
||||
// arrange
|
||||
const attachmentName = 'test_name.pdf';
|
||||
final testAttachment = Attachment(
|
||||
type: MediaType('application', 'pdf'),
|
||||
name: attachmentName);
|
||||
when(mailboxDashboardController.sessionCurrent).thenReturn(testSession);
|
||||
when(viewAttachmentForWebInteractor.execute(
|
||||
testDownloadTaskId,
|
||||
testAttachment,
|
||||
testAccountId,
|
||||
any,
|
||||
any,
|
||||
)).thenAnswer((_) => Stream.value(
|
||||
right(ViewAttachmentForWebSuccess(
|
||||
testDownloadTaskId,
|
||||
testAttachment,
|
||||
testBytes,
|
||||
)),
|
||||
));
|
||||
|
||||
// act
|
||||
singleEmailController.viewAttachmentForWeb(testAttachment);
|
||||
|
||||
// assert
|
||||
await untilCalled(mailboxDashboardController.deleteDownloadTask(any));
|
||||
verify(mailboxDashboardController.deleteDownloadTask(testDownloadTaskId))
|
||||
.called(1);
|
||||
await untilCalled(downloadManager.openDownloadedFileWeb(any, any, any));
|
||||
verify(downloadManager.openDownloadedFileWeb(
|
||||
testBytes,
|
||||
Constant.pdfMimeType,
|
||||
attachmentName,
|
||||
)).called(1);
|
||||
},
|
||||
);
|
||||
|
||||
test(
|
||||
'should trigger mailboxDashBoardController.deleteDownloadTask & downloadManager.createAnchorElementDownloadFileWeb'
|
||||
'when attachment mime type is not pdf',
|
||||
() async {
|
||||
// arrange
|
||||
const testFileName = 'test_file.txt';
|
||||
final testAttachment = Attachment(name: testFileName);
|
||||
when(mailboxDashboardController.sessionCurrent).thenReturn(testSession);
|
||||
when(viewAttachmentForWebInteractor.execute(
|
||||
testDownloadTaskId,
|
||||
testAttachment,
|
||||
testAccountId,
|
||||
any,
|
||||
any,
|
||||
)).thenAnswer((_) => Stream.value(
|
||||
right(ViewAttachmentForWebSuccess(
|
||||
testDownloadTaskId,
|
||||
testAttachment,
|
||||
testBytes,
|
||||
)),
|
||||
));
|
||||
|
||||
// act
|
||||
singleEmailController.viewAttachmentForWeb(testAttachment);
|
||||
|
||||
// assert
|
||||
await untilCalled(mailboxDashboardController.deleteDownloadTask(any));
|
||||
verify(mailboxDashboardController.deleteDownloadTask(testDownloadTaskId))
|
||||
.called(1);
|
||||
await untilCalled(
|
||||
downloadManager.createAnchorElementDownloadFileWeb(any, any),
|
||||
);
|
||||
verify(downloadManager.createAnchorElementDownloadFileWeb(
|
||||
testBytes,
|
||||
testFileName,
|
||||
)).called(1);
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
group('calendar event reply test:', () {
|
||||
final blobId = Id('abc123');
|
||||
final emailId = EmailId(Id('xyz123'));
|
||||
|
||||
Reference in New Issue
Block a user