package com.krickert.ipsearch;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
import junit.framework.TestCase;
import com.krickert.ipsearch.city.IpSearchCityBean;
public class IpDataReaderTaskTest extends TestCase {
private BlockingQueue<IpSearchCityBean> queue;
public IpDataReaderTaskTest(String name) {
super(name);
}
public void testIpDataReaderParseLines() {
assertEquals(1819, queue.size());// minus one for the heade
}
public void testReferencePoint() throws InterruptedException {
IpSearchCityBean bean = queue.poll();
assertEquals(0.0d, bean.getLat());
assertEquals(0.0d, bean.getLon());
assertEquals((Long) 0l, bean.getIpStart());
assertEquals("Reserved", bean.getCountryName());
assertEquals("RD", bean.getCountryCode());
assertEquals("", bean.getCity());
assertEquals("", bean.getZipCode());
}
public void testNoNullIpAddresses() {
int numZeros = 0;
for (IpSearchCityBean bean : queue) {
assertNotNull(bean.getIpStart());
if (bean.getIpStart() == 0l) {
numZeros++;
}
// first entry is a reference point, should be the only 0
assertEquals(1, numZeros);
}
}
@Override
protected void setUp() throws Exception {
super.setUp();
BlockingQueue<IpSearchCityBean> queue = new ArrayBlockingQueue<IpSearchCityBean>(1820);
IpDataReaderTask task = new IpDataReaderTask("src/test/resources/ipsearch_test.zip", "ip_group_city.csv", queue);
task.fire();
this.queue = queue;
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
}
}