0

I have two regex one is MCC and another is CAPI things which allowed in MCC should also allow with CAPI kind of requirement is there. I made changes but two test cases failed. Please Help me to get this

public class EmailValidationTest {
public static final String MCC_REGEX = "^(\\w+)([\\-+.\\'][\\w]+)*@(\\w[\\-\\w]*\\.){1,5}([A-Za-z]){2,6}$";

public static final String CAPI_REGEX="^(?!.*'')[a-zA-Z_]+[_\'+A-Za-z0-9-\\+]+(?<!')+(\\.[_A-Za-z0-9-\'+]+(?<!'))*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";


@Test
public void testValidEmailId() {
    String emailStr = "_tom.moddy@company.com";
    Assert.assertTrue("Invalid email-id",emailStr.matches(MCC_REGEX));
    Assert.assertTrue("Invalid email-id",emailStr.matches(CAPI_REGEX));
}

@Test
public void testValidEmailIdWithApostrophe() {
    String emailStr = "to'm.moddy@company.com";
    Assert.assertTrue("Invalid email-id",emailStr.matches(MCC_REGEX));
    Assert.assertTrue("Invalid email-id",emailStr.matches(CAPI_REGEX));
}

@Test
public void testInvalidEmailIdStartWithApostrophe() {
    String emailStr = "'tom.moddy@company.com";
    Assert.assertFalse("Invalid email-id",emailStr.matches(MCC_REGEX));
    Assert.assertFalse("Invalid email-id",emailStr.matches(CAPI_REGEX));
}

@Test
public void testInvalidEmailIdEndWithApostrophe() {
    String emailStr = "tom.moddy'@company.com";
    Assert.assertFalse("Invalid email-id",emailStr.matches(MCC_REGEX));
    Assert.assertFalse("Invalid email-id",emailStr.matches(CAPI_REGEX));
}

@Test
public void testInvalidEmailIdWithConsecutiveApostrophe() {
    String emailStr = "tom.modd''y@company.com";
    Assert.assertFalse("Invalid email-id",emailStr.matches(MCC_REGEX));
    Assert.assertFalse("Invalid email-id",emailStr.matches(CAPI_REGEX));
}

@Test
public void testInvalidEmailIdApostropheInDomain() {
    String emailStr = "tom.moddy@compan'y.com";
    Assert.assertFalse("Invalid email-id",emailStr.matches(MCC_REGEX));
    Assert.assertFalse("Invalid email-id",emailStr.matches(CAPI_REGEX));
}

@Test
public void testValidEmailIdWithSymbol1() {
    String emailStr = "tom.mod-dy@company.com";
    Assert.assertTrue("Invalid email-id",emailStr.matches(MCC_REGEX));
    Assert.assertTrue("Invalid email-id",emailStr.matches(CAPI_REGEX));
}

@Test
public void testInvalidEmailIdWithSymbol3() {
    String emailStr = "tom.mod$dy@company.com";
    Assert.assertFalse("Invalid email-id",emailStr.matches(MCC_REGEX));
    Assert.assertFalse("Invalid email-id",emailStr.matches(CAPI_REGEX));
}

@Test
public void testInvalidEmailIdWithSymbol4() {
    String emailStr = "tom.mod'.dy@company.com";
    Assert.assertFalse("Invalid email-id",emailStr.matches(MCC_REGEX));
    Assert.assertFalse("Invalid email-id",emailStr.matches(CAPI_REGEX));
}

@Test
public void testValidEmailIdWithSymbol2() {
    String emailStr = "tom.mod+dy@company.com";
    Assert.assertTrue("Invalid email-id",emailStr.matches(MCC_REGEX));
    Assert.assertTrue("Invalid email-id",emailStr.matches(CAPI_REGEX));
}

@Test
public void testInvalidEmailIdWithSymbol5() {
    String emailStr = "tom.moddy+@company.com";
    Assert.assertFalse("Invalid email-id",emailStr.matches(MCC_REGEX));
    Assert.assertFalse("Invalid email-id",emailStr.matches(CAPI_REGEX));
}

@Test
public void testInvalidEmailIdWithSymbol6() {
    String emailStr = "+tom.moddy@company.com";
    Assert.assertFalse("Invalid email-id",emailStr.matches(MCC_REGEX));
    Assert.assertFalse("Invalid email-id",emailStr.matches(CAPI_REGEX));
}

@Test
public void testValidEmailIdWithSymbol7() {
    String emailStr = "tom+moddy@company.com";
    Assert.assertTrue("Invalid email-id",emailStr.matches(MCC_REGEX));
    Assert.assertTrue("Invalid email-id",emailStr.matches(CAPI_REGEX));
}

@Test
public void testInvalidEmailIdWithSymbol8() {
    String emailStr = "tom'+moddy@company.com";
    Assert.assertFalse("Invalid email-id",emailStr.matches(MCC_REGEX));
    Assert.assertFalse("Invalid email-id",emailStr.matches(CAPI_REGEX));
}

}

testInvalidEmailIdWithSymbol5 and testInvalidEmailIdWithSymbol8 this test cases failed CAPI regex failed.

Pankaj Saboo
  • 1,125
  • 1
  • 8
  • 27
  • Which regexp is failing in these cases? try to comment out one or the other from these test cases, then you get closer. It may happen that both are failing. – gaborsch Jun 14 '17 at 10:59
  • Isn't `..Symbol5` valid (and 7 (and 2))? (I.e `+` is a valid character in email addresses.) – SamWhan Jun 14 '17 at 11:00
  • Again - I think your tests are wrong. The MCC_REGEX doesn't allow a `+` last in the local part. The CAPI_REGEX does and that's correct. – SamWhan Jun 14 '17 at 11:08
  • Also, the MCC doesn't allow top domains longer than 6 characters - wrong. – SamWhan Jun 14 '17 at 11:11
  • 1
    Spamming... me... Noooo ;) [Check this thread](https://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address). – SamWhan Jun 14 '17 at 11:13

0 Answers0