// ============================================================================
//
// 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.email;
import static org.junit.Assert.*;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.talend.dataquality.email.api.CheckerParams;
import org.talend.dataquality.email.api.EmailVerify;
import org.talend.dataquality.email.api.EmailVerifyResult;
import org.talend.dataquality.email.exception.TalendSMTPRuntimeException;
/**
* created by qiongli on 2014年12月26日 Detailled comment
*
*/
public class EmailVerifyTest {
String email = null;
String regularPattern = "aw"; //$NON-NLS-1$
EmailVerify emailVerify;
final String commontChar = "//##//"; //$NON-NLS-1$
final String invalidChar = "invalid"; //$NON-NLS-1$
final String validChar = "valid"; //$NON-NLS-1$
Logger log = Logger.getLogger(EmailVerifyTest.class);
@Before
public void setUp() throws Exception {
emailVerify = new EmailVerify();
}
/**
* Test method for {@link org.talend.dataquality.email.api.EmailVerify#verify(java.lang.String)}.
*/
@Test
public void testVerify_regular() {
email = "ab_2c@sina.com"; //$NON-NLS-1$
emailVerify = emailVerify.addRegularRegexChecker(true, ""); //$NON-NLS-1$
assertEquals(EmailVerifyResult.VALID, emailVerify.checkEmail(email));
}
@Test
public void testVerify_regular_invalid() {
email = "ab_2c@sina.com."; //$NON-NLS-1$
emailVerify = emailVerify.addRegularRegexChecker(true, null);
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail(email));
}
@Test
public void testVerify_regular_invalid_2() {
email = "ab_2c"; //$NON-NLS-1$
emailVerify = emailVerify.addRegularRegexChecker(true, ""); //$NON-NLS-1$
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail(email));
}
/**
* Test method for {@link org.talend.dataquality.email.api.EmailVerify#verify(java.lang.String)}.
*/
@Test
public void testVerify_localPart() {
email = "abc@sina.com"; //$NON-NLS-1$
emailVerify = emailVerify.addRegularRegexChecker(true, " ").addLocalPartRegexChecker(regularPattern, false, true); //$NON-NLS-1$
assertEquals(EmailVerifyResult.VALID, emailVerify.checkEmail(email));
email = "ab2@sina.com"; //$NON-NLS-1$
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail(email));
}
/**
* Test method for {@link org.talend.dataquality.email.api.EmailVerify#verify(java.lang.String)}.
*/
@Test
public void testVerify_localPart_2() {
email = "abc-sina.com"; //$NON-NLS-1$
emailVerify = emailVerify.addRegularRegexChecker(true, null).addLocalPartRegexChecker(regularPattern, false, true);
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail(email));
}
@Test
public void testVerify_localPart_3() {
emailVerify = emailVerify.addRegularRegexChecker(true, null).addLocalPartRegexChecker(regularPattern, false, true);
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail(null));
}
@Test
public void testVerify_RegularAndlocalPart_9985() {
email = "2@qq.com"; //$NON-NLS-1$
emailVerify = emailVerify.addRegularRegexChecker(true, "^\\w+([-+.]\\w+)@\\w([-.]\\w+)\\.\\w+([-.]\\w+)$") //$NON-NLS-1$
.addLocalPartRegexChecker("^\\d$", false, false); //$NON-NLS-1$
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail(email));
}
/**
* Test method for {@link org.talend.dataquality.email.api.EmailVerify#verify(java.lang.String)}.
*/
@Test
public void testVerify_TLD() {
email = "ab_2c@sina.com.xyz"; //$NON-NLS-1$
List<String> tldLs = new ArrayList<String>();
tldLs.add("xyz".toUpperCase()); //$NON-NLS-1$
emailVerify = emailVerify.addRegularRegexChecker(false, null).addTLDsChecker(true, tldLs, true);
assertEquals(EmailVerifyResult.VALID, emailVerify.checkEmail(email));
email = "ab_2c@sina.com.xy"; //$NON-NLS-1$
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail(email));
}
@Test
public void testVerify_TLD_2() {
email = "ab_2c-sina.com.xy"; //$NON-NLS-1$
List<String> tldLs = new ArrayList<String>();
tldLs.add("xyz".toUpperCase()); //$NON-NLS-1$
emailVerify = emailVerify.addRegularRegexChecker(false, "").addTLDsChecker(true, tldLs, true); //$NON-NLS-1$
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail(email));
}
@Test
public void testVerify_TLD_3() {
List<String> tldLs = new ArrayList<String>();
tldLs.add("xyz".toUpperCase()); //$NON-NLS-1$
emailVerify = emailVerify.addRegularRegexChecker(false, "").addTLDsChecker(true, tldLs, true); //$NON-NLS-1$
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail(null));
}
@Test
public void testVerify_TLD_4() {
List<String> tldLs = new ArrayList<String>();
tldLs.add("xyz".toUpperCase()); //$NON-NLS-1$
emailVerify = emailVerify.addRegularRegexChecker(false, "").addTLDsChecker(true, tldLs, true); //$NON-NLS-1$
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail("abc")); //$NON-NLS-1$
}
/**
* Test method for {@link org.talend.dataquality.email.api.EmailVerify#verify(java.lang.String)}.
*/
@Test
public void testVerify_domain_white() {
email = "ab@abx.com"; //$NON-NLS-1$
List<String> ls = new ArrayList<String>();
ls.add("abx.com"); //$NON-NLS-1$
emailVerify = emailVerify.addListDomainsChecker(false, ls);
assertEquals(EmailVerifyResult.VALID, emailVerify.checkEmail(email));
}
@Test
public void testVerify_domain_white_2() {
email = "ab-abx.com"; //$NON-NLS-1$
List<String> ls = new ArrayList<String>();
ls.add("abx.com"); //$NON-NLS-1$
emailVerify = emailVerify.addListDomainsChecker(false, ls);
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail(email));
}
@Test
public void testVerify_domain_white_3() {
List<String> ls = new ArrayList<String>();
ls.add("abx.com"); //$NON-NLS-1$
emailVerify = emailVerify.addListDomainsChecker(false, ls);
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail(null));
}
@Test
public void testVerify_domain_white_empty() {
email = "ab@abx.com"; //$NON-NLS-1$
List<String> ls = new ArrayList<String>();
emailVerify = emailVerify.addListDomainsChecker(false, ls);
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail(email));
}
/**
* Test method for {@link org.talend.dataquality.email.api.EmailVerify#verify(java.lang.String)}.
*/
@Test
public void testVerify_domain_white_multiEmails() {
List<String> emailLs = new ArrayList<String>();
emailLs.add("ab@abx.com"); //$NON-NLS-1$
emailLs.add("ab@;cd12.com"); //$NON-NLS-1$
List<String> whiteLs = new ArrayList<String>();
whiteLs.add("abx.com"); //$NON-NLS-1$
emailVerify = emailVerify.addListDomainsChecker(false, whiteLs);
for (int i = 0; i < emailLs.size(); i++) {
String em = emailLs.get(i);
if (i == 0) {
assertEquals(EmailVerifyResult.VALID, emailVerify.checkEmail(em));
} else {
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail(em));
}
}
}
/**
* Test method for {@link org.talend.dataquality.email.api.EmailVerify#verify(java.lang.String)}.
*/
@Test
public void testVerify_domain_black() {
email = "ab@abx.com"; //$NON-NLS-1$
List<String> ls = new ArrayList<String>();
ls.add("abx.com"); //$NON-NLS-1$
emailVerify = emailVerify.addListDomainsChecker(true, ls);
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail(email));
email = "ab@cd.com"; //$NON-NLS-1$
assertEquals(EmailVerifyResult.VALID, emailVerify.checkEmail(email));
}
@Test
public void testVerify_domain_black_9985() {
String[] emails = { "luck@qq.com", "luck@aa.bbzz11", "luck@bb.zbzz12", "luck@as.cn", "luck@cc.zbzz13" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
List<String> ls = new ArrayList<String>();
ls.add("cc.zbzz13"); //$NON-NLS-1$
emailVerify = emailVerify.addListDomainsChecker(true, ls);
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail(email));
email = "ab@cd.com"; //$NON-NLS-1$
assertEquals(EmailVerifyResult.VALID, emailVerify.checkEmail(emails[0]));
assertEquals(EmailVerifyResult.VALID, emailVerify.checkEmail(emails[1]));
assertEquals(EmailVerifyResult.VALID, emailVerify.checkEmail(emails[2]));
assertEquals(EmailVerifyResult.VALID, emailVerify.checkEmail(emails[3]));
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail(emails[4]));
}
@Test
@Ignore
public void testCallback_valid1() {
emailVerify = emailVerify.addRegularRegexChecker(true, "").addCallbackMailServerChecker(true); //$NON-NLS-1$
assertEquals(EmailVerifyResult.VALID, emailVerify.checkEmail("237283696@qq.com")); //$NON-NLS-1$
}
@Test
@Ignore
public void testCallback_valid_2() {
emailVerify = emailVerify.addCallbackMailServerChecker(true).addRegularRegexChecker(true, null);
assertEquals(EmailVerifyResult.VALID, emailVerify.checkEmail("237283696@qq.com")); //$NON-NLS-1$
}
@Test
@Ignore
public void testCallback_valid2() {
emailVerify = emailVerify.addRegularRegexChecker(true, null).addCallbackMailServerChecker(true);
try {
assertEquals(EmailVerifyResult.VALID, emailVerify.checkEmail("qiongli1@163.com")); //$NON-NLS-1$
} catch (TalendSMTPRuntimeException e) {
}
}
@Test
@Ignore
public void testCallback_invalid_2() {
emailVerify = emailVerify.addRegularRegexChecker(true, "").addCallbackMailServerChecker(true); //$NON-NLS-1$
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail("qiongli-163.com")); //$NON-NLS-1$
}
@Test
@Ignore
public void testCallback_valid_3() {
emailVerify = emailVerify.addRegularRegexChecker(true, "").addCallbackMailServerChecker(true); //$NON-NLS-1$
try {
assertEquals(EmailVerifyResult.VALID, emailVerify.checkEmail("237283696@qq.com")); //$NON-NLS-1$
} catch (TalendSMTPRuntimeException e) {
}
}
/**
* Test method for {@link org.talend.dataquality.email.api.EmailVerify#verify(java.lang.String)}.
*/
@Test
public void testVerify_All() {
List<String> domainLs = new ArrayList<>();
domainLs.add("abx.com.cn"); //$NON-NLS-1$
List<String> tldLs = new ArrayList<>();
tldLs.add("hk".toUpperCase()); //$NON-NLS-1$
tldLs.add("cn".toUpperCase()); //$NON-NLS-1$
email = "ab@abx.com.cn"; //$NON-NLS-1$
emailVerify = emailVerify.addRegularRegexChecker(true, "").addLocalPartRegexChecker(regularPattern, true, true) //$NON-NLS-1$
.addListDomainsChecker(false, domainLs).addTLDsChecker(false, tldLs, false);
// .addCallbackMailServerChecker(true, "qiongli@talend.com");
// EmailCheckerFactory.createEmailChecker(true, regularPattern, true, true, true, false, false, tldLs,
// domainLs);
assertEquals(EmailVerifyResult.VALID, emailVerify.checkEmail(email));
}
@Test
public void testVerify_All_2() {
List<String> domainLs = new ArrayList<>();
domainLs.add("abx.com.cn"); //$NON-NLS-1$
List<String> tldLs = new ArrayList<>();
tldLs.add("hk".toUpperCase()); //$NON-NLS-1$
tldLs.add("cn".toUpperCase()); //$NON-NLS-1$
email = "ab@abx.com.cn"; //$NON-NLS-1$
emailVerify = emailVerify.addRegularRegexChecker(true, "").addLocalPartRegexChecker("^\\\\d$", true, true) //$NON-NLS-1$ //$NON-NLS-2$
.addListDomainsChecker(true, domainLs).addTLDsChecker(true, tldLs, true);
// it fail to balck domain list
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail(email));
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail(null));
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail("abc")); //$NON-NLS-1$
}
/**
* Test method for {@link org.talend.dataquality.email.api.EmailVerify#verify(java.lang.String)}.
*/
@Test
public void testVerify_email_null() {
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail(null));
}
/**
* Test for :use column content, in local part
*/
@Test
public void testUseColumnContent_1() {
// use first 2 of the firstname, use all of the last name
emailVerify = emailVerify.addLocalPartColumnContentChecker(true, false, "L", "2", "0", "0", "10", "-"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
assertEquals(EmailVerifyResult.VALID, emailVerify.checkEmail("ab-full@email.com", new CheckerParams("abaa", "full"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
// first n<2
assertEquals(EmailVerifyResult.CORRECTED, emailVerify.checkEmail("a-full@email.com", new CheckerParams("abaa", "full"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals("ab-full@email.com", emailVerify.getSuggestedEmail()); //$NON-NLS-1$
// first n>2
assertEquals(EmailVerifyResult.CORRECTED,
emailVerify.checkEmail("aba-full@email.com", new CheckerParams("abaa", "full"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals("ab-full@email.com", emailVerify.getSuggestedEmail()); //$NON-NLS-1$
// last n<all
assertEquals(EmailVerifyResult.CORRECTED, emailVerify.checkEmail("ab-ful@email.com", new CheckerParams("abaa", "full"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals("ab-full@email.com", emailVerify.getSuggestedEmail()); //$NON-NLS-1$
// last n>all
assertEquals(EmailVerifyResult.CORRECTED,
emailVerify.checkEmail("ab-fullyy@email.com", new CheckerParams("abaa", "full"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals("ab-full@email.com", emailVerify.getSuggestedEmail()); //$NON-NLS-1$
// both less
assertEquals(EmailVerifyResult.CORRECTED, emailVerify.checkEmail("a-ful@email.com", new CheckerParams("abaa", "full"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals("ab-full@email.com", emailVerify.getSuggestedEmail()); //$NON-NLS-1$
// both more
assertEquals(EmailVerifyResult.CORRECTED,
emailVerify.checkEmail("ababb-fullyy@email.com", new CheckerParams("abaa", "full"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals("ab-full@email.com", emailVerify.getSuggestedEmail()); //$NON-NLS-1$
// only first
assertEquals(EmailVerifyResult.CORRECTED, emailVerify.checkEmail("ab-@email.com", new CheckerParams("abaa", "full"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals("ab-full@email.com", emailVerify.getSuggestedEmail()); //$NON-NLS-1$
// only last
assertEquals(EmailVerifyResult.CORRECTED, emailVerify.checkEmail("-full@email.com", new CheckerParams("abaa", "full"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals("ab-full@email.com", emailVerify.getSuggestedEmail()); //$NON-NLS-1$
assertEquals(EmailVerifyResult.CORRECTED, emailVerify.checkEmail("full@email.com", new CheckerParams("abaa", "full"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals("ab-full@email.com", emailVerify.getSuggestedEmail()); //$NON-NLS-1$
// not contain '@'
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail("ccc", new CheckerParams("abaa", "full"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
// not contain localpart
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail("@ccc", new CheckerParams("abaa", "full"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
// first name empty
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail("ccc", new CheckerParams("", "full"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
// first empty, only has last
assertEquals(EmailVerifyResult.CORRECTED, emailVerify.checkEmail("ful@email.com", new CheckerParams("", "full"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals("full@email.com", emailVerify.getSuggestedEmail()); //$NON-NLS-1$
assertEquals(EmailVerifyResult.VALID, emailVerify.checkEmail("full@email.com", new CheckerParams("", "full"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
// last name empty
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail("ccc", new CheckerParams("abc", ""))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
// last empty, only has first
assertEquals(EmailVerifyResult.CORRECTED, emailVerify.checkEmail("a@email.com", new CheckerParams("abaa", ""))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals("ab@email.com", emailVerify.getSuggestedEmail()); //$NON-NLS-1$
assertEquals(EmailVerifyResult.VALID, emailVerify.checkEmail("ab@email.com", new CheckerParams("abaa", ""))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
// empty email -- invalid
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail("", new CheckerParams("abc", "full"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
// email = null
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail(null, new CheckerParams("abc", "full"))); //$NON-NLS-1$ //$NON-NLS-2$
}
@Test
public void testUseColumnContent_2() {
// use all of the firstname, use 2 first of the last name
emailVerify = emailVerify.addLocalPartColumnContentChecker(true, false, "L", "20", "0", "2", "0", "-"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
assertEquals(EmailVerifyResult.VALID, emailVerify.checkEmail("full-aa@email.com", new CheckerParams("full", "aaaa"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
// first n<all
assertEquals(EmailVerifyResult.CORRECTED, emailVerify.checkEmail("fu-aa@email.com", new CheckerParams("full", "aaaa"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals("full-aa@email.com", emailVerify.getSuggestedEmail()); //$NON-NLS-1$
// first n>all
assertEquals(EmailVerifyResult.CORRECTED,
emailVerify.checkEmail("fullyy-aa@email.com", new CheckerParams("full", "aaaa"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals("full-aa@email.com", emailVerify.getSuggestedEmail()); //$NON-NLS-1$
// last n<2
assertEquals(EmailVerifyResult.CORRECTED, emailVerify.checkEmail("full-b@email.com", new CheckerParams("full", "aaaa"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals("full-aa@email.com", emailVerify.getSuggestedEmail()); //$NON-NLS-1$
// last n>2
assertEquals(EmailVerifyResult.CORRECTED,
emailVerify.checkEmail("full-aba@email.com", new CheckerParams("full", "aaaa"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals("full-aa@email.com", emailVerify.getSuggestedEmail()); //$NON-NLS-1$
// both less
assertEquals(EmailVerifyResult.CORRECTED, emailVerify.checkEmail("ful-b@email.com", new CheckerParams("full", "aaaa"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals("full-aa@email.com", emailVerify.getSuggestedEmail()); //$NON-NLS-1$
// both more
assertEquals(EmailVerifyResult.CORRECTED,
emailVerify.checkEmail("ababb-fullyy@email.com", new CheckerParams("full", "aaaa"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals("full-aa@email.com", emailVerify.getSuggestedEmail()); //$NON-NLS-1$
}
@Test
public void testUseColumnContent_4() {
// use 2+1 of the firstname, use 4+3 first of the last name
emailVerify = emailVerify.addLocalPartColumnContentChecker(true, false, "L", "2", "1", "4", "3", "-"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
assertEquals(EmailVerifyResult.VALID,
emailVerify.checkEmail("124-1234678@email.com", new CheckerParams("1234", "12345678"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
// first n<all
assertEquals(EmailVerifyResult.CORRECTED,
emailVerify.checkEmail("1-1234678@email.com", new CheckerParams("1234", "12345678"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals("124-1234678@email.com", emailVerify.getSuggestedEmail()); //$NON-NLS-1$
// first n>all
assertEquals(EmailVerifyResult.CORRECTED,
emailVerify.checkEmail("1234-1234678@email.com", new CheckerParams("1234", "12345678"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals("124-1234678@email.com", emailVerify.getSuggestedEmail()); //$NON-NLS-1$
// last n<2
assertEquals(EmailVerifyResult.CORRECTED,
emailVerify.checkEmail("124-12@email.com", new CheckerParams("1234", "12345678"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals("124-1234678@email.com", emailVerify.getSuggestedEmail()); //$NON-NLS-1$
// last n>2
assertEquals(EmailVerifyResult.CORRECTED,
emailVerify.checkEmail("124-123456789@email.com", new CheckerParams("1234", "12345678"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals("124-1234678@email.com", emailVerify.getSuggestedEmail()); //$NON-NLS-1$
// both less
assertEquals(EmailVerifyResult.CORRECTED, emailVerify.checkEmail("1-1@email.com", new CheckerParams("1234", "12345678"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals("124-1234678@email.com", emailVerify.getSuggestedEmail()); //$NON-NLS-1$
// both more
assertEquals(EmailVerifyResult.CORRECTED,
emailVerify.checkEmail("11111-222222222@email.com", new CheckerParams("1234", "12345678"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals("124-1234678@email.com", emailVerify.getSuggestedEmail()); //$NON-NLS-1$
}
// use invalid parameters of each string
@Test
public void testUseColumnContent_3() {
emailVerify = emailVerify.addLocalPartColumnContentChecker(true, false, "L", "ab", "cc", "x", "z", "-"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
assertEquals(EmailVerifyResult.CORRECTED,
emailVerify.checkEmail("124-1234678@email.com", new CheckerParams("1234", "12345678"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
// use 0 of the firstname, use all of the last name
emailVerify = emailVerify.addLocalPartColumnContentChecker(true, false, "L", "0", "0", "10", "0", "-"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
assertEquals(EmailVerifyResult.VALID,
emailVerify.checkEmail("12345678@email.com", new CheckerParams("1234", "12345678"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals(EmailVerifyResult.CORRECTED,
emailVerify.checkEmail("1-12345678@email.com", new CheckerParams("1234", "12345678"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
// test case sensitive
@Test
public void testUseColumnContent_5() {
emailVerify = emailVerify.addLocalPartColumnContentChecker(true, true, "K", "0", "2", "0", "2", "-"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
assertEquals(EmailVerifyResult.VALID, emailVerify.checkEmail("aA-bB@email.com", new CheckerParams("AaA", "BbB"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals(EmailVerifyResult.CORRECTED, emailVerify.checkEmail("aa-BB@email.com", new CheckerParams("AaA", "BbB"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals(EmailVerifyResult.CORRECTED, emailVerify.checkEmail("aa-bb@email.com", new CheckerParams("AaA", "BbB"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
emailVerify = emailVerify.addLocalPartColumnContentChecker(true, true, "L", "0", "2", "0", "2", "-"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
assertEquals(EmailVerifyResult.VALID, emailVerify.checkEmail("aa-bb@email.com", new CheckerParams("AaA", "BbB"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals(EmailVerifyResult.CORRECTED, emailVerify.checkEmail("aa-BB@email.com", new CheckerParams("AaA", "BbB"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals(EmailVerifyResult.CORRECTED, emailVerify.checkEmail("Aa-Bb@email.com", new CheckerParams("AaA", "BbB"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
emailVerify = emailVerify.addLocalPartColumnContentChecker(true, true, "U", "0", "2", "0", "2", "-"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
assertEquals(EmailVerifyResult.VALID, emailVerify.checkEmail("AA-BB@email.com", new CheckerParams("AaA", "BbB"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals(EmailVerifyResult.CORRECTED, emailVerify.checkEmail("aa-BB@email.com", new CheckerParams("AaA", "BbB"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals(EmailVerifyResult.CORRECTED, emailVerify.checkEmail("aa-bb@email.com", new CheckerParams("AaA", "BbB"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
// test fr case
@Test
public void testFrCase_6() {
emailVerify = emailVerify.addRegularRegexChecker(true, StringUtils.EMPTY);
assertEquals(EmailVerifyResult.VALID, emailVerify.checkEmail("gégé@laposte.fr")); //$NON-NLS-1$
assertEquals(EmailVerifyResult.VALID, emailVerify.checkEmail("sidbpl@cebpl.caisse-epargne.fr")); //$NON-NLS-1$
}
// test for batch email address case
@Test
public void testFrCase_7() throws IOException {
boolean startInvalid = false;
emailVerify = emailVerify.addRegularRegexChecker(true, StringUtils.EMPTY);
InputStream dateStream = this.getClass().getResourceAsStream("emailList.txt"); //$NON-NLS-1$
BufferedReader br = new BufferedReader(new InputStreamReader(dateStream, "UTF-8")); //$NON-NLS-1$//for Hindi language Double-byte type
String line;
try {
while ((line = br.readLine()) != null) {
if (line.startsWith(commontChar)) {
String controlKey = line.replace(commontChar, StringUtils.EMPTY);
if (controlKey.equals(invalidChar)) {
startInvalid = true;
} else if (controlKey.equals(validChar)) {
startInvalid = false;
}
continue;
}
if (startInvalid) {
assertEquals(EmailVerifyResult.INVALID, emailVerify.checkEmail(line));
} else {
assertEquals(EmailVerifyResult.VALID, emailVerify.checkEmail(line));
}
}
} catch (FileNotFoundException e) {
log.error(e, e);
Assert.fail(e.getMessage());
} catch (IOException e) {
log.error(e, e);
Assert.fail(e.getMessage());
} finally {
br.close();
}
}
}