/** * Add a bunch of IPS to the file * Check for inclusion * Check for exclusion */ @Test public void testSubnetsAndIPs() throws IOException { String[] ips = {"10.119.103.112", "10.221.102.0/23"}; createFileWithEntries ("ips.txt", ips); IPList ipList = new FileBasedIPList("ips.txt"); assertTrue ("10.119.103.112 is not in the list", ipList.isIn("10.119.103.112")); assertFalse ("10.119.103.113 is in the list", ipList.isIn("10.119.103.113")); assertTrue ("10.221.102.0 is not in the list", ipList.isIn("10.221.102.0")); assertTrue ("10.221.102.1 is not in the list", ipList.isIn("10.221.102.1")); assertTrue ("10.221.103.1 is not in the list", ipList.isIn("10.221.103.1")); assertTrue ("10.221.103.255 is not in the list", ipList.isIn("10.221.103.255")); assertFalse("10.221.104.0 is in the list", ipList.isIn("10.221.104.0")); assertFalse("10.221.104.1 is in the list", ipList.isIn("10.221.104.1")); }
/** * Add a bunch of IPS to the file * Check for inclusion * Check for exclusion */ @Test public void testNullIP() throws IOException { String[] ips = {"10.119.103.112", "10.221.102.0/23"}; createFileWithEntries ("ips.txt", ips); IPList ipList = new FileBasedIPList("ips.txt"); assertFalse ("Null Ip is in the list", ipList.isIn(null)); }
/** * Add a bunch of subnets and IPSs to the file * Check for inclusion * Check for exclusion */ @Test public void testWithMultipleSubnetAndIPs() throws IOException { String[] ips = {"10.119.103.112", "10.221.102.0/23", "10.222.0.0/16", "10.113.221.221"}; createFileWithEntries ("ips.txt", ips); IPList ipList = new FileBasedIPList("ips.txt"); assertTrue ("10.119.103.112 is not in the list", ipList.isIn("10.119.103.112")); assertFalse ("10.119.103.113 is in the list", ipList.isIn("10.119.103.113")); assertTrue ("10.221.103.121 is not in the list", ipList.isIn("10.221.103.121")); assertFalse("10.221.104.0 is in the list", ipList.isIn("10.221.104.0")); assertTrue ("10.222.103.121 is not in the list", ipList.isIn("10.222.103.121")); assertFalse("10.223.104.0 is in the list", ipList.isIn("10.223.104.0")); assertTrue ("10.113.221.221 is not in the list", ipList.isIn("10.113.221.221")); assertFalse("10.113.221.222 is in the list", ipList.isIn("10.113.221.222")); }
/** * Do not specify the file * test for inclusion * should be true as if the feature is turned off */ public void testFileNotSpecified() { IPList ipl = new FileBasedIPList(null); assertFalse("110.113.221.222 is in the list", ipl.isIn("110.113.221.222")); }
/** * Specify a non existent file * test for inclusion * should be true as if the feature is turned off */ public void testFileMissing() { IPList ipl = new FileBasedIPList("missingips.txt"); assertFalse("110.113.221.222 is in the list", ipl.isIn("110.113.221.222")); }
/** * Specify an existing file, but empty * test for inclusion * should be true as if the feature is turned off */ public void testWithEmptyList() throws IOException { String[] ips = {}; createFileWithEntries ("ips.txt", ips); IPList ipl = new FileBasedIPList("ips.txt"); assertFalse("110.113.221.222 is in the list", ipl.isIn("110.113.221.222")); }
/** * Specify an existing file, but ips in wrong format * test for inclusion * should be true as if the feature is turned off */ public void testForBadFIle() throws IOException { String[] ips = { "10.221.102/23"}; createFileWithEntries ("ips.txt", ips); try { new FileBasedIPList("ips.txt"); fail(); } catch (Exception e) { //expects Exception } }
/** * Add a bunch of subnets and IPSs to the file. Keep one entry wrong. * The good entries will still be used. * Check for inclusion with good entries * Check for exclusion */ public void testWithAWrongEntry() throws IOException { String[] ips = {"10.119.103.112", "10.221.102/23", "10.221.204.1/23"}; createFileWithEntries ("ips.txt", ips); try { new FileBasedIPList("ips.txt"); fail(); } catch (Exception e) { //expects Exception } }
/** * Add a bunch of subnets and IPSs to the file * setup a low cache refresh * test for inclusion * Check for exclusion * Add a bunch of subnets and Ips * wait for cache timeout. * test for inclusion * Check for exclusion */ public void testAddWithSleepForCacheTimeout() throws IOException, InterruptedException { String[] ips = {"10.119.103.112", "10.221.102.0/23", "10.113.221.221"}; TestFileBasedIPList.createFileWithEntries ("ips.txt", ips); CacheableIPList cipl = new CacheableIPList( new FileBasedIPList("ips.txt"),100); assertFalse("10.113.221.222 is in the list", cipl.isIn("10.113.221.222")); assertFalse ("10.222.103.121 is in the list", cipl.isIn("10.222.103.121")); TestFileBasedIPList.removeFile("ips.txt"); String[]ips2 = {"10.119.103.112", "10.221.102.0/23", "10.222.0.0/16", "10.113.221.221", "10.113.221.222"}; TestFileBasedIPList.createFileWithEntries ("ips.txt", ips2); Thread.sleep(101); assertTrue("10.113.221.222 is not in the list", cipl.isIn("10.113.221.222")); assertTrue ("10.222.103.121 is not in the list", cipl.isIn("10.222.103.121")); TestFileBasedIPList.removeFile("ips.txt"); }
/** * Add a bunch of subnets and IPSs to the file * setup a low cache refresh * test for inclusion * Check for exclusion * Remove a bunch of subnets and Ips * wait for cache timeout. * test for inclusion * Check for exclusion */ public void testRemovalWithSleepForCacheTimeout() throws IOException, InterruptedException { String[] ips = {"10.119.103.112", "10.221.102.0/23", "10.222.0.0/16", "10.113.221.221", "10.113.221.222"}; TestFileBasedIPList.createFileWithEntries ("ips.txt", ips); CacheableIPList cipl = new CacheableIPList( new FileBasedIPList("ips.txt"),100); assertTrue("10.113.221.222 is not in the list", cipl.isIn("10.113.221.222")); assertTrue ("10.222.103.121 is not in the list", cipl.isIn("10.222.103.121")); TestFileBasedIPList.removeFile("ips.txt"); String[]ips2 = {"10.119.103.112", "10.221.102.0/23", "10.113.221.221"}; TestFileBasedIPList.createFileWithEntries ("ips.txt", ips2); Thread.sleep(1005); assertFalse("10.113.221.222 is in the list", cipl.isIn("10.113.221.222")); assertFalse ("10.222.103.121 is in the list", cipl.isIn("10.222.103.121")); TestFileBasedIPList.removeFile("ips.txt"); }
/** * Add a bunch of subnets and IPSs to the file * setup a low cache refresh * test for inclusion * Check for exclusion * Add a bunch of subnets and Ips * do a refresh * test for inclusion * Check for exclusion */ public void testAddWithRefresh() throws IOException, InterruptedException { String[] ips = {"10.119.103.112", "10.221.102.0/23", "10.113.221.221"}; TestFileBasedIPList.createFileWithEntries ("ips.txt", ips); CacheableIPList cipl = new CacheableIPList( new FileBasedIPList("ips.txt"),100); assertFalse("10.113.221.222 is in the list", cipl.isIn("10.113.221.222")); assertFalse ("10.222.103.121 is in the list", cipl.isIn("10.222.103.121")); TestFileBasedIPList.removeFile("ips.txt"); String[]ips2 = {"10.119.103.112", "10.221.102.0/23", "10.222.0.0/16", "10.113.221.221", "10.113.221.222"}; TestFileBasedIPList.createFileWithEntries ("ips.txt", ips2); cipl.refresh(); assertTrue("10.113.221.222 is not in the list", cipl.isIn("10.113.221.222")); assertTrue ("10.222.103.121 is not in the list", cipl.isIn("10.222.103.121")); TestFileBasedIPList.removeFile("ips.txt"); }
/** * Add a bunch of subnets and IPSs to the file * setup a low cache refresh * test for inclusion * Check for exclusion * Remove a bunch of subnets and Ips * wait for cache timeout. * test for inclusion * Check for exclusion */ public void testRemovalWithRefresh() throws IOException, InterruptedException { String[] ips = {"10.119.103.112", "10.221.102.0/23", "10.222.0.0/16", "10.113.221.221", "10.113.221.222"}; TestFileBasedIPList.createFileWithEntries ("ips.txt", ips); CacheableIPList cipl = new CacheableIPList( new FileBasedIPList("ips.txt"),100); assertTrue("10.113.221.222 is not in the list", cipl.isIn("10.113.221.222")); assertTrue ("10.222.103.121 is not in the list", cipl.isIn("10.222.103.121")); TestFileBasedIPList.removeFile("ips.txt"); String[]ips2 = {"10.119.103.112", "10.221.102.0/23", "10.113.221.221"}; TestFileBasedIPList.createFileWithEntries ("ips.txt", ips2); cipl.refresh(); assertFalse("10.113.221.222 is in the list", cipl.isIn("10.113.221.222")); assertFalse ("10.222.103.121 is in the list", cipl.isIn("10.222.103.121")); TestFileBasedIPList.removeFile("ips.txt"); }