mod common;
use common::compare_message;
use fluent_embed::localize;
use icu_locale::{langid, LanguageIdentifier};
use rstest::rstest;
#[localize("tests/locale/**/selectors.ftl")]
pub enum Message {
Emails { unread_emails: u64 },
}
#[rstest]
#[case::zero_en(langid!("en-US"), 0, "You have 0 unread emails.")]
#[case::one_en(langid!("en-US"), 1, "You have 1 unread email.")]
#[case::two_en(langid!("en-US"), 2, "You have 2 unread emails.")]
#[case::max_en(
langid!("en-US"),
u64::MAX,
"You have 18,446,744,073,709,551,615 unread emails."
)]
#[case::zero_fr(langid!("fr"), 0, "Vous avez 0 e-mail non lu.")]
#[case::one_fr(langid!("fr"), 1, "Vous avez 1 e-mail non lu.")]
#[case::two_fr(langid!("fr"), 2, "Vous avez 2 e-mails non lus.")]
#[case::max_fr(langid!("fr"), u64::MAX, "Vous avez 18 446 744 073 709 551 615 e-mails non lus.")]
fn message_for_locale(
#[case] locale: LanguageIdentifier,
#[case] unread_emails: u64,
#[case] expected_message: String,
) {
let data = Message::Emails { unread_emails };
compare_message(data, expected_message, locale);
}