Create unittest for i18n_noop[s]
[libi2ncommon] / test / test_i18n.cpp
index c7fa4d1..e0470ca 100644 (file)
@@ -97,4 +97,61 @@ BOOST_AUTO_TEST_CASE(StdStringInput)
     BOOST_CHECK_EQUAL("dummy test string", result);
 }
 
+BOOST_AUTO_TEST_CASE(PluralString0)
+{
+    // Zero elements get the plural message (in the default "plural" configuration)
+    BOOST_CHECK_EQUAL("xxx new messages", i18n_plural("One new message", "xxx new messages", 0));
+}
+
+BOOST_AUTO_TEST_CASE(PluralString1)
+{
+    BOOST_CHECK_EQUAL("One new message", i18n_plural("One new message", "xxx new messages", 1));
+}
+
+BOOST_AUTO_TEST_CASE(PluralString2)
+{
+    BOOST_CHECK_EQUAL("xxx new messages", i18n_plural("One new message", "xxx new messages", 2));
+}
+
+BOOST_AUTO_TEST_CASE(PluralStringWithParamter1)
+{
+    vector<string> data;
+    data.push_back("1");
+
+    BOOST_CHECK_EQUAL("1 new message", i18n_get_string(i18n_plural("$0 new message", "$0 new messages", 1), data));
+}
+
+BOOST_AUTO_TEST_CASE(PluralStringWithParamter2)
+{
+    vector<string> data;
+    data.push_back("500");
+
+    BOOST_CHECK_EQUAL("500 new messages", i18n_get_string(i18n_plural("$0 new message", "$0 new messages", 500), data));
+}
+
+BOOST_AUTO_TEST_CASE(Convenience0)
+{
+    string result = i18n_get_string("$0!", "Energize");
+    BOOST_CHECK_EQUAL("Energize!", result);
+}
+
+BOOST_AUTO_TEST_CASE(Convenience1)
+{
+    string result = i18n_get_string("Make $0 $1!", "it", "so");
+    BOOST_CHECK_EQUAL("Make it so!", result);
+}
+
+BOOST_AUTO_TEST_CASE(Convenience2)
+{
+    string result = i18n_get_string("$0, $1, $2!", "Tea", "Earl Grey", "hot");
+    BOOST_CHECK_EQUAL("Tea, Earl Grey, hot!", result);
+}
+
+BOOST_AUTO_TEST_CASE(Noop)
+{
+    BOOST_CHECK_EQUAL(i18n_noop("Test"), "Test");
+    BOOST_CHECK_EQUAL(i18n_noop(" Test "), " Test ");
+    BOOST_CHECK_EQUAL(i18n_noops("Test") + "2", "Test2");   // this only works if first operand of "+" is string
+}
+
 BOOST_AUTO_TEST_SUITE_END()