package hudson.plugins.hgca;
import hudson.MarkupText;
import junit.framework.TestCase;
import java.util.HashMap;
public class HGCALinkAnnotatorTest extends TestCase {
private static final String TEST_LINK_A = "http://cdetsweb-prd.cisco.com/apps/dumpcr?identifier=";
private static final String TEST_PATT_A = "(CSC\\w{2}\\d{5})";
private static final String TEST_LINK_B = "http://some/site?query=";
private static final String TEST_PATT_B = "\\d+(foo)\\d+";
public void testLinkSyntax() {
assertAnnotatedTextEquals("Nothing here.", "Nothing here.");
assertAnnotatedTextEquals("Text with bug CSCxy12345.",
"Text with bug <a href=\"" + TEST_LINK_A + "CSCxy12345\">CSCxy12345</a>.");
assertAnnotatedTextEquals("Banana banana foo foo banana",
"Banana banana foo foo banana");
assertAnnotatedTextEquals("Banana banana 22foo22 foo banana",
"Banana banana <a href=\"" + TEST_LINK_B + "foo\">22foo22</a> foo banana");
}
private void assertAnnotatedTextEquals(String originalText, String expectedAnnotatedText) {
MarkupText markupText = new MarkupText(originalText);
HashMap<String,String> annos = new HashMap<String,String>();
annos.put(TEST_PATT_A, TEST_LINK_A + "$1");
annos.put(TEST_PATT_B, TEST_LINK_B + "$1");
HGCALinkAnnotator annotator = new HGCALinkAnnotator();
annotator.annotate(annos, markupText);
assertEquals(expectedAnnotatedText, markupText.toString());
}
}