// ============================================================================
//
// Copyright (C) 2006-2016 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.dataquality.datamasking.functions;
import static org.junit.Assert.assertEquals;
import java.util.Random;
import org.junit.Assert;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runners.MethodSorters;
/**
* DOC qzhao class global comment. Detailled comment
*/
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class MaskFullEmailDomainByXTest {
private String output;
private String mail = "hehe.hehe@uestc.edu.cn";
private String spemail = "hehe@telecom-bretagne.eu";
private String spemails = "hehe@tel-ecom-bretagne.hy-p-en.eu";
private MaskFullEmailDomainByX maskEmailDomainByX = new MaskFullEmailDomainByX();
@Test
public void testEmpty() {
maskEmailDomainByX.setKeepEmpty(true);
output = maskEmailDomainByX.generateMaskedRow("");
assertEquals("", output); //$NON-NLS-1$
}
@Test
public void test1Good() {
maskEmailDomainByX.parse("", false, new Random());
output = maskEmailDomainByX.generateMaskedRow(mail);
Assert.assertEquals("hehe.hehe@XXXXX.XXX.XX", output);
}
@Test
public void testReal() {
maskEmailDomainByX.parse("", true, new Random(Long.valueOf(12345678)));
output = maskEmailDomainByX.generateMaskedRow("dewitt.julio@hotmail.com");
Assert.assertEquals("dewitt.julio@XXXXXXX.XXX", output);
}
@Test
public void testSpecialEmail() {
maskEmailDomainByX.parse("", true, new Random(Long.valueOf(12345678)));
output = maskEmailDomainByX.generateMaskedRow(spemail);
Assert.assertEquals("hehe@XXXXXXXXXXXXXXXX.XX", output);
}
@Test
public void testSpecialEmails() {
maskEmailDomainByX.parse("", true, new Random(Long.valueOf(12345678)));
output = maskEmailDomainByX.generateMaskedRow(spemails);
Assert.assertEquals("hehe@XXXXXXXXXXXXXXXXX.XXXXXXX.XX", output);
}
@Test
public void test2WithInput() {
maskEmailDomainByX.parse("hehe", false, new Random());
output = maskEmailDomainByX.generateMaskedRow(mail);
Assert.assertEquals("hehe.hehe@XXXXX.XXX.XX", output);
}
@Test
public void test2WithOneCharacter() {
maskEmailDomainByX.parse("A", false, new Random());
output = maskEmailDomainByX.generateMaskedRow(mail);
Assert.assertEquals("hehe.hehe@AAAAA.AAA.AA", output);
}
@Test
public void test2WithOneDigit() {
maskEmailDomainByX.parse("1", false, new Random());
output = maskEmailDomainByX.generateMaskedRow(mail);
Assert.assertEquals("hehe.hehe@XXXXX.XXX.XX", output);
}
@Test
public void test3NullEmail() {
maskEmailDomainByX.parse("", false, new Random());
output = maskEmailDomainByX.generateMaskedRow(null);
Assert.assertTrue(output.isEmpty());
}
@Test
public void test3KeepNullEmail() {
maskEmailDomainByX.parse("", true, new Random());
output = maskEmailDomainByX.generateMaskedRow(null);
Assert.assertTrue(output == null);
}
@Test
public void test4EmptyEmail() {
maskEmailDomainByX.parse("", false, new Random());
output = maskEmailDomainByX.generateMaskedRow("");
Assert.assertTrue(output.isEmpty());
}
@Test
public void test5WrongFormat() {
maskEmailDomainByX.parse("", false, new Random());
output = maskEmailDomainByX.generateMaskedRow("hehe");
Assert.assertEquals("XXXX", output);
}
}