package jef.entity; import junit.framework.Assert; import org.junit.Test; /** * {@code CommonMaskStrategy}单元测试类 * * @see CommonMaskStrategy * * @Company Asiainfo-Linkage Technologies (China), Inc. * @author luolp@asiainfo-linkage.com * @Date 2012-7-12 */ public class TestCommonMaskStrategy { /** * 通用模糊化 */ @Test public void testMask() { //通用模糊化 CommonMaskStrategy maskStategy = new CommonMaskStrategy(); Assert.assertEquals("***********", maskStategy.eval("only测试信息模糊化", null)); Assert.assertEquals("", maskStategy.eval("", null)); Assert.assertNull(maskStategy.eval(null, null)); maskStategy = new CommonMaskStrategy("*(3,8)"); Assert.assertEquals("onl*****模糊化", maskStategy.eval("only测试信息模糊化", null)); maskStategy = new CommonMaskStrategy("(,15)"); Assert.assertEquals("***********", maskStategy.eval("only测试信息模糊化", null)); } /** * 模糊化为指定长度 */ @Test public void testMaskToFixed() { CommonMaskStrategy maskStategy = new CommonMaskStrategy("*3(,)"); Assert.assertEquals("***", maskStategy.eval("only测试信息模糊化", null)); maskStategy = new CommonMaskStrategy("*20(,)"); Assert.assertEquals("********************", maskStategy.eval("only测试信息模糊化", null)); } @Test public void testMaskFromStart() { /** * 从第二个字符开始模糊 */ CommonMaskStrategy maskStategy = new CommonMaskStrategy("*(1,)"); Assert.assertEquals("张*", maskStategy.eval("张三", null)); Assert.assertEquals("李**", maskStategy.eval("李小明", null)); /** * 模糊倒数四位 */ maskStategy = new CommonMaskStrategy("*(-4,)"); Assert.assertEquals("1380571****", maskStategy.eval("13805710000", null)); maskStategy = new CommonMaskStrategy("*(-4,6)"); Assert.assertEquals("1380571****", maskStategy.eval("13805710000", null)); } @Test public void testMaskToFixedFromStart() { CommonMaskStrategy maskStategy = new CommonMaskStrategy("*3(3,)"); Assert.assertEquals("138***", maskStategy.eval("13805710000", null)); maskStategy = new CommonMaskStrategy("*3(-4,)"); Assert.assertEquals("1380571***", maskStategy.eval("13805710000", null)); maskStategy = new CommonMaskStrategy("*3(-4,6)"); Assert.assertEquals("1380571***", maskStategy.eval("13805710000", null)); } @Test public void testMaskFromEnd() { CommonMaskStrategy maskStategy = new CommonMaskStrategy("*(,6)"); Assert.assertEquals("******10000", maskStategy.eval("13805710000", null)); maskStategy = new CommonMaskStrategy("*(,-4)"); Assert.assertEquals("*******0000", maskStategy.eval("13805710000", null)); } @Test public void testMaskToFixedFromEnd() { CommonMaskStrategy maskStategy = new CommonMaskStrategy("*3(,-4)"); Assert.assertEquals("***0000", maskStategy.eval("13805710000", null)); } @Test public void testMaskFromStartAndEnd() { CommonMaskStrategy maskStategy = new CommonMaskStrategy("*(5,-4)"); Assert.assertEquals("95588**********2334", maskStategy.eval("9558801202106562334", null)); } @Test public void testMaskToFixedFromStartAndEnd() { CommonMaskStrategy maskStategy = new CommonMaskStrategy("*3(5,-4)"); Assert.assertEquals("95588***2334", maskStategy.eval("9558801202106562334", null)); } @Test public void testExpressionIllegal() { try { new CommonMaskStrategy("^3(5,-4)"); } catch (IllegalArgumentException e) { Assert.assertTrue(true); } try { new CommonMaskStrategy("#(aa,-4)"); } catch (IllegalArgumentException e) { Assert.assertTrue(true); } } }