#!/bin/sh
. "${srcdir=.}/init.sh"; path_prepend_ . ../src

# Some tests for C# support

cat <<EOF > xg-cs-1.cs
using GNU.Gettext;
class TestCase {
  public TestCase() {
    GettextResourceManager rm = new GettextResourceManager("test");
    // standard usage
    String test1 = rm.GetString("Test String 1");
    /* C style comment */
    String test2 = rm.GetString("Test String 2");
    // C# "multiline" string
    String test3 = rm.GetString("Test " +
    "String " +
    "3");
    // empty string
    String test4 = rm.GetString("");
#if false
    // commented out through #if
    String test5 = rm.GetString("Test String 5");
#endif
    // verbatim string
    String test5 = rm.GetString(@"first line
second line
third line");
  }
}
EOF

: ${XGETTEXT=xgettext}
${XGETTEXT} --omit-header --no-location -c -d xg-cs-1.tmp xg-cs-1.cs || Exit 1
LC_ALL=C tr -d '\r' < xg-cs-1.tmp.po > xg-cs-1.po || Exit 1

cat <<EOF > xg-cs-1.ok
#. standard usage
msgid "Test String 1"
msgstr ""

#. C style comment
msgid "Test String 2"
msgstr ""

#. C# "multiline" string
msgid "Test String 3"
msgstr ""

#. empty string
msgid ""
msgstr ""

#. commented out through #if
msgid "Test String 5"
msgstr ""

#. verbatim string
msgid ""
"first line\n"
"second line\n"
"third line"
msgstr ""
EOF

: ${DIFF=diff}
${DIFF} xg-cs-1.ok xg-cs-1.po
result=$?

exit $result
