Hotfix conflict role Spam/Junk
This commit is contained in:
@@ -16,6 +16,7 @@ import 'package:tmail_ui_user/features/manage_account/data/local/language_cache_
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/log_out_oidc_interactor.dart';
|
||||
import 'package:tmail_ui_user/main/bindings/network/binding_tag.dart';
|
||||
import 'package:tmail_ui_user/main/exceptions/remote_exception.dart';
|
||||
import 'package:tmail_ui_user/main/utils/toast_manager.dart';
|
||||
import 'package:uuid/uuid.dart';
|
||||
|
||||
import 'base_controller_test.mocks.dart';
|
||||
@@ -58,6 +59,7 @@ class SomeOtherException extends RemoteException {}
|
||||
MockSpec<ResponsiveUtils>(),
|
||||
MockSpec<Uuid>(),
|
||||
MockSpec<ApplicationManager>(),
|
||||
MockSpec<ToastManager>(),
|
||||
])
|
||||
void main() {
|
||||
TestWidgetsFlutterBinding.ensureInitialized();
|
||||
@@ -75,6 +77,7 @@ void main() {
|
||||
late MockResponsiveUtils mockResponsiveUtils;
|
||||
late MockUuid mockUuid;
|
||||
late MockApplicationManager mockApplicationManager;
|
||||
late MockToastManager mockToastManager;
|
||||
|
||||
setUpAll(() {
|
||||
mockCachingManager = MockCachingManager();
|
||||
@@ -89,6 +92,7 @@ void main() {
|
||||
mockResponsiveUtils = MockResponsiveUtils();
|
||||
mockUuid = MockUuid();
|
||||
mockApplicationManager = MockApplicationManager();
|
||||
mockToastManager = MockToastManager();
|
||||
|
||||
Get.put<CachingManager>(mockCachingManager);
|
||||
Get.put<LanguageCacheManager>(mockLanguageCacheManager);
|
||||
@@ -106,6 +110,7 @@ void main() {
|
||||
Get.put<ResponsiveUtils>(mockResponsiveUtils);
|
||||
Get.put<Uuid>(mockUuid);
|
||||
Get.put<ApplicationManager>(mockApplicationManager);
|
||||
Get.put<ToastManager>(mockToastManager);
|
||||
Get.testMode = true;
|
||||
|
||||
mockBaseController = MockBaseController();
|
||||
|
||||
@@ -46,6 +46,7 @@ import 'package:tmail_ui_user/features/manage_account/data/local/language_cache_
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_all_identities_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/log_out_oidc_interactor.dart';
|
||||
import 'package:tmail_ui_user/main/bindings/network/binding_tag.dart';
|
||||
import 'package:tmail_ui_user/main/utils/toast_manager.dart';
|
||||
import 'package:uuid/uuid.dart';
|
||||
|
||||
import '../../../../fixtures/email_fixtures.dart';
|
||||
@@ -89,6 +90,7 @@ const fallbackGenerators = {
|
||||
MockSpec<StoreEventAttendanceStatusInteractor>(),
|
||||
MockSpec<PrintUtils>(),
|
||||
MockSpec<ApplicationManager>(),
|
||||
MockSpec<ToastManager>(),
|
||||
])
|
||||
void main() {
|
||||
TestWidgetsFlutterBinding.ensureInitialized();
|
||||
@@ -122,6 +124,7 @@ void main() {
|
||||
final storeEventAttendanceStatusInteractor = MockStoreEventAttendanceStatusInteractor();
|
||||
final printUtils = MockPrintUtils();
|
||||
final applicationManager = MockApplicationManager();
|
||||
final mockToastManager = MockToastManager();
|
||||
|
||||
late SingleEmailController singleEmailController;
|
||||
|
||||
@@ -156,6 +159,7 @@ void main() {
|
||||
Get.put<Uuid>(uuid);
|
||||
Get.put<PrintUtils>(printUtils);
|
||||
Get.put<ApplicationManager>(applicationManager);
|
||||
Get.put<ToastManager>(mockToastManager);
|
||||
|
||||
when(mailboxDashboardController.accountId).thenReturn(Rxn(testAccountId));
|
||||
when(uuid.v4()).thenReturn(testTaskId);
|
||||
|
||||
@@ -0,0 +1,140 @@
|
||||
import 'package:core/data/model/source_type/data_source_type.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/id.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||
import 'package:mockito/annotations.dart';
|
||||
import 'package:mockito/mockito.dart';
|
||||
import 'package:model/extensions/mailbox_extension.dart';
|
||||
import 'package:model/extensions/presentation_mailbox_extension.dart';
|
||||
import 'package:model/extensions/session_extension.dart';
|
||||
import 'package:model/mailbox/presentation_mailbox.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/data/datasource/mailbox_datasource.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/data/datasource_impl/mailbox_cache_datasource_impl.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/model/jmap_mailbox_response.dart';
|
||||
import 'package:tmail_ui_user/features/push_notification/data/datasource/fcm_datasource.dart';
|
||||
import 'package:tmail_ui_user/features/push_notification/data/datasource_impl/cache_fcm_datasource_impl.dart';
|
||||
import 'package:tmail_ui_user/features/push_notification/data/repository/fcm_repository_impl.dart';
|
||||
import 'package:tmail_ui_user/features/push_notification/domain/repository/fcm_repository.dart';
|
||||
import 'package:tmail_ui_user/features/thread/data/datasource/thread_datasource.dart';
|
||||
|
||||
import '../../fixtures/session_fixtures.dart';
|
||||
|
||||
import 'fcm_repository_test.mocks.dart';
|
||||
|
||||
@GenerateMocks([
|
||||
FCMDatasource,
|
||||
CacheFCMDatasourceImpl,
|
||||
MailboxDataSource,
|
||||
MailboxCacheDataSourceImpl,
|
||||
ThreadDataSource
|
||||
])
|
||||
void main() {
|
||||
late FCMDatasource fcmDatasource;
|
||||
late CacheFCMDatasourceImpl cacheFCMDatasourceImpl;
|
||||
late MailboxDataSource mailboxDataSource;
|
||||
late MailboxCacheDataSourceImpl mailboxCacheDataSourceImpl;
|
||||
late ThreadDataSource threadDataSource;
|
||||
late FCMRepository fcmRepository;
|
||||
|
||||
final sessionFixture = SessionFixtures.aliceSession;
|
||||
final accountIdFixture = SessionFixtures.aliceSession.accountId;
|
||||
final userNameFixture = SessionFixtures.aliceSession.username;
|
||||
|
||||
group('getMailboxesNotPutNotifications_method::test', () {
|
||||
setUp(() {
|
||||
fcmDatasource = MockFCMDatasource();
|
||||
cacheFCMDatasourceImpl = MockCacheFCMDatasourceImpl();
|
||||
mailboxDataSource = MockMailboxDataSource();
|
||||
mailboxCacheDataSourceImpl = MockMailboxCacheDataSourceImpl();
|
||||
threadDataSource = MockThreadDataSource();
|
||||
fcmRepository = FCMRepositoryImpl(
|
||||
{
|
||||
DataSourceType.network: fcmDatasource,
|
||||
DataSourceType.local: cacheFCMDatasourceImpl
|
||||
},
|
||||
threadDataSource,
|
||||
{
|
||||
DataSourceType.network: mailboxDataSource,
|
||||
DataSourceType.local: mailboxCacheDataSourceImpl
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
test('should returns mailboxes with notifications deactivated from local cache', () async {
|
||||
// Arrange
|
||||
final Mailbox mailbox1 = Mailbox(
|
||||
id: MailboxId(Id('spam-id')),
|
||||
role: PresentationMailbox.roleSpam);
|
||||
final Mailbox mailbox2 = Mailbox(
|
||||
id: MailboxId(Id('inbox-id')),
|
||||
role: PresentationMailbox.roleInbox);
|
||||
when(mailboxCacheDataSourceImpl.getAllMailboxCache(
|
||||
accountIdFixture,
|
||||
userNameFixture
|
||||
)).thenAnswer((_) async => [mailbox1, mailbox2]);
|
||||
|
||||
// Act
|
||||
final result = await fcmRepository.getMailboxesNotPutNotifications(
|
||||
sessionFixture,
|
||||
accountIdFixture);
|
||||
|
||||
// Assert
|
||||
expect(mailbox1.pushNotificationDeactivated, isTrue);
|
||||
expect(mailbox2.pushNotificationDeactivated, isFalse);
|
||||
expect(result, hasLength(1));
|
||||
expect(result.first.pushNotificationDeactivated, isTrue);
|
||||
});
|
||||
|
||||
test('should falls back to network source if local cache is empty', () async {
|
||||
// Arrange
|
||||
when(mailboxCacheDataSourceImpl.getAllMailboxCache(
|
||||
accountIdFixture,
|
||||
userNameFixture
|
||||
)).thenAnswer((_) async => []);
|
||||
|
||||
final Mailbox mailbox1 = Mailbox(
|
||||
id: MailboxId(Id('spam-id')),
|
||||
role: PresentationMailbox.roleSpam);
|
||||
final mailboxResponse = JmapMailboxResponse(mailboxes: [mailbox1]);
|
||||
when(mailboxDataSource.getAllMailbox(
|
||||
sessionFixture,
|
||||
accountIdFixture
|
||||
)).thenAnswer((_) async => mailboxResponse);
|
||||
|
||||
// Act
|
||||
final result = await fcmRepository.getMailboxesNotPutNotifications(
|
||||
sessionFixture,
|
||||
accountIdFixture);
|
||||
|
||||
// Assert
|
||||
expect(mailbox1.pushNotificationDeactivated, isTrue);
|
||||
expect(result, hasLength(1));
|
||||
expect(result.first.pushNotificationDeactivated, isTrue);
|
||||
});
|
||||
|
||||
test('should returns empty list if no mailboxes have notifications deactivated', () async {
|
||||
// Arrange
|
||||
final Mailbox mailbox1 = Mailbox(
|
||||
id: MailboxId(Id('inbox-id')),
|
||||
role: PresentationMailbox.roleInbox);
|
||||
when(mailboxCacheDataSourceImpl.getAllMailboxCache(
|
||||
accountIdFixture,
|
||||
userNameFixture
|
||||
)).thenAnswer((_) async => [mailbox1]);
|
||||
final mailboxResponse = JmapMailboxResponse(mailboxes: [mailbox1]);
|
||||
when(mailboxDataSource.getAllMailbox(
|
||||
sessionFixture,
|
||||
accountIdFixture
|
||||
)).thenAnswer((_) async => mailboxResponse);
|
||||
|
||||
// Act
|
||||
final result = await fcmRepository.getMailboxesNotPutNotifications(
|
||||
sessionFixture,
|
||||
accountIdFixture);
|
||||
|
||||
// Assert
|
||||
expect(mailbox1.pushNotificationDeactivated, isFalse);
|
||||
expect(result, isEmpty);
|
||||
});
|
||||
});
|
||||
}
|
||||
@@ -28,6 +28,7 @@ import 'package:tmail_ui_user/features/manage_account/data/local/language_cache_
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/log_out_oidc_interactor.dart';
|
||||
import 'package:tmail_ui_user/main/bindings/network/binding_tag.dart';
|
||||
import 'package:tmail_ui_user/main/utils/email_receive_manager.dart';
|
||||
import 'package:tmail_ui_user/main/utils/toast_manager.dart';
|
||||
import 'package:uuid/uuid.dart';
|
||||
|
||||
import 'home_controller_test.mocks.dart';
|
||||
@@ -53,6 +54,7 @@ import 'home_controller_test.mocks.dart';
|
||||
MockSpec<CachingManager>(),
|
||||
MockSpec<LanguageCacheManager>(),
|
||||
MockSpec<ApplicationManager>(),
|
||||
MockSpec<ToastManager>(),
|
||||
])
|
||||
void main() {
|
||||
TestWidgetsFlutterBinding.ensureInitialized();
|
||||
@@ -80,6 +82,7 @@ void main() {
|
||||
late MockResponsiveUtils mockResponsiveUtils;
|
||||
late MockUuid mockUuid;
|
||||
late MockApplicationManager mockApplicationManager;
|
||||
late MockToastManager mockToastManager;
|
||||
|
||||
setUpAll(() {
|
||||
cleanupEmailCacheInteractor = MockCleanupEmailCacheInteractor();
|
||||
@@ -106,6 +109,7 @@ void main() {
|
||||
mockResponsiveUtils = MockResponsiveUtils();
|
||||
mockUuid = MockUuid();
|
||||
mockApplicationManager = MockApplicationManager();
|
||||
mockToastManager = MockToastManager();
|
||||
|
||||
Get.put<GetSessionInteractor>(mockGetSessionInteractor);
|
||||
Get.put<GetAuthenticatedAccountInteractor>(mockGetAuthenticatedAccountInteractor);
|
||||
@@ -127,6 +131,7 @@ void main() {
|
||||
Get.put<ResponsiveUtils>(mockResponsiveUtils);
|
||||
Get.put<Uuid>(mockUuid);
|
||||
Get.put<ApplicationManager>(mockApplicationManager);
|
||||
Get.put<ToastManager>(mockToastManager);
|
||||
Get.testMode = true;
|
||||
|
||||
homeController = HomeController(
|
||||
|
||||
@@ -37,6 +37,7 @@ import 'package:tmail_ui_user/features/public_asset/domain/usecase/create_public
|
||||
import 'package:tmail_ui_user/features/public_asset/domain/usecase/delete_public_assets_interactor.dart';
|
||||
import 'package:tmail_ui_user/main/bindings/network/binding_tag.dart';
|
||||
import 'package:tmail_ui_user/main/exceptions/remote_exception_thrower.dart';
|
||||
import 'package:tmail_ui_user/main/utils/toast_manager.dart';
|
||||
import 'package:uuid/uuid.dart';
|
||||
import 'package:worker_manager/worker_manager.dart';
|
||||
|
||||
@@ -56,6 +57,7 @@ import 'identity_creator_controller_test.mocks.dart';
|
||||
MockSpec<ResponsiveUtils>(),
|
||||
MockSpec<Uuid>(),
|
||||
MockSpec<ApplicationManager>(),
|
||||
MockSpec<ToastManager>(),
|
||||
// Identity creator controller mockspecs
|
||||
MockSpec<VerifyNameInteractor>(),
|
||||
MockSpec<GetAllIdentitiesInteractor>(),
|
||||
@@ -95,6 +97,7 @@ void main() {
|
||||
late MockResponsiveUtils mockResponsiveUtils;
|
||||
late MockUuid mockUuid;
|
||||
late MockApplicationManager mockApplicationManager;
|
||||
late MockToastManager mockToastManager;
|
||||
|
||||
setUpAll(() {
|
||||
//mock base controller
|
||||
@@ -110,6 +113,7 @@ void main() {
|
||||
mockResponsiveUtils = MockResponsiveUtils();
|
||||
mockUuid = MockUuid();
|
||||
mockApplicationManager = MockApplicationManager();
|
||||
mockToastManager = MockToastManager();
|
||||
|
||||
Get.put<CachingManager>(mockCachingManager);
|
||||
Get.put<LanguageCacheManager>(mockLanguageCacheManager);
|
||||
@@ -127,6 +131,7 @@ void main() {
|
||||
Get.put<ResponsiveUtils>(mockResponsiveUtils);
|
||||
Get.put<Uuid>(mockUuid);
|
||||
Get.put<ApplicationManager>(mockApplicationManager);
|
||||
Get.put<ToastManager>(mockToastManager);
|
||||
|
||||
//mock identity creator controller
|
||||
mockVerifyNameInteractor = MockVerifyNameInteractor();
|
||||
|
||||
@@ -34,6 +34,7 @@ import 'package:tmail_ui_user/features/login/presentation/login_form_type.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/data/local/language_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/log_out_oidc_interactor.dart';
|
||||
import 'package:tmail_ui_user/main/bindings/network/binding_tag.dart';
|
||||
import 'package:tmail_ui_user/main/utils/toast_manager.dart';
|
||||
import 'package:uuid/uuid.dart';
|
||||
|
||||
import 'login_controller_test.mocks.dart';
|
||||
@@ -67,6 +68,7 @@ import 'login_controller_test.mocks.dart';
|
||||
MockSpec<CachingManager>(),
|
||||
MockSpec<LanguageCacheManager>(),
|
||||
MockSpec<ApplicationManager>(),
|
||||
MockSpec<ToastManager>(),
|
||||
])
|
||||
void main() {
|
||||
late MockAuthenticationInteractor mockAuthenticationInteractor;
|
||||
@@ -97,6 +99,7 @@ void main() {
|
||||
late MockResponsiveUtils mockResponsiveUtils;
|
||||
late MockUuid mockUuid;
|
||||
late MockApplicationManager mockApplicationManager;
|
||||
late MockToastManager mockToastManager;
|
||||
|
||||
late LoginController loginController;
|
||||
|
||||
@@ -134,6 +137,7 @@ void main() {
|
||||
mockResponsiveUtils = MockResponsiveUtils();
|
||||
mockUuid = MockUuid();
|
||||
mockApplicationManager = MockApplicationManager();
|
||||
mockToastManager = MockToastManager();
|
||||
|
||||
Get.put<GetSessionInteractor>(mockGetSessionInteractor);
|
||||
Get.put<GetAuthenticatedAccountInteractor>(mockGetAuthenticatedAccountInteractor);
|
||||
@@ -154,6 +158,7 @@ void main() {
|
||||
Get.put<ResponsiveUtils>(mockResponsiveUtils);
|
||||
Get.put<Uuid>(mockUuid);
|
||||
Get.put<ApplicationManager>(mockApplicationManager);
|
||||
Get.put<ToastManager>(mockToastManager);
|
||||
Get.testMode = true;
|
||||
|
||||
loginController = LoginController(
|
||||
|
||||
@@ -8,7 +8,7 @@ import 'package:tmail_ui_user/features/mailbox/data/datasource/state_datasource.
|
||||
import 'package:tmail_ui_user/features/mailbox/data/datasource_impl/mailbox_cache_datasource_impl.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/data/model/state_type.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/data/repository/mailbox_repository_impl.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/exceptions/set_mailbox_method_exception.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/exceptions/mailbox_exception.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/model/cache_mailbox_response.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/model/jmap_mailbox_response.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/repository/mailbox_repository.dart';
|
||||
|
||||
+112
-62
@@ -92,6 +92,7 @@ import 'package:tmail_ui_user/main/bindings/network/binding_tag.dart';
|
||||
import 'package:tmail_ui_user/main/utils/email_receive_manager.dart';
|
||||
import 'package:tmail_ui_user/features/network_connection/presentation/network_connection_controller.dart'
|
||||
if (dart.library.html) 'package:tmail_ui_user/features/network_connection/presentation/web_network_connection_controller.dart';
|
||||
import 'package:tmail_ui_user/main/utils/toast_manager.dart';
|
||||
import 'package:uuid/uuid.dart';
|
||||
|
||||
import 'mailbox_dashboard_controller_test.mocks.dart';
|
||||
@@ -168,6 +169,7 @@ const fallbackGenerators = {
|
||||
MockSpec<LanguageCacheManager>(),
|
||||
MockSpec<RemoveComposerCacheOnWebInteractor>(),
|
||||
MockSpec<ApplicationManager>(),
|
||||
MockSpec<ToastManager>(),
|
||||
MockSpec<GetAllIdentitiesInteractor>(),
|
||||
])
|
||||
void main() {
|
||||
@@ -230,6 +232,7 @@ void main() {
|
||||
final responsiveUtils = MockResponsiveUtils();
|
||||
final uuid = MockUuid();
|
||||
final applicationManager = MockApplicationManager();
|
||||
final mockToastManager = MockToastManager();
|
||||
|
||||
// mock reloadable controller Get dependencies
|
||||
final getSessionInteractor = MockGetSessionInteractor();
|
||||
@@ -271,76 +274,80 @@ void main() {
|
||||
final testMailboxId = MailboxId(Id('1'));
|
||||
final testAccountId = AccountId(Id('123'));
|
||||
|
||||
setUp(() {
|
||||
Get.put<RemoveEmailDraftsInteractor>(removeEmailDraftsInteractor);
|
||||
Get.put<EmailReceiveManager>(emailReceiveManager);
|
||||
Get.put<DownloadController>(downloadController);
|
||||
Get.put<AppGridDashboardController>(appGridDashboardController);
|
||||
Get.put<SpamReportController>(spamReportController);
|
||||
Get.put<NetworkConnectionController>(networkConnectionController);
|
||||
Get.put<CachingManager>(cachingManager);
|
||||
Get.put<LanguageCacheManager>(languageCacheManager);
|
||||
Get.put<AuthorizationInterceptors>(authorizationInterceptors);
|
||||
Get.put<AuthorizationInterceptors>(
|
||||
authorizationInterceptors,
|
||||
tag: BindingTag.isolateTag,
|
||||
);
|
||||
Get.put<DynamicUrlInterceptors>(dynamicUrlInterceptors);
|
||||
Get.put<DeleteCredentialInteractor>(deleteCredentialInteractor);
|
||||
Get.put<LogoutOidcInteractor>(logoutOidcInteractor);
|
||||
Get.put<DeleteAuthorityOidcInteractor>(deleteAuthorityOidcInteractor);
|
||||
Get.put<AppToast>(appToast);
|
||||
Get.put<ImagePaths>(imagePaths);
|
||||
Get.put<ResponsiveUtils>(responsiveUtils);
|
||||
Get.put<Uuid>(uuid);
|
||||
Get.put<ApplicationManager>(applicationManager);
|
||||
Get.put<ToastManager>(mockToastManager);
|
||||
Get.put<GetSessionInteractor>(getSessionInteractor);
|
||||
Get.put<GetAuthenticatedAccountInteractor>(getAuthenticatedAccountInteractor);
|
||||
Get.put<UpdateAccountCacheInteractor>(updateAccountCacheInteractor);
|
||||
Get.put<GetAllIdentitiesInteractor>(getAllIdentitiesInteractor);
|
||||
Get.put<RemoveComposerCacheOnWebInteractor>(removeComposerCacheOnWebInteractor);
|
||||
|
||||
searchController = SearchController(
|
||||
quickSearchEmailInteractor,
|
||||
saveRecentSearchInteractor,
|
||||
getAllRecentSearchLatestInteractor);
|
||||
Get.put(searchController);
|
||||
|
||||
Get.testMode = true;
|
||||
|
||||
mailboxDashboardController = MailboxDashBoardController(
|
||||
moveToMailboxInteractor,
|
||||
deleteEmailPermanentlyInteractor,
|
||||
markAsMailboxReadInteractor,
|
||||
getEmailCacheOnWebInteractor,
|
||||
markAsEmailReadInteractor,
|
||||
markAsStarEmailInteractor,
|
||||
markAsMultipleEmailReadInteractor,
|
||||
markAsStarMultipleEmailInteractor,
|
||||
moveMultipleEmailToMailboxInteractor,
|
||||
emptyTrashFolderInteractor,
|
||||
deleteMultipleEmailsPermanentlyInteractor,
|
||||
getEmailByIdInteractor,
|
||||
sendEmailInteractor,
|
||||
storeSendingEmailInteractor,
|
||||
updateSendingEmailInteractor,
|
||||
getAllSendingEmailInteractor,
|
||||
storeSessionInteractor,
|
||||
emptySpamFolderInteractor,
|
||||
deleteSendingEmailInteractor,
|
||||
unsubscribeEmailInteractor,
|
||||
restoreDeletedMessageInteractor,
|
||||
getRestoredDeletedMessageInteractor,
|
||||
removeComposerCacheOnWebInteractor,
|
||||
getAllIdentitiesInteractor,
|
||||
);
|
||||
});
|
||||
|
||||
group('search/sort/filter feature:', () {
|
||||
setUp(() {
|
||||
getEmailsInMailboxInteractor = MockGetEmailsInMailboxInteractor();
|
||||
|
||||
Get.put<RemoveEmailDraftsInteractor>(removeEmailDraftsInteractor);
|
||||
Get.put<EmailReceiveManager>(emailReceiveManager);
|
||||
Get.put<DownloadController>(downloadController);
|
||||
Get.put<AppGridDashboardController>(appGridDashboardController);
|
||||
Get.put<SpamReportController>(spamReportController);
|
||||
Get.put<NetworkConnectionController>(networkConnectionController);
|
||||
Get.put<CachingManager>(cachingManager);
|
||||
Get.put<LanguageCacheManager>(languageCacheManager);
|
||||
Get.put<AuthorizationInterceptors>(authorizationInterceptors);
|
||||
Get.put<AuthorizationInterceptors>(
|
||||
authorizationInterceptors,
|
||||
tag: BindingTag.isolateTag,
|
||||
);
|
||||
Get.put<DynamicUrlInterceptors>(dynamicUrlInterceptors);
|
||||
Get.put<DeleteCredentialInteractor>(deleteCredentialInteractor);
|
||||
Get.put<LogoutOidcInteractor>(logoutOidcInteractor);
|
||||
Get.put<DeleteAuthorityOidcInteractor>(deleteAuthorityOidcInteractor);
|
||||
Get.put<AppToast>(appToast);
|
||||
Get.put<ImagePaths>(imagePaths);
|
||||
Get.put<ResponsiveUtils>(responsiveUtils);
|
||||
Get.put<Uuid>(uuid);
|
||||
Get.put<ApplicationManager>(applicationManager);
|
||||
Get.put<GetSessionInteractor>(getSessionInteractor);
|
||||
Get.put<GetAuthenticatedAccountInteractor>(getAuthenticatedAccountInteractor);
|
||||
Get.put<UpdateAccountCacheInteractor>(updateAccountCacheInteractor);
|
||||
Get.put<GetAllIdentitiesInteractor>(getAllIdentitiesInteractor);
|
||||
Get.put<RemoveComposerCacheOnWebInteractor>(removeComposerCacheOnWebInteractor);
|
||||
|
||||
Get.testMode = true;
|
||||
|
||||
when(emailReceiveManager.pendingEmailAddressInfo).thenAnswer((_) => BehaviorSubject.seeded(null));
|
||||
when(emailReceiveManager.pendingEmailContentInfo).thenAnswer((_) => BehaviorSubject.seeded(null));
|
||||
when(emailReceiveManager.pendingFileInfo).thenAnswer((_) => BehaviorSubject.seeded([]));
|
||||
|
||||
searchController = SearchController(
|
||||
quickSearchEmailInteractor,
|
||||
saveRecentSearchInteractor,
|
||||
getAllRecentSearchLatestInteractor);
|
||||
Get.put(searchController);
|
||||
|
||||
mailboxDashboardController = MailboxDashBoardController(
|
||||
moveToMailboxInteractor,
|
||||
deleteEmailPermanentlyInteractor,
|
||||
markAsMailboxReadInteractor,
|
||||
getEmailCacheOnWebInteractor,
|
||||
markAsEmailReadInteractor,
|
||||
markAsStarEmailInteractor,
|
||||
markAsMultipleEmailReadInteractor,
|
||||
markAsStarMultipleEmailInteractor,
|
||||
moveMultipleEmailToMailboxInteractor,
|
||||
emptyTrashFolderInteractor,
|
||||
deleteMultipleEmailsPermanentlyInteractor,
|
||||
getEmailByIdInteractor,
|
||||
sendEmailInteractor,
|
||||
storeSendingEmailInteractor,
|
||||
updateSendingEmailInteractor,
|
||||
getAllSendingEmailInteractor,
|
||||
storeSessionInteractor,
|
||||
emptySpamFolderInteractor,
|
||||
deleteSendingEmailInteractor,
|
||||
unsubscribeEmailInteractor,
|
||||
restoreDeletedMessageInteractor,
|
||||
getRestoredDeletedMessageInteractor,
|
||||
removeComposerCacheOnWebInteractor,
|
||||
getAllIdentitiesInteractor,
|
||||
);
|
||||
Get.put(mailboxDashboardController);
|
||||
mailboxDashboardController.onReady();
|
||||
|
||||
@@ -483,4 +490,47 @@ void main() {
|
||||
|
||||
tearDown(Get.deleteAll);
|
||||
});
|
||||
|
||||
group('spamMailboxId:test', () {
|
||||
test('should returns Junk mailbox ID if it exists', () {
|
||||
// Arrange
|
||||
final spamMailboxId = MailboxId(Id('spam-id'));
|
||||
final junkMailboxId = MailboxId(Id('junk-id'));
|
||||
final mapDefaultMailboxIdByRole = {
|
||||
PresentationMailbox.roleSpam: spamMailboxId,
|
||||
PresentationMailbox.roleJunk: junkMailboxId,
|
||||
};
|
||||
mailboxDashboardController.setMapDefaultMailboxIdByRole(mapDefaultMailboxIdByRole);
|
||||
// Act
|
||||
final spamId = mailboxDashboardController.spamMailboxId;
|
||||
|
||||
// Assert
|
||||
expect(spamId, equals(junkMailboxId));
|
||||
});
|
||||
|
||||
test('should returns junk mailbox ID if spam ID does not exist', () {
|
||||
// Arrange
|
||||
final junkMailboxId = MailboxId(Id('junk-id'));
|
||||
final mapDefaultMailboxIdByRole = {
|
||||
PresentationMailbox.roleJunk: junkMailboxId,
|
||||
};
|
||||
mailboxDashboardController.setMapDefaultMailboxIdByRole(mapDefaultMailboxIdByRole);
|
||||
// Act
|
||||
final spamId = mailboxDashboardController.spamMailboxId;
|
||||
|
||||
// Assert
|
||||
expect(spamId, equals(junkMailboxId));
|
||||
});
|
||||
|
||||
test('should returns null if neither spam nor junk mailbox ID exists', () {
|
||||
// Arrange
|
||||
final mapDefaultMailboxIdByRole = <Role, MailboxId>{};
|
||||
mailboxDashboardController.setMapDefaultMailboxIdByRole(mapDefaultMailboxIdByRole);
|
||||
// Act
|
||||
final spamId = mailboxDashboardController.spamMailboxId;
|
||||
|
||||
// Assert
|
||||
expect(spamId, isNull);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
+5
@@ -27,6 +27,7 @@ import 'package:tmail_ui_user/features/public_asset/domain/usecase/delete_public
|
||||
import 'package:tmail_ui_user/features/public_asset/domain/usecase/remove_identity_from_public_assets_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/public_asset/presentation/clean_up_public_assets_interactor_bindings.dart';
|
||||
import 'package:tmail_ui_user/main/bindings/network/binding_tag.dart';
|
||||
import 'package:tmail_ui_user/main/utils/toast_manager.dart';
|
||||
import 'package:uuid/uuid.dart';
|
||||
|
||||
import 'identities_controller_test.mocks.dart';
|
||||
@@ -51,6 +52,7 @@ const fallbackGenerators = {
|
||||
MockSpec<ResponsiveUtils>(),
|
||||
MockSpec<Uuid>(),
|
||||
MockSpec<ApplicationManager>(),
|
||||
MockSpec<ToastManager>(),
|
||||
|
||||
// Identities controller mockspecs
|
||||
MockSpec<GetAllIdentitiesInteractor>(),
|
||||
@@ -87,6 +89,7 @@ void main() {
|
||||
late MockResponsiveUtils mockResponsiveUtils;
|
||||
late MockUuid mockUuid;
|
||||
late MockApplicationManager mockApplicationManager;
|
||||
late MockToastManager mockToastManager;
|
||||
|
||||
setUpAll(() {
|
||||
//mock base controller
|
||||
@@ -102,6 +105,7 @@ void main() {
|
||||
mockResponsiveUtils = MockResponsiveUtils();
|
||||
mockUuid = MockUuid();
|
||||
mockApplicationManager = MockApplicationManager();
|
||||
mockToastManager = MockToastManager();
|
||||
|
||||
Get.put<CachingManager>(mockCachingManager);
|
||||
Get.put<LanguageCacheManager>(mockLanguageCacheManager);
|
||||
@@ -119,6 +123,7 @@ void main() {
|
||||
Get.put<ResponsiveUtils>(mockResponsiveUtils);
|
||||
Get.put<Uuid>(mockUuid);
|
||||
Get.put<ApplicationManager>(mockApplicationManager);
|
||||
Get.put<ToastManager>(mockToastManager);
|
||||
|
||||
// mock identities controller
|
||||
mockGetAllIdentitiesInteractor = MockGetAllIdentitiesInteractor();
|
||||
|
||||
Reference in New Issue
Block a user