@Test
  public void testDoValidation() {
    SingleEmailAddress singleEmailAddress =
        new SingleEmailAddress(new MockSimpleAuthenticationContext(null, Locale.ENGLISH));

    final Map<String, String> params = new HashMap<String, String>();
    assertFalse(
        "Should require the specified key to be in the param map",
        singleEmailAddress.doValidation("Single_Email_Address", params));

    params.put("Single_Email_Address", null);
    assertFalse(
        "Should require the specified param to be non-null",
        singleEmailAddress.doValidation("Single_Email_Address", params));

    params.put("Single_Email_Address", "Not an e-mail address");
    assertFalse(
        "Should require the specified value to look like a valid e-mail address",
        singleEmailAddress.doValidation("Single_Email_Address", params));

    params.put("Single_Email_Address", user.getEmailAddress());
    assertTrue(
        "Should allow a valid e-mail address",
        singleEmailAddress.doValidation("Single_Email_Address", params));
  }
 @Test
 public void testGetRecipients() {
   SingleEmailAddress singleEmailAddress =
       new SingleEmailAddress(new MockSimpleAuthenticationContext(null, Locale.ENGLISH));
   List<NotificationRecipient> recipients =
       singleEmailAddress.getRecipients(
           new IssueEvent(null, null, null, null), "*****@*****.**");
   assertEquals(1, recipients.size());
   final NotificationRecipient nr = recipients.get(0);
   assertNull(
       "This kind of notification type targets a specific e-mail address; there should be no user",
       nr.getUser());
   assertEquals("*****@*****.**", nr.getEmail());
   assertTrue(
       "We always use HTML format when there is no user to check preferences for", nr.isHtml());
 }
 @Test
 public void testGetType() {
   SingleEmailAddress singleEmailAddress =
       new SingleEmailAddress(new MockSimpleAuthenticationContext(null, Locale.ENGLISH));
   assertEquals("email", singleEmailAddress.getType());
 }