[Fact] // TODO: this should test more than ascii
        public void FormatString()
        {
            var          buffer = new byte[1024];
            MemoryStream stream = new MemoryStream(buffer);

            using (var utf8Writer = new StreamFormatter(stream, SymbolTable.InvariantUtf8, pool))
            {
                utf8Writer.Append("Hello");
                utf8Writer.Append(" ");
                utf8Writer.Append("World!");
                utf8Writer.Append("\u0391"); // greek alpha
                utf8Writer.Append("\uD950\uDF21");
                utf8Writer.Append(new Utf8Span("Hello"));
                AssertUtf8Equal(buffer.AsSpan(0, (int)stream.Position), "Hello World!\u0391\uD950\uDF21Hello");
            }

            stream.Position = 0;
            using (var utf16Writer = new StreamFormatter(stream, SymbolTable.InvariantUtf16, pool))
            {
                utf16Writer.Append("Hello");
                utf16Writer.Append(" ");
                utf16Writer.Append("World!");
                utf16Writer.Append("\u0391");
                utf16Writer.Append("\uD950\uDF21");
                AssertUtf16Equal(buffer.AsSpan(0, (int)stream.Position), "Hello World!\u0391\uD950\uDF21");
            }
        }
 public void CustomTypeToStreamUtf8()
 {
     byte[] buffer = new byte[1024];
     MemoryStream stream = new MemoryStream(buffer);
     using(var writer = new StreamFormatter(stream, EncodingData.InvariantUtf8, pool)) {
         writer.Append(new Age(56));
         writer.Append(new Age(14, inMonths: true));
         var writtenText = Encoding.UTF8.GetString(buffer, 0, (int)stream.Position);
         Assert.Equal(writtenText, "56y14m");
     }
 }
Пример #3
0
        public void CustomTypeToStreamUtf8()
        {
            byte[]       buffer = new byte[1024];
            MemoryStream stream = new MemoryStream(buffer);

            using (var writer = new StreamFormatter(stream, EncodingData.InvariantUtf8, pool)) {
                writer.Append(new Age(56));
                writer.Append(new Age(14, inMonths: true));
                var writtenText = Encoding.UTF8.GetString(buffer, 0, (int)stream.Position);
                Assert.Equal(writtenText, "56y14m");
            }
        }
Пример #4
0
        public void Int32ToStreamUtf8()
        {
            var          buffer = new byte[1024];
            MemoryStream stream = new MemoryStream(buffer);

            using (var writer = new StreamFormatter(stream, EncodingData.InvariantUtf8, pool)) {
                writer.Append(100);
                writer.Append(-100);
                writer.Append('h');
                writer.Append("i!");
                AssertUtf8Equal(buffer.Slice(0, (int)stream.Position), "100-100hi!");
            }
        }
Пример #5
0
        public void CustomTypeToStreamUtf16()
        {
            byte[]       buffer = new byte[1024];
            MemoryStream stream = new MemoryStream(buffer);
            var          writer = new StreamFormatter(stream);

            writer.Append(new Age(56));
            writer.Append(new Age(14, inMonths: true));

            var writtenText = Encoding.Unicode.GetString(buffer, 0, (int)stream.Position);

            Assert.Equal(writtenText, "56y14m");
        }
Пример #6
0
        [Fact] // TODO: this should test more than ascii
        public void FormatString()
        {
            var          buffer = new byte[1024];
            MemoryStream stream = new MemoryStream(buffer);

            using (var utf8Writer = new StreamFormatter(stream, FormattingData.InvariantUtf8)) {
                utf8Writer.Append("Hello");
                utf8Writer.Append(" ");
                utf8Writer.Append("World!");
                utf8Writer.Append("\u0391"); // greek alpha
                //utf8Writer.Append("\uD950\uDF21"); // TODO: surrogate pair; this is NIY
                AssertUtf8Equal(buffer.Slice(0, (int)stream.Position), "Hello World!\u0391");
            }

            stream.Position = 0;
            using (var utf16Writer = new StreamFormatter(stream, FormattingData.InvariantUtf16)) {
                utf16Writer.Append("Hello");
                utf16Writer.Append(" ");
                utf16Writer.Append("World!");
                utf16Writer.Append("\u0391");
                utf16Writer.Append("\uD950\uDF21");
                AssertUtf16Equal(buffer.Slice(0, (int)stream.Position), "Hello World!\u0391\uD950\uDF21");
            }
        }
Пример #7
0
 public void WriteObjectStart()
 {
     _wroteListItem = false;
     _formatter.Append('{');
     WriteNewline();
     _indent++;
 }
        public void Int32ToStreamUtf8()
        {
            var buffer = new byte[1024];
            MemoryStream stream = new MemoryStream(buffer);

            using(var writer = new StreamFormatter(stream, FormattingData.InvariantUtf8, pool)) {
                writer.Append(100);
                writer.Append(-100);
                writer.Append('h');
                writer.Append("i!");
                AssertUtf8Equal(buffer.Slice(0, (int)stream.Position), "100-100hi!");
            }
        }
        public void FormatString()
        {
            var buffer = new byte[1024];
            MemoryStream stream = new MemoryStream(buffer);

            using(var utf8Writer = new StreamFormatter(stream, FormattingData.InvariantUtf8, pool)) {
                utf8Writer.Append("Hello");
                utf8Writer.Append(" ");
                utf8Writer.Append("World!");
                utf8Writer.Append("\u0391"); // greek alpha
                utf8Writer.Append("\uD950\uDF21");
                AssertUtf8Equal(buffer.Slice(0, (int)stream.Position), "Hello World!\u0391\uD950\uDF21");
            }

            stream.Position = 0;
            using(var utf16Writer = new StreamFormatter(stream, FormattingData.InvariantUtf16, pool)) {
                utf16Writer.Append("Hello");
                utf16Writer.Append(" ");
                utf16Writer.Append("World!");
                utf16Writer.Append("\u0391");
                utf16Writer.Append("\uD950\uDF21");
                AssertUtf16Equal(buffer.Slice(0, (int)stream.Position), "Hello World!\u0391\uD950\uDF21");
            }
        }
        public void FormatString()
        {
            var buffer = new byte[1024];
            MemoryStream stream = new MemoryStream(buffer);

            var utf8Writer = new StreamFormatter(stream, FormattingData.InvariantUtf8);
            utf8Writer.Append("Hello");
            utf8Writer.Append(" ");
            utf8Writer.Append("World!");
            utf8Writer.Append("\u0391"); // greek alpha
            //utf8Writer.Append("\uD950\uDF21"); // TODO: surrogate pair; this is NIY
            AssertUtf8Equal(buffer.Slice(0, (int)stream.Position), "Hello World!\u0391");

            stream.Position = 0;
            var utf16Writer = new StreamFormatter(stream, FormattingData.InvariantUtf16);
            utf16Writer.Append("Hello");
            utf16Writer.Append(" ");
            utf16Writer.Append("World!");
            utf8Writer.Append("\u0391");
            utf16Writer.Append("\uD950\uDF21");
            AssertUtf16Equal(buffer.Slice(0, (int)stream.Position), "Hello World!\u0391\uD950\uDF21");
        }