/**
*
*/
package net.azib.ipscan.exporters;
import static org.junit.Assert.*;
import java.io.IOException;
import java.net.InetAddress;
import java.util.Arrays;
import java.util.Locale;
import org.junit.Before;
import org.junit.Test;
import net.azib.ipscan.config.Labels;
import net.azib.ipscan.core.values.NotAvailable;
import net.azib.ipscan.core.values.NumericRangeList;
import net.azib.ipscan.fetchers.IPFetcher;
import net.azib.ipscan.fetchers.PortsFetcher;
/**
* IP List Exporter Test
*
* @author Anton Keks
*/
public class IPListExporterTest extends AbstractExporterTestCase {
@Before
public void setUp() throws Exception {
Labels.initialize(Locale.ENGLISH);
super.setUp();
}
protected Exporter createExporter() {
return new IPListExporter();
}
@Test
public void testBasic() throws IOException {
Labels labels = Labels.getInstance();
exporter.start(outputStream, "feederstuff");
exporter.setFetchers(new String[] {"fetcher1", labels.get(IPFetcher.ID), "mega long fetcher 2", labels.get(PortsFetcher.ID)});
exporter.nextAdressResults(new Object[] {"", "123", "", new NumericRangeList(Arrays.asList(1,23,4,5,6,78), true)});
exporter.end();
assertContains("123:1");
assertContains("123:23");
assertContains("123:4");
assertContains("123:5");
assertContains("123:6");
assertContains("123:78");
}
@Test
public void testFetchersWithAppend() throws IOException {
// default implementation doesn't work
}
@Test
public void testFetchersWithoutAppend() throws IOException {
// default implementation doesn't work
}
@Test
public void testNextAddressResultsWithNullsOrEmptyValues() throws IOException {
Labels labels = Labels.getInstance();
exporter.start(outputStream, "feederstuff");
exporter.setFetchers(new String[] {labels.get(IPFetcher.ID), "fetcher1", labels.get(PortsFetcher.ID)});
exporter.nextAdressResults(new Object[] {InetAddress.getLocalHost(), null, null});
exporter.nextAdressResults(new Object[] {InetAddress.getLocalHost(), null, NotAvailable.VALUE});
exporter.end();
}
@Test
public void testFindFetcherById() {
Labels labels = Labels.getInstance();
assertEquals(0, IPListExporter.findFetcherById(IPFetcher.ID, new String[] {labels.get(IPFetcher.ID)}));
assertEquals(3, IPListExporter.findFetcherById(IPFetcher.ID, new String[] {"a", "b", "c", labels.get(IPFetcher.ID)}));
assertEquals(1, IPListExporter.findFetcherById(PortsFetcher.ID, new String[] {labels.get(PortsFetcher.ID) + "x", labels.get(PortsFetcher.ID), "mmmm"}));
try {
IPListExporter.findFetcherById(IPFetcher.ID, new String[] {"1", "2"});
fail();
}
catch (ExporterException e) {
assertEquals("fetcher.notFound", e.getMessage());
}
}
}