@Override public void init() { initialize(); initHashCode(); }
@Test public void test6() { PartitionByFileMap partition = new PartitionByFileMap(); partition.setMapFile("partition-hash-int2.txt"); partition.setDefaultNode(1); partition.setType(-1); partition.init(); String idVal = "1000"; Assert.assertEquals(true, 1 == partition.calculate(idVal)); } }
@Test public void test1() { PartitionByFileMap partition = new PartitionByFileMap(); partition.setMapFile("partition-hash-int.txt"); partition.init(); String idVal = "10000"; Assert.assertEquals(true, 0 == partition.calculate(idVal)); idVal = "10010"; Assert.assertEquals(true, 1 == partition.calculate(idVal)); idVal = "10020"; Assert.assertEquals(true, null == partition.calculate(idVal)); Map<String, String> map = partition.getAllProperties(); Assert.assertEquals(true, map.get("mapFile").equals("{\"10000\":\"0\"," + "\"10010\":\"1\"}") ); }
private AbstractPartitionAlgorithm createFunction(String name, String clazz) throws ClassNotFoundException, InstantiationException, IllegalAccessException, InvocationTargetException { String lowerClass = clazz.toLowerCase(); switch (lowerClass) { case "hash": return new PartitionByLong(); case "stringhash": return new PartitionByString(); case "enum": return new PartitionByFileMap(); case "jumpstringhash": return new PartitionByJumpConsistentHash(); case "numberrange": return new AutoPartitionByLong(); case "patternrange": return new PartitionByPattern(); case "date": return new PartitionByDate(); default: Class<?> clz = Class.forName(clazz); //all function must be extend from AbstractPartitionAlgorithm if (!AbstractPartitionAlgorithm.class.isAssignableFrom(clz)) { throw new IllegalArgumentException("rule function must implements " + AbstractPartitionAlgorithm.class.getName() + ", name=" + name); } return (AbstractPartitionAlgorithm) clz.newInstance(); } }
@Test public void test5() { PartitionByFileMap partition = new PartitionByFileMap(); partition.setMapFile("partition-hash-int2.txt"); partition.setDefaultNode(1); partition.setType(-1); partition.init(); String idVal = "C"; Assert.assertEquals(true, 1 == partition.calculate(idVal)); }
@Test public void test2() { PartitionByFileMap partition = new PartitionByFileMap(); partition.setMapFile("partition-hash-int.txt"); partition.setDefaultNode(1); partition.init(); String idVal = "10020"; Assert.assertEquals(true, 1 == partition.calculate(idVal)); }
@Test public void test3() { PartitionByFileMap partition = new PartitionByFileMap(); partition.setMapFile("partition-hash-int.txt"); partition.setDefaultNode(1); partition.init(); String idVal = "xx"; thrown.expect(IllegalArgumentException.class); partition.calculate(idVal); }
@Test public void test4() { PartitionByFileMap partition = new PartitionByFileMap(); partition.setMapFile("partition-hash-int2.txt"); partition.setType(-1); partition.init(); String idVal = "A"; Assert.assertEquals(true, 0 == partition.calculate(idVal)); idVal = "B"; Assert.assertEquals(true, 1 == partition.calculate(idVal)); idVal = "C"; Assert.assertEquals(true, null == partition.calculate(idVal)); }