public void testRuleShardingPatternWithCustomFunctions() throws Exception {
String shardingExpression = "mod.apply(id)==3";
IBatisNamespaceShardingRule r = new IBatisNamespaceShardingRule(DEFAULT_TYPE_PATTEN,
StringUtils.join(DEFAULT_SHARDS, ","), shardingExpression);
Map<String, Object> functions = new HashMap<String, Object>();
functions.put("mod", new ModFunction(18L));
r.setFunctionMap(functions);
Tweet t = new Tweet();
t.setId(3L);
t.setTweet("anything");