// ============================================================================
//
// 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 static org.junit.Assert.assertTrue;
import java.net.URISyntaxException;
import java.util.Random;
import org.apache.commons.lang.ArrayUtils;
import org.junit.Before;
import org.junit.Test;
/**
* created by jgonzalez on 29 juin 2015 Detailled comment
*
*/
public class GenerateFromFileHashStringTest {
private String output;
@Before
public void setUp() throws Exception {
}
public void testGood() throws URISyntaxException {
GenerateFromFileHashString gffhs = new GenerateFromFileHashString();
final String path = this.getClass().getResource("data/name.txt").toURI().getPath(); //$NON-NLS-1$
gffhs.parse(path, false, new Random(42));
output = gffhs.generateMaskedRow(null);
assertEquals("Brad X", output); //$NON-NLS-1$
}
@Test
public void testEmpty() {
GenerateFromFileHashString gffhs = new GenerateFromFileHashString();
gffhs.setKeepEmpty(true);
output = gffhs.generateMaskedRow("").toString();
assertEquals("", output); //$NON-NLS-1$
}
public void testSeparatorWin() throws URISyntaxException {
GenerateFromFileHashString gffhs = new GenerateFromFileHashString();
final String pathWin = this.getClass().getResource("data/name_win.txt").toURI().getPath(); //$NON-NLS-1$
gffhs.parse(pathWin, false, new Random(42));
int runTimes = 10000;
String[] keysArray = new String[] { "Brad X", "Marouane", "Matthieu", "Xavier", "Aymen" };
while (runTimes > 0) {
output = gffhs.generateMaskedRow(null);
assertTrue(ArrayUtils.contains(keysArray, output));
runTimes--;
}
}
@Test
public void testSeparatorLinux() throws URISyntaxException {
GenerateFromFileHashString gffhs = new GenerateFromFileHashString();
final String linuxFilePath = this.getClass().getResource("data/last_names.csv").toURI().getPath(); //$NON-NLS-1$
gffhs.parse(linuxFilePath, false, new Random(42));
int runTimes = 5;
String[] keysArray = new String[] { "Mendez", "Slaven", "Posner", "Rosemont", "Wyllie" };
while (runTimes > 0) {
output = gffhs.generateMaskedRow(null);
assertTrue(ArrayUtils.contains(keysArray, output));
runTimes--;
}
}
public void testNull() throws URISyntaxException {
GenerateFromFileHashString gffhs = new GenerateFromFileHashString();
final String path = this.getClass().getResource("data/name.txt").toURI().getPath(); //$NON-NLS-1$
gffhs.parse(path, false, new Random(42));
gffhs.keepNull = true;
output = gffhs.generateMaskedRow(null);
assertEquals(null, output);
}
}