From 7a84d1e22024f123233f6e0b453e7d18afb48988 Mon Sep 17 00:00:00 2001 From: Christian Basler Date: Mon, 23 Jan 2017 22:33:39 +0100 Subject: [PATCH] Improved test, fixed bug --- src/main/java/ch/dissem/msgpack/types/MPString.java | 5 +++-- src/test/java/ch/dissem/msgpack/ReaderTest.java | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/ch/dissem/msgpack/types/MPString.java b/src/main/java/ch/dissem/msgpack/types/MPString.java index 9bf6890..a68a475 100644 --- a/src/main/java/ch/dissem/msgpack/types/MPString.java +++ b/src/main/java/ch/dissem/msgpack/types/MPString.java @@ -66,7 +66,8 @@ public class MPString implements MPType, CharSequence { } public void pack(OutputStream out) throws IOException { - int size = value.length(); + byte[] bytes = value.getBytes(encoding); + int size = bytes.length; if (size < 32) { out.write(FIXSTR_PREFIX + size); } else if (size < STR8_LIMIT) { @@ -79,7 +80,7 @@ public class MPString implements MPType, CharSequence { out.write(STR32_PREFIX); out.write(ByteBuffer.allocate(4).putInt(size).array()); } - out.write(value.getBytes(encoding)); + out.write(bytes); } @Override diff --git a/src/test/java/ch/dissem/msgpack/ReaderTest.java b/src/test/java/ch/dissem/msgpack/ReaderTest.java index 5b16358..b69cddb 100644 --- a/src/test/java/ch/dissem/msgpack/ReaderTest.java +++ b/src/test/java/ch/dissem/msgpack/ReaderTest.java @@ -63,7 +63,7 @@ public class ReaderTest { new MPInteger(42), new MPMap<>(new HashMap()), new MPNil(), - new MPString("yay!") // TODO: emoji + new MPString("yay! \uD83E\uDD13") ); ByteArrayOutputStream out = new ByteArrayOutputStream(); array.pack(out);