package humanize.text; import humanize.spi.MessageFormat; import java.text.FieldPosition; import java.text.Format; import java.text.ParseException; import org.testng.Assert; import org.testng.annotations.Test; public class TestMaskFormat { @Test public void instanceTest() throws ParseException { MaskFormat mf = new MaskFormat("_# __ _____#-_"); Assert.assertEquals(mf.getPlaceholder(), '_'); Assert.assertEquals(mf.getMask(), "_# __ _____#-_"); Assert.assertEquals(mf.format("A/5881850 1"), "A 58 81850-1"); mf.setMask("-- -- -"); mf.setPlaceholder('-'); Assert.assertEquals(mf.format("10010"), "10 01 0"); StringBuffer sb = new StringBuffer(); mf.format("10010", sb, new FieldPosition(0)); Assert.assertEquals(sb.toString(), "10 01 0"); sb = new StringBuffer(); Assert.assertEquals(mf.format("10010", sb, null).toString(), "10 01 0"); Assert.assertEquals(mf.format(null, sb, null), null); Assert.assertEquals(mf.parseObject(""), ""); Assert.assertEquals(mf.parseObject(null), null); Assert.assertEquals(mf.parseObject("10 01 0"), "10010"); Assert.assertEquals(mf.parseObject("10 01 0", null), "10010"); Assert.assertEquals(mf.parse("99 99 A"), "9999A"); try { mf.parse("90890"); Assert.fail(); } catch (ParseException e) { // } Format fmt = MaskFormat.factory().getFormat("", "____ ____ __", null); Assert.assertEquals(fmt.parseObject("1234 5678 90"), "1234567890"); } @Test public void maskFormatTest() { Assert.assertEquals(MaskFormat.format("helo", "123"), "helo"); Assert.assertEquals(MaskFormat.format("", "hi"), "hi"); Assert.assertEquals(MaskFormat.format(null, "hi"), "hi"); Assert.assertEquals(MaskFormat.format("", null), null); Assert.assertEquals(MaskFormat.format(null, null), null); Assert.assertEquals(MaskFormat.format("____ ____ __", "1234567890"), "1234 5678 90"); Assert.assertEquals(MaskFormat.format("____#/__#/__", "2008-11-28"), "2008/11/28"); Assert.assertEquals(MaskFormat.format("__\\___", "1010"), "10_10"); Assert.assertEquals(MaskFormat.format("$$_$$", "1010", '$'), "10_10"); Assert.assertEquals(MaskFormat.format("1bla_bla__bla bla bla 12", "010"), "1bla0bla10bla bla bla 12"); } @Test public void maskParseTest() throws ParseException { Assert.assertEquals(MaskFormat.parse("", "hi"), "hi"); Assert.assertEquals(MaskFormat.parse((String) null, (String) null), null); Assert.assertEquals(MaskFormat.parse("____ ____ __", "1234 5678 90"), "1234567890"); Assert.assertEquals(MaskFormat.parse("____-__-__", "2008-11-28"), "20081128"); Assert.assertEquals(MaskFormat.parse("__\\___", "10_10"), "1010"); Assert.assertEquals(MaskFormat.parse("$$_$$", "10_10", '$'), "1010"); Assert.assertEquals(MaskFormat.parse("1bla_bla__bla bla bla 12", "1bla0bla10bla bla bla 12"), "010"); try { MaskFormat.parse("helo", "123"); Assert.fail(); } catch (ParseException ex) { // } } @Test public void messageFmtTest() { MessageFormat msg = new MessageFormat("Hello {0}"); msg.setFormat(0, new MaskFormat("__ ____|_")); Assert.assertEquals(msg.render("001100Z"), "Hello 00 1100|Z"); java.text.MessageFormat smsg = new java.text.MessageFormat("Hello {0}"); smsg.setFormat(0, new MaskFormat("__ ____|_")); Assert.assertEquals(smsg.format(new String[] { "001100Z" }), "Hello 00 1100|Z"); } }