TF-145 Create and write unit-test for EmailCacheClient

This commit is contained in:
dab246
2021-10-07 01:03:29 +07:00
committed by Dat H. Pham
parent f5874a7e49
commit b27472091b
9 changed files with 533 additions and 0 deletions
@@ -0,0 +1,8 @@
import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
import 'package:tmail_ui_user/features/thread/data/model/email_address_hive_cache.dart';
extension EmailAddressExtension on EmailAddress {
EmailAddressHiveCache toEmailAddressHiveCache() => EmailAddressHiveCache(name, email);
}
@@ -0,0 +1,25 @@
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:tmail_ui_user/features/thread/data/model/email_cache.dart';
import 'package:tmail_ui_user/features/thread/data/extensions/map_keywords_extension.dart';
import 'package:tmail_ui_user/features/thread/data/extensions/email_address_extension.dart';
extension EmailExtension on Email {
EmailCache toEmailCache() {
return EmailCache(
id.toString(),
keywords: keywords?.toMapString(),
size: size?.value.round(),
receivedAt: receivedAt?.value,
hasAttachment: hasAttachment,
preview: preview,
subject: subject,
sentAt: sentAt?.value,
from: from?.map((emailAddress) => emailAddress.toEmailAddressHiveCache()).toList(),
to: to?.map((emailAddress) => emailAddress.toEmailAddressHiveCache()).toList(),
cc: cc?.map((emailAddress) => emailAddress.toEmailAddressHiveCache()).toList(),
bcc: bcc?.map((emailAddress) => emailAddress.toEmailAddressHiveCache()).toList(),
replyTo: replyTo?.map((emailAddress) => emailAddress.toEmailAddressHiveCache()).toList(),
);
}
}
@@ -0,0 +1,7 @@
import 'package:jmap_dart_client/jmap/mail/email/keyword_identifier.dart';
extension MapKeywordsExtension on Map<KeyWordIdentifier, bool> {
Map<String, bool> toMapString() => Map.fromIterables(keys.map((keyword) => keyword.value), values);
}