package com.taobao.tddl.common.utils; import java.util.Arrays; import org.junit.Assert; import org.junit.Test; /** * 各种不同实现的比较测试 * * @author linxuan */ public class TStringUtilTest { @Test public void testGetBetween() { Assert.assertEquals(TStringUtil.getBetween("wx[ b ]yz", "[", "]"), "b"); Assert.assertEquals(TStringUtil.getBetween(null, "a", "a"), null); Assert.assertEquals(TStringUtil.getBetween("abc", null, "a"), null); Assert.assertEquals(TStringUtil.getBetween("abc", "a", null), null); Assert.assertEquals(TStringUtil.getBetween("", "", ""), ""); Assert.assertEquals(TStringUtil.getBetween("", "", "]"), null); Assert.assertEquals(TStringUtil.getBetween("", "[", "]"), null); Assert.assertEquals(TStringUtil.getBetween("yabcz", "", ""), ""); Assert.assertEquals(TStringUtil.getBetween("yabcz", "y", "z"), "abc"); Assert.assertEquals(TStringUtil.getBetween("yabczyabcz", "y", "z"), "abc"); } @Test public void testRemoveBetween() { Assert.assertEquals(TStringUtil.removeBetween("abc[xxx]bc", "[", "]"), "abc bc"); } @Test public void testTwoPartSplit() { Assert.assertArrayEquals(TStringUtil.twoPartSplit("abc:bc:bc", ":"), new String[] { "abc", "bc:bc" }); Assert.assertArrayEquals(TStringUtil.twoPartSplit(null, "a"), new String[] { null }); Assert.assertArrayEquals(TStringUtil.twoPartSplit("abc:bc", "d"), new String[] { "abc:bc" }); Assert.assertArrayEquals(TStringUtil.twoPartSplit("abc:bc", ";"), new String[] { "abc:bc" }); } @Test public void testRecursiveSplit() { Assert.assertEquals(TStringUtil.recursiveSplit("abc:bc:bc", ":"), Arrays.asList("abc", "bc", "bc")); Assert.assertEquals(TStringUtil.recursiveSplit("abc:bc", "d"), Arrays.asList("abc:bc")); Assert.assertEquals(TStringUtil.recursiveSplit("abc:bc", ";"), Arrays.asList("abc:bc")); } @Test public void testFillTabWithSpace() { String sql = " select sum(rate) from feed_receive_0117 t where RATED_UID=? and RATER_UID=? and suspended=0 and validscore=1 and rater_type=? and trade_closingdate>=? and trade_closingdate<? and id<>? and (IFNULL(IMPORT_FROM, 0)&8) = 0 #@#mysql_feel_01#@#EXECUTE_A_SQL_TIMEOUT#@#1#@#484#@#484#@#484"; String assertSql = "select sum(rate) from feed_receive_0117 t where RATED_UID=? and RATER_UID=? and suspended=0 and validscore=1 and rater_type=? and trade_closingdate>=? and trade_closingdate<? and id<>? and (IFNULL(IMPORT_FROM, 0)&8) = 0 #@#mysql_feel_01#@#EXECUTE_A_SQL_TIMEOUT#@#1#@#484#@#484#@#484"; String acutulSql = null; acutulSql = TStringUtil.fillTabWithSpace(sql); Assert.assertEquals(assertSql, acutulSql); } @Test public void testRemoveBetweenWithSplitor() { String sql = "/*+UNIT_VALID({valid_key:123})*/select * from table"; sql = TStringUtil.removeBetween(sql, "/*+UNIT_VALID(", ")*/"); Assert.assertEquals(" select * from table", sql); } }