public static void ParseCompletedRequestId(
            string httpScaleRequestId,
            out string siteName,
            out string originalRequestId,
            out string workerName)
        {
            int firstSeparator = httpScaleRequestId.IndexOf('/');

            siteName = IdnHelper.GetUnicode(httpScaleRequestId.Substring(0, firstSeparator));

            int lastSeparator = httpScaleRequestId.LastIndexOf('/');

            originalRequestId = httpScaleRequestId.Substring(0, lastSeparator);
            workerName        = httpScaleRequestId.Substring(lastSeparator + 1);
        }
        public void PunycodeToUnicodeConversionTest()
        {
            Assert.Equal(punycodeStrings.Length, unicodeStrings.Length);
            Assert.Equal(punycodeUserStrings.Length, unicodeUserStrings.Length);

            // Test straight Punycode to Unicode conversion.
            for (int i = 0; i < punycodeStrings.Length; i++)
            {
                Assert.Equal(IdnHelper.GetUnicode(punycodeStrings[i]), unicodeStrings[i]);
            }

            // Test Punycode to Unicode conversion for user names.
            for (int i = 0; i < punycodeUserStrings.Length; i++)
            {
                Assert.Equal(IdnHelper.GetUnicodeForUserName(punycodeUserStrings[i]), unicodeUserStrings[i]);
            }

            // Test user names that start with the $ sign.
            for (int i = 0; i < punycodeUserStrings.Length; i++)
            {
                Assert.Equal(IdnHelper.GetUnicodeForUserName("$" + punycodeUserStrings[i]), "$" + unicodeUserStrings[i]);
            }

            // Test user names in the email address format that has the @ sign in the middle.
            for (int i = 0; i < punycodeUserStrings.Length; i++)
            {
                // Skip null or empty strings.
                if (string.IsNullOrEmpty(punycodeUserStrings[i]))
                {
                    continue;
                }

                for (int j = 0; j < punycodeStrings.Length; j++)
                {
                    // Skip null or empty strings.
                    if (string.IsNullOrEmpty(punycodeStrings[j]))
                    {
                        continue;
                    }

                    string pstring = punycodeUserStrings[i] + "@" + punycodeStrings[j];
                    string ustring = unicodeUserStrings[i] + "@" + unicodeStrings[j];
                    Assert.Equal(IdnHelper.GetUnicodeForUserName(pstring), ustring);
                }
            }
        }