コード例 #1
0
        public static void Ctor3()
        {
            string message = "Test message.";
            string innerMsg = "Invalid Op Message.";
            Exception innerException = new InvalidOperationException(innerMsg);
            EncoderFallbackException ex = new EncoderFallbackException(message, innerException);
            Assert.Equal(default(char), ex.CharUnknown);
            Assert.Equal(default(char), ex.CharUnknownHigh);
            Assert.Equal(default(char), ex.CharUnknownLow);
            Assert.Equal(default(int), ex.Index);

            Assert.Null(ex.StackTrace);
            Assert.Equal(0, ex.Data.Count);

            Assert.Equal(innerException, ex.InnerException);
            Assert.Equal(innerMsg, ex.InnerException.Message);

            Assert.Equal(message, ex.Message);

            message = "";
            ex = new EncoderFallbackException(message, null);
            Assert.Equal(default(char), ex.CharUnknown);
            Assert.Equal(default(char), ex.CharUnknownHigh);
            Assert.Equal(default(char), ex.CharUnknownLow);
            Assert.Equal(default(int), ex.Index);

            Assert.Equal(message, ex.Message);
            Assert.Null(ex.InnerException);
        }
コード例 #2
0
        public static void Ctor3()
        {
            string    message           = "Test message.";
            string    innerMsg          = "Invalid Op Message.";
            Exception innerException    = new InvalidOperationException(innerMsg);
            EncoderFallbackException ex = new EncoderFallbackException(message, innerException);

            Assert.Equal(default(char), ex.CharUnknown);
            Assert.Equal(default(char), ex.CharUnknownHigh);
            Assert.Equal(default(char), ex.CharUnknownLow);
            Assert.Equal(default(int), ex.Index);

            Assert.Null(ex.StackTrace);
            Assert.Equal(0, ex.Data.Count);

            Assert.Equal(innerException, ex.InnerException);
            Assert.Equal(innerMsg, ex.InnerException.Message);

            Assert.Equal(message, ex.Message);

            message = "";
            ex      = new EncoderFallbackException(message, null);
            Assert.Equal(default(char), ex.CharUnknown);
            Assert.Equal(default(char), ex.CharUnknownHigh);
            Assert.Equal(default(char), ex.CharUnknownLow);
            Assert.Equal(default(int), ex.Index);

            Assert.Equal(message, ex.Message);
            Assert.Null(ex.InnerException);
        }
コード例 #3
0
        public static void Ctor2()
        {
            string message = "Test message.";
            EncoderFallbackException ex = new EncoderFallbackException(message);

            Assert.Equal(default(char), ex.CharUnknown);
            Assert.Equal(default(char), ex.CharUnknownHigh);
            Assert.Equal(default(char), ex.CharUnknownLow);
            Assert.Equal(default(int), ex.Index);

            Assert.Null(ex.StackTrace);
            Assert.Null(ex.InnerException);
            Assert.Equal(0, ex.Data.Count);

            Assert.Equal(message, ex.Message);

            message = "";
            ex      = new EncoderFallbackException(message);
            Assert.Equal(default(char), ex.CharUnknown);
            Assert.Equal(default(char), ex.CharUnknownHigh);
            Assert.Equal(default(char), ex.CharUnknownLow);
            Assert.Equal(default(int), ex.Index);

            Assert.Equal(message, ex.Message);
        }
コード例 #4
0
 public static Exception /*!*/ CreateInvalidByteSequenceError(EncoderFallbackException /*!*/ e, RubyEncoding /*!*/ encoding)
 {
     return(new InvalidByteSequenceError(
                FormatMessage(
                    "character U+{0:X4} can't be encoded in {1}",
                    e.CharUnknownHigh != '\0' ? Tokenizer.ToCodePoint(e.CharUnknownHigh, e.CharUnknownLow) : (int)e.CharUnknown,
                    encoding
                    )
                ));
 }
コード例 #5
0
 public static Exception /*!*/ CreateTranscodingError(EncoderFallbackException /*!*/ e, RubyEncoding /*!*/ fromEncoding, RubyEncoding /*!*/ toEncoding)
 {
     return(new UndefinedConversionError(
                FormatMessage(
                    "\"{0}\" to UTF-8 in conversion from {1} to UTF-8 to {2}",
                    e.CharUnknown,
                    fromEncoding,
                    toEncoding
                    )
                ));
 }
コード例 #6
0
        public static void Ctor_String_Exception(string message, Exception innerException)
        {
            EncoderFallbackException encoderFallbackException = new EncoderFallbackException(message, innerException);
            Assert.Equal(default(char), encoderFallbackException.CharUnknown);
            Assert.Equal(default(char), encoderFallbackException.CharUnknownHigh);
            Assert.Equal(default(char), encoderFallbackException.CharUnknownLow);
            Assert.Equal(0, encoderFallbackException.Index);

            Assert.Null(encoderFallbackException.StackTrace);
            Assert.Equal(0, encoderFallbackException.Data.Count);

            Assert.Same(innerException, encoderFallbackException.InnerException);
            Assert.Equal(message, encoderFallbackException.Message);
        }
コード例 #7
0
        public static void Ctor()
        {
            EncoderFallbackException ex = new EncoderFallbackException();
            Assert.Equal(default(char), ex.CharUnknown);
            Assert.Equal(default(char), ex.CharUnknownHigh);
            Assert.Equal(default(char), ex.CharUnknownLow);
            Assert.Equal(default(int), ex.Index);

            Assert.Null(ex.StackTrace);
            Assert.Null(ex.InnerException);
            Assert.Equal(0, ex.Data.Count);

            ArgumentException arg = new ArgumentException();
            Assert.Equal(arg.Message, ex.Message);
        }
コード例 #8
0
        public static void Ctor_String_Exception(string message, Exception innerException)
        {
            EncoderFallbackException encoderFallbackException = new EncoderFallbackException(message, innerException);

            Assert.Equal(default(char), encoderFallbackException.CharUnknown);
            Assert.Equal(default(char), encoderFallbackException.CharUnknownHigh);
            Assert.Equal(default(char), encoderFallbackException.CharUnknownLow);
            Assert.Equal(0, encoderFallbackException.Index);

            Assert.Null(encoderFallbackException.StackTrace);
            Assert.Equal(0, encoderFallbackException.Data.Count);

            Assert.Same(innerException, encoderFallbackException.InnerException);
            Assert.Equal(message, encoderFallbackException.Message);
        }
コード例 #9
0
        public void CreateFallbackBuffer()
        {
            EncoderFallbackBuffer buffer = new EncoderExceptionFallback().CreateFallbackBuffer();

            Assert.Equal((char)0, buffer.GetNextChar());
            Assert.False(buffer.MovePrevious());
            Assert.Equal(0, buffer.Remaining);

            EncoderFallbackException ex = Assert.Throws <EncoderFallbackException>(() => buffer.Fallback('a', 0));

            Assert.Equal('a', ex.CharUnknown);

            ex = Assert.Throws <EncoderFallbackException>(() => buffer.Fallback('\uD800', '\uDC00', 0));
            Assert.Equal('\uD800', ex.CharUnknownHigh);
            Assert.Equal('\uDC00', ex.CharUnknownLow);
        }
コード例 #10
0
        public static void Ctor()
        {
            EncoderFallbackException ex = new EncoderFallbackException();

            Assert.Equal(default(char), ex.CharUnknown);
            Assert.Equal(default(char), ex.CharUnknownHigh);
            Assert.Equal(default(char), ex.CharUnknownLow);
            Assert.Equal(default(int), ex.Index);

            Assert.Null(ex.StackTrace);
            Assert.Null(ex.InnerException);
            Assert.Equal(0, ex.Data.Count);

            ArgumentException arg = new ArgumentException();

            Assert.Equal(arg.Message, ex.Message);
        }
コード例 #11
0
        public static bool ValidateUnicodeEncoding(string text)
        {
            UnicodeEncoding encoding = Encoding.GetEncoding(Encoding.Unicode.CodePage, EncoderFallback.ExceptionFallback, DecoderFallback.ExceptionFallback) as UnicodeEncoding;

            try
            {
                encoding.GetByteCount(text);
            }
            catch (EncoderFallbackException encoderFallbackException1)
            {
                EncoderFallbackException encoderFallbackException = encoderFallbackException1;
                CultureInfo invariantCulture = CultureInfo.InvariantCulture;
                object[]    index            = new object[] { encoderFallbackException.Index };
                throw new FormatException(string.Format(invariantCulture, "Character at index {0} is not valid Unicode", index), encoderFallbackException);
            }
            return(true);
        }
コード例 #12
0
 public static void Validate(string text)
 {
     if (text == null)
     {
         throw new ArgumentNullException("text");
     }
     try
     {
         MetadataEncoding.CreateAsciiEncoder().GetByteCount(text);
     }
     catch (EncoderFallbackException encoderFallbackException1)
     {
         EncoderFallbackException encoderFallbackException = encoderFallbackException1;
         CultureInfo invariantCulture = CultureInfo.InvariantCulture;
         object[]    index            = new object[] { encoderFallbackException.Index };
         throw new FormatException(string.Format(invariantCulture, "Character at index {0} is not valid ASCII", index), encoderFallbackException);
     }
 }
コード例 #13
0
        public static int GetMetadataLengthWithAsciiEncoding(NameValueCollection metadata)
        {
            int      byteCount = 0;
            int      num       = 1;
            Encoding encoding  = MetadataEncoding.CreateAsciiEncoder();

            string[] allKeys = metadata.AllKeys;
            for (int i = 0; i < (int)allKeys.Length; i++)
            {
                string str = allKeys[i];
                try
                {
                    byteCount = byteCount + encoding.GetByteCount(str) + num + encoding.GetByteCount(metadata[str]) + Environment.NewLine.Length;
                }
                catch (EncoderFallbackException encoderFallbackException1)
                {
                    EncoderFallbackException encoderFallbackException = encoderFallbackException1;
                    throw new MetadataFormatException(string.Format("Metadata pair {0}:{1} has an invalid char:{2}", str, metadata[str], encoderFallbackException.CharUnknown), encoderFallbackException);
                }
            }
            return(byteCount);
        }
コード例 #14
0
ファイル: Encoder.cs プロジェクト: yang123vc/corefx
        public static void EncoderFallbackExceptionIndexTests(char[] firstPayload, char[] secondPayload, int expectedIndex)
        {
            UTF8Encoding encoding = new UTF8Encoding(encoderShouldEmitUTF8Identifier: false, throwOnInvalidBytes: true);

            // First test GetBytes / GetBytes

            Encoder encoder = encoding.GetEncoder();

            Assert.Equal(0, encoder.GetBytes(firstPayload, 0, firstPayload.Length, new byte[0], 0, flush: false));

            EncoderFallbackException ex = Assert.Throws <EncoderFallbackException>(
                () => encoder.GetBytes(secondPayload, 0, secondPayload.Length, new byte[8], 0, flush: true));

            Assert.Equal(expectedIndex, ex.Index);

            // Then test GetBytes / GetByteCount

            encoder = encoding.GetEncoder();
            Assert.Equal(0, encoder.GetBytes(firstPayload, 0, firstPayload.Length, new byte[0], 0, flush: false));

            ex = Assert.Throws <EncoderFallbackException>(
                () => encoder.GetByteCount(secondPayload, 0, secondPayload.Length, flush: true));
            Assert.Equal(expectedIndex, ex.Index);
        }
コード例 #15
0
        public static void Ctor2()
        {
            string message = "Test message.";
            EncoderFallbackException ex = new EncoderFallbackException(message);
            Assert.Equal(default(char), ex.CharUnknown);
            Assert.Equal(default(char), ex.CharUnknownHigh);
            Assert.Equal(default(char), ex.CharUnknownLow);
            Assert.Equal(default(int), ex.Index);

            Assert.Null(ex.StackTrace);
            Assert.Null(ex.InnerException);
            Assert.Equal(0, ex.Data.Count);

            Assert.Equal(message, ex.Message);

            message = "";
            ex = new EncoderFallbackException(message);
            Assert.Equal(default(char), ex.CharUnknown);
            Assert.Equal(default(char), ex.CharUnknownHigh);
            Assert.Equal(default(char), ex.CharUnknownLow);
            Assert.Equal(default(int), ex.Index);

            Assert.Equal(message, ex.Message);
        }
コード例 #16
0
ファイル: ThrowHelper.cs プロジェクト: layomia/dotnet_runtime
 public static ArgumentException GetArgumentException_ReadInvalidUTF16(EncoderFallbackException innerException)
 {
     return(new ArgumentException(SR.CannotTranscodeInvalidUtf16, innerException));
 }
コード例 #17
0
ファイル: RubyExceptions.cs プロジェクト: rudimk/dlr-dotnet
 public static Exception /*!*/ CreateArgumentError(EncoderFallbackException /*!*/ e, RubyEncoding /*!*/ encoding)
 {
     return(RubyExceptions.CreateArgumentError(String.Format("character U+{0:X4} can't be encoded in {1}",
                                                             e.CharUnknownHigh != '\0' ? Tokenizer.ToCodePoint(e.CharUnknownHigh, e.CharUnknownLow) : (int)e.CharUnknown, encoding)));
 }