TEXT-23: Adding JavaUnicodeEscaperTest

Project: http://git-wip-us.apache.org/repos/asf/commons-text/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-text/commit/32196b18
Tree: http://git-wip-us.apache.org/repos/asf/commons-text/tree/32196b18
Diff: http://git-wip-us.apache.org/repos/asf/commons-text/diff/32196b18

Branch: refs/heads/master
Commit: 32196b189ac7e4909f8b4dab7ed5a34ef65e532c
Parents: 2f55bd1
Author: Rob Tompkins <christopher.tompk...@capitalone.com>
Authored: Wed Nov 9 10:28:59 2016 -0500
Committer: Rob Tompkins <christopher.tompk...@capitalone.com>
Committed: Wed Nov 9 10:28:59 2016 -0500

----------------------------------------------------------------------
 .../text/translate/JavaUnicodeEscaperTest.java  | 65 ++++++++++++++++++++
 1 file changed, 65 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-text/blob/32196b18/src/test/java/org/apache/commons/text/translate/JavaUnicodeEscaperTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/commons/text/translate/JavaUnicodeEscaperTest.java 
b/src/test/java/org/apache/commons/text/translate/JavaUnicodeEscaperTest.java
new file mode 100644
index 0000000..aab7599
--- /dev/null
+++ 
b/src/test/java/org/apache/commons/text/translate/JavaUnicodeEscaperTest.java
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.text.translate;
+
+import org.junit.Test;
+
+import java.io.UnsupportedEncodingException;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * Unit tests for {@link org.apache.commons.text.translate.JavaUnicodeEscaper}.
+ */
+public class JavaUnicodeEscaperTest {
+
+    @Test
+    public void testBelow() {
+        final org.apache.commons.text.translate.JavaUnicodeEscaper jue = 
org.apache.commons.text.translate.JavaUnicodeEscaper.below('F');
+
+        final String input = "ADFGZ";
+        final String result = jue.translate(input);
+        assertEquals("Failed to escape Unicode characters via the below 
method", "\\u0041\\u0044FGZ", result);
+    }
+
+    @Test
+    public void testBetween() {
+        final org.apache.commons.text.translate.JavaUnicodeEscaper jue = 
org.apache.commons.text.translate.JavaUnicodeEscaper.between('F', 'L');
+
+        final String input = "ADFGZ";
+        final String result = jue.translate(input);
+        assertEquals("Failed to escape Unicode characters via the between 
method", "AD\\u0046\\u0047Z", result);
+    }
+
+    @Test
+    public void testAbove() {
+        final org.apache.commons.text.translate.JavaUnicodeEscaper jue = 
JavaUnicodeEscaper.above('F');
+
+        final String input = "ADFGZ";
+        final String result = jue.translate(input);
+        assertEquals("Failed to escape Unicode characters via the above 
method", "ADF\\u0047\\u005A", result);
+    }
+
+    @Test
+    public void testToUtf16Escape() throws UnsupportedEncodingException {
+        final org.apache.commons.text.translate.JavaUnicodeEscaper jue = 
org.apache.commons.text.translate.JavaUnicodeEscaper.below('F');
+        // According to 
https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B10000..U.2B10FFFF,
+        // Character ?,        U+24B62,        Binary Code Point 0010 0100 
1011 0110 0010,     Binary UTF-167 1101 1000 0101 0010 1101 1111 0110 0010, 
UTF-16 Hex Code Units D852 DF62
+        String encoding = jue.toUtf16Escape(Integer.parseInt("024B62", 16));
+        assertEquals("\\uD852\\uDF62",encoding);
+    }
+}

Reply via email to