//Dstl (c) Crown Copyright 2017 package uk.gov.dstl.baleen.annotators.regex; import org.junit.Test; import uk.gov.dstl.baleen.annotators.regex.IpV4; import uk.gov.dstl.baleen.annotators.testing.AbstractAnnotatorTest; import uk.gov.dstl.baleen.annotators.testing.types.TestCommsIdentifier; import uk.gov.dstl.baleen.types.common.CommsIdentifier; /** * Tests to ensure IP V4 regex annotator works as expected, ignoring incorrect octets and extracts multiple IPs in any document. * */ public class IpV4AddressTest extends AbstractAnnotatorTest { private static final String IPV4ADDRESS = "ipv4address"; public IpV4AddressTest() { super(IpV4.class); } @Test public void testSingleIp() throws Exception{ // Create a document containing just 1 IP jCas.setDocumentText("This is a fake IP address made up for the unit test: 123.123.123.123"); processJCas(); assertAnnotations(1, CommsIdentifier.class, new TestCommsIdentifier(0, "123.123.123.123", IPV4ADDRESS)); } @Test public void testMultipleIpsInDocument() throws Exception{ // Create a document containing a couple of IPs jCas.setDocumentText("This document contains several IP addresses. There is this one 123.123.123.123, but also the localhost 127.0.0.1 and this 192.168.0.1 - all should match."); processJCas(); assertAnnotations(3, CommsIdentifier.class, new TestCommsIdentifier(0, "123.123.123.123", IPV4ADDRESS), new TestCommsIdentifier(1, "127.0.0.1", IPV4ADDRESS), new TestCommsIdentifier(2, "192.168.0.1", IPV4ADDRESS) ); } @Test public void testWithTrailingSlash() throws Exception{ jCas.setDocumentText("An IP with a trailing slash IP mask 125.125.125.125/25"); processJCas(); assertAnnotations(1, CommsIdentifier.class, new TestCommsIdentifier(0, "125.125.125.125", IPV4ADDRESS) ); } @Test public void testIgnoreIncorrectOctet() throws Exception{ jCas.setDocumentText("An IP with a trailing slash IP mask 600.123.123.123"); processJCas(); assertAnnotations(0, CommsIdentifier.class); } }