From 6421d3c8ee2179a70fab96b9d609abaf44a04fd0 Mon Sep 17 00:00:00 2001 From: dab246 Date: Thu, 2 Jan 2025 16:40:57 +0700 Subject: [PATCH] TF-3379 Add unit test for `getCountMailAddressWithoutMe` method --- .../presentattion_email_extension_test.dart | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 model/test/extensions/presentattion_email_extension_test.dart diff --git a/model/test/extensions/presentattion_email_extension_test.dart b/model/test/extensions/presentattion_email_extension_test.dart new file mode 100644 index 000000000..1eebaa313 --- /dev/null +++ b/model/test/extensions/presentattion_email_extension_test.dart @@ -0,0 +1,65 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:jmap_dart_client/jmap/mail/email/email_address.dart'; +import 'package:model/extensions/presentation_email_extension.dart'; +import 'package:model/email/presentation_email.dart'; + +void main() { + group('PresentationEmailExtension::getCountMailAddressWithoutMe::', () { + test('Should return the correct count of email addresses excluding the user', () { + // Arrange + final email = PresentationEmail( + to: {EmailAddress('Alice', 'alice@example.com')}, + cc: {EmailAddress('Bob', 'bob@example.com')}, + bcc: {EmailAddress('Charlie', 'charlie@example.com')}, + from: {EmailAddress('User', 'user@example.com')}, + ); + + // Act + final count = email.getCountMailAddressWithoutMe('user@example.com'); + + // Assert + expect(count, 3); + }); + + test('Should return 0 when all email addresses are the user', () { + // Arrange + final email = PresentationEmail( + to: {EmailAddress('User', 'user@example.com')}, + cc: {EmailAddress('User', 'user@example.com')}, + bcc: {EmailAddress('User', 'user@example.com')}, + from: {EmailAddress('User', 'user@example.com')}, + ); + + // Act + final count = email.getCountMailAddressWithoutMe('user@example.com'); + + // Assert + expect(count, 0); + }); + + test('Should return the correct count excluding multiple instances of the user', () { + // Arrange + final email = PresentationEmail( + to: { + EmailAddress('Alice', 'alice@example.com'), + EmailAddress('User', 'user@example.com') + }, + cc: { + EmailAddress('User', 'user@example.com') + }, + bcc: { + EmailAddress('Charlie', 'charlie@example.com') + }, + from: { + EmailAddress('User', 'user@example.com') + }, + ); + + // Act + final count = email.getCountMailAddressWithoutMe('user@example.com'); + + // Assert + expect(count, 2); + }); + }); +}