package play.modules.logger; import org.junit.Test; import static org.hamcrest.Matchers.nullValue; import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertThat; public class ObfuscatorTest { Obfuscator obfuscator = new Obfuscator(); @Test public void nullSafe() { assertThat(obfuscator.isLikeCardNumber(null), is(false)); assertThat(obfuscator.maskCardNumber(null), is(nullValue())); } @Test public void emptyString() { assertThat(obfuscator.isLikeCardNumber(""), is(false)); assertThat(obfuscator.maskCardNumber(""), is("")); } @Test public void masksCardNumbers() { assertThat(obfuscator.isLikeCardNumber("4797707124015750"), is(true)); assertThat(obfuscator.maskCardNumber("4797707124015750"), is("479770******5750")); assertThat(obfuscator.maskCardNumber("foo 4797707124015750 bar"), is("foo 479770******5750 bar")); assertThat(obfuscator.maskCardNumber("foo4797707124015750bar"), is("foo479770******5750bar")); assertThat(obfuscator.maskCardNumber("foo4797707124015750"), is("foo479770******5750")); assertThat(obfuscator.maskCardNumber("4797707124015750bar"), is("479770******5750bar")); } @Test public void doesNotMaskAccountNumbers() { assertThat(obfuscator.isLikeCardNumber("40702810090240700028"), is(false)); assertThat(obfuscator.maskCardNumber("40702810090240700028"), is("40702810090240700028")); } @Test public void doesNotMaskPhoneNumbers() { assertThat(obfuscator.isLikeCardNumber("7916000000"), is(false)); assertThat(obfuscator.maskCardNumber("7916000000"), is("7916000000")); } @Test public void masksMultipleCardNumbersInText() { assertThat(obfuscator.maskCardNumber("4797707124015750 tere foo4797707124015750bar"), is("479770******5750 tere foo479770******5750bar")); } }