Author: mthl
Date: Sat May 25 09:38:42 2019 New Revision: 1859937 URL: http://svn.apache.org/viewvc?rev=1859937&view=rev Log: Improved: Turn ‘StringUtilTests’ into a unit test class (OFBIZ-11014) Since there is no dependency on the delegator and dispatcher for those tests, it is better to run them as unit tests instead of integration tests. Added: ofbiz/ofbiz-framework/trunk/framework/base/src/test/java/org/apache/ofbiz/base/util/StringUtilTests.java (with props) Removed: ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/test/StringUtilTests.java Added: ofbiz/ofbiz-framework/trunk/framework/base/src/test/java/org/apache/ofbiz/base/util/StringUtilTests.java URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/base/src/test/java/org/apache/ofbiz/base/util/StringUtilTests.java?rev=1859937&view=auto ============================================================================== --- ofbiz/ofbiz-framework/trunk/framework/base/src/test/java/org/apache/ofbiz/base/util/StringUtilTests.java (added) +++ ofbiz/ofbiz-framework/trunk/framework/base/src/test/java/org/apache/ofbiz/base/util/StringUtilTests.java Sat May 25 09:38:42 2019 @@ -0,0 +1,238 @@ +/* + * 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.ofbiz.base.util; + +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertSame; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.apache.ofbiz.base.util.GeneralRuntimeException; +import org.apache.ofbiz.base.util.StringUtil; +import org.junit.Test; + +public class StringUtilTests { + + @Test + public void testInternString() { + assertSame("intern-constant", StringUtil.internString("foo"), StringUtil.internString("foo")); + assertSame("intern-new", StringUtil.internString("foo"), StringUtil.internString("foo")); + assertSame("intern-char", StringUtil.internString("foo"), StringUtil.internString(new String(new char[] {'f', 'o', 'o'}))); + assertSame("intern-null", StringUtil.internString(null), StringUtil.internString(null)); + } + + @Test + public void testReplaceString() { + assertNull("null", StringUtil.replaceString(null, "old", "new")); + assertEquals("empty old", "the old dog jumped over the old fence", + StringUtil.replaceString("the old dog jumped over the old fence", "", "new")); + assertEquals("replace", "the new dog jumped over the new fence", + StringUtil.replaceString("the old dog jumped over the old fence", "old", "new")); + assertEquals("replace-null", "the dog jumped over the fence", + StringUtil.replaceString("the old dog jumped over the old fence", "old", null)); + assertEquals("replace-not-found", "the old dog jumped over the old fence", + StringUtil.replaceString("the old dog jumped over the old fence", "cat", "feline")); + } + + @Test + public void testJoin() { + assertNull("null-list", StringUtil.join(null, ",")); + assertNull("empty-list", StringUtil.join(Collections.emptyList(), ",")); + assertEquals("single", "1", StringUtil.join(Collections.singleton("1"), ",")); + assertEquals("double", "1,2", StringUtil.join(Arrays.asList("1", "2"), ",")); + } + + @Test + public void testSplit() { + assertNull("null-string", StringUtil.split(null, ",")); + assertEquals("single", Arrays.asList("1"), StringUtil.split("1", ",")); + assertEquals("double", Arrays.asList("1", "2"), StringUtil.split("1,2", ",")); + assertEquals("no-sep", Arrays.asList("1", "2", "3", "4", "5", "6"), StringUtil.split("1 2\t3\n4\r5\f6", null)); + } + + @Test + public void testStrToMap() { + assertNull("null-string", StringUtil.strToMap(null, false)); + assertEquals("missing =", Collections.emptyMap(), StringUtil.strToMap("1", false)); + assertEquals("single", UtilMisc.toMap("1", "one"), StringUtil.strToMap("1=one")); + assertEquals("double", UtilMisc.toMap("2", "two", "1", "one"), StringUtil.strToMap("1=one|2=two")); + assertEquals("double-no-trim", UtilMisc.toMap(" 2 ", " two ", " 1 ", " one "), + StringUtil.strToMap(" 1 = one | 2 = two ")); + assertEquals("double-trim", UtilMisc.toMap("2", "two", "1", "one"), + StringUtil.strToMap(" 1 = one | 2 = two ", true)); + } + + @Test + public void testToMap() { + for (String s: new String[] {"", "{", "}", "}{"}) { + IllegalArgumentException caught = null; + try { + StringUtil.toMap(s); + } catch (IllegalArgumentException e) { + caught = e; + } finally { + assertNotNull("bad(" + s + ")", caught); + } + } + assertEquals("single", UtilMisc.toMap("1", "one"), StringUtil.toMap("{1=one}")); + assertEquals("double", UtilMisc.toMap("2", "two", "1", "one"), StringUtil.toMap("{1=one, 2=two}")); + assertEquals("double-space", UtilMisc.toMap("2", "two ", " 1", "one"), StringUtil.toMap("{ 1=one, 2=two }")); + } + + @Test + public void testToList() { + for (String s: new String[] {"", "[", "]", "]["}) { + IllegalArgumentException caught = null; + try { + StringUtil.toList(s); + } catch (IllegalArgumentException e) { + caught = e; + } finally { + assertNotNull("bad(" + s + ")", caught); + } + } + assertEquals("single", Arrays.asList("1"), StringUtil.toList("[1]")); + assertEquals("double", Arrays.asList("1", "2"), StringUtil.toList("[1, 2]")); + assertEquals("double-space", Arrays.asList(" 1", "2 "), StringUtil.toList("[ 1, 2 ]")); + } + + @Test + public void testToSet() { + for (String s: new String[] {"", "[", "]", "]["}) { + IllegalArgumentException caught = null; + try { + StringUtil.toSet(s); + } catch (IllegalArgumentException e) { + caught = e; + } finally { + assertNotNull("bad(" + s + ")", caught); + } + } + assertEquals("single", UtilMisc.toSet("1"), StringUtil.toSet("[1]")); + assertEquals("double", UtilMisc.toSet("1", "2"), StringUtil.toSet("[1, 2]")); + assertEquals("double-space", UtilMisc.toSet(" 1", "2 "), StringUtil.toSet("[ 1, 2 ]")); + } + + @Test + public void testCreateMap() { + List<List<String>> badKeys = Arrays.asList(null, Arrays.asList("1"), Arrays.asList("2")); + List<List<String>> badValues = Arrays.asList(Arrays.asList("one"), null, Arrays.asList("two", "extra")); + for (int i = 0; i < badKeys.size(); i++) { + IllegalArgumentException caught = null; + try { + StringUtil.createMap(badKeys.get(i), badValues.get(i)); + } catch (IllegalArgumentException e) { + caught = e; + } finally { + assertNotNull("bad(" + i + ")", caught); + } + } + assertEquals("parse", UtilMisc.toMap("1", "one", "2", "two"), StringUtil.createMap(Arrays.asList("1", "2"), + Arrays.asList("one", "two"))); + } + + @Test + public void testCleanUpPathPrefix() { + assertEquals("null", "", StringUtil.cleanUpPathPrefix(null)); + assertEquals("empty", "", StringUtil.cleanUpPathPrefix("")); + for (String s: new String[] {"\\a\\b\\c", "\\a\\b\\c\\", "a\\b\\c\\", "a\\b\\c", "/a/b/c", "/a/b/c/", "a/b/c/", "a/b/c"}) { + assertEquals("cleanup(" + s + ")", "/a/b/c", StringUtil.cleanUpPathPrefix(s)); + } + } + + @Test + public void testRemoveSpaces() { + assertEquals("", StringUtil.removeSpaces("")); + assertEquals("abcd", StringUtil.removeSpaces(" a b c d ")); + assertEquals("a\\cd", StringUtil.removeSpaces(" a \\ c d ")); + } + + @Test + public void testToHexString() { + assertEquals("16 bytes", "000102030405060708090a0b0c0d0e0f", + StringUtil.toHexString(new byte[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15})); + } + + @Test + public void testCleanHexString() { + assertEquals("clean hex", "rtwertetwretw", StringUtil.cleanHexString("rtwer:tetw retw")); + } + + @Test + public void testFromHexString() { + assertArrayEquals("16 bytes", new byte[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, + StringUtil.fromHexString("000102030405060708090a0b0c0d0e0f")); + GeneralRuntimeException caught = null; + try { + StringUtil.fromHexString("0-"); + } catch (GeneralRuntimeException e) { + caught = e; + } finally { + assertNotNull("bad-char", caught); + } + } + + @Test + public void testEncodeInt() { + assertArrayEquals("one octet", new char[] {'0', '5'}, StringUtil.encodeInt(5, 0, new char[2])); + assertArrayEquals("two octets", new char[] {'1', '5'}, StringUtil.encodeInt(21, 0, new char[2])); + // these next two are really weird, note the start offset being != 0. + assertArrayEquals("three octets", new char[] {'3', '1', '5'}, StringUtil.encodeInt(789, 1, new char[3])); + assertArrayEquals("four octets", new char[] {'7', '3', '1', '5'}, StringUtil.encodeInt(29461, 2, new char[4])); + } + + @Test + public void testRemoveNonNumeric() { + assertEquals("just numbers", "12345", StringUtil.removeNonNumeric("a1'2;3]4!5(")); + } + + @Test + public void testRemoveRegex() { + } + + @Test + public void testAddToNumberString() { + assertNull("null pass-thru", StringUtil.addToNumberString(null, 0)); + assertEquals("no-change", "12345", StringUtil.addToNumberString("12345", 0)); + assertEquals("increase", "112344", StringUtil.addToNumberString("12345", 99999)); + assertEquals("subtract", "00345", StringUtil.addToNumberString("12345", -12000)); + } + + @Test + public void testPadNumberString() { + assertEquals("less", "12345", StringUtil.padNumberString("12345", 3)); + assertEquals("same", "12345", StringUtil.padNumberString("12345", 5)); + assertEquals("more", "00012345", StringUtil.padNumberString("12345", 8)); + } + + @Test + public void testConvertOperatorSubstitutions() { + assertNull("null pass-thru", StringUtil.convertOperatorSubstitutions(null)); + assertEquals("none", "abc", StringUtil.convertOperatorSubstitutions("abc")); + assertEquals("none", "a'c", StringUtil.convertOperatorSubstitutions("a'c")); + assertEquals("all converions", "one && two || three > four >= five < six <= seven", + StringUtil.convertOperatorSubstitutions( + "one @and two @or three @gt four @gteq five @lt six @lteq seven")); + } +} Propchange: ofbiz/ofbiz-framework/trunk/framework/base/src/test/java/org/apache/ofbiz/base/util/StringUtilTests.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/ofbiz-framework/trunk/framework/base/src/test/java/org/apache/ofbiz/base/util/StringUtilTests.java ------------------------------------------------------------------------------ svn:keywords = Date Rev Author URL Id Propchange: ofbiz/ofbiz-framework/trunk/framework/base/src/test/java/org/apache/ofbiz/base/util/StringUtilTests.java ------------------------------------------------------------------------------ svn:mime-type = text/plain |
Free forum by Nabble | Edit this page |