fix #2583 support old parameters
This commit is contained in:
parent
a3cb5bc4b1
commit
84a7fcbd75
2 changed files with 62 additions and 10 deletions
|
@ -22,6 +22,8 @@ import java.util.function.BiConsumer;
|
|||
import java.util.function.BiFunction;
|
||||
import java.util.function.Function;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import com.google.common.base.CaseFormat;
|
||||
|
||||
public class ParamMap<K, V> implements Map<K, V> {
|
||||
|
@ -36,8 +38,13 @@ public class ParamMap<K, V> implements Map<K, V> {
|
|||
if (key == null) {
|
||||
return key;
|
||||
}
|
||||
final String keyStr = key.toString();
|
||||
return CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, keyStr);
|
||||
String keyStr = key.toString();
|
||||
if (keyStr.indexOf('_') < 0) {
|
||||
keyStr = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, StringUtils.uncapitalize(keyStr));
|
||||
} else {
|
||||
keyStr = CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, keyStr);
|
||||
}
|
||||
return keyStr;
|
||||
}
|
||||
|
||||
public int size() {
|
||||
|
|
|
@ -22,20 +22,27 @@ import org.codelibs.fess.unit.UnitFessTestCase;
|
|||
|
||||
public class ParamMapTest extends UnitFessTestCase {
|
||||
|
||||
private Map<Object, Object> paramMap;
|
||||
|
||||
@Override
|
||||
public void setUp() throws Exception {
|
||||
super.setUp();
|
||||
private ParamMap<Object, Object> createSnakeMap() {
|
||||
final Map<Object, Object> map = new HashMap<>();
|
||||
map.put("aaa", "111");
|
||||
map.put("aaa_bbb", "222");
|
||||
map.put("aaa_bbb_ccc", "333");
|
||||
map.put("ccc.ddd", "444");
|
||||
paramMap = new ParamMap<>(map);
|
||||
return new ParamMap<>(map);
|
||||
}
|
||||
|
||||
public void test_get() {
|
||||
private ParamMap<Object, Object> createCamelMap() {
|
||||
final Map<Object, Object> map = new HashMap<>();
|
||||
map.put("aaa", "111");
|
||||
map.put("aaaBbb", "222");
|
||||
map.put("aaaBbbCcc", "333");
|
||||
map.put("ccc.ddd", "444");
|
||||
return new ParamMap<>(map);
|
||||
}
|
||||
|
||||
public void test_snake_get() {
|
||||
Map<Object, Object> paramMap = createSnakeMap();
|
||||
|
||||
assertNull(paramMap.get("xxx"));
|
||||
assertEquals("111", paramMap.get("aaa"));
|
||||
assertEquals("222", paramMap.get("aaa_bbb"));
|
||||
|
@ -51,7 +58,9 @@ public class ParamMapTest extends UnitFessTestCase {
|
|||
assertNull(paramMap.get("DccDdd"));
|
||||
}
|
||||
|
||||
public void test_containsKey() {
|
||||
public void test_snake_containsKey() {
|
||||
Map<Object, Object> paramMap = createSnakeMap();
|
||||
|
||||
assertFalse(paramMap.containsKey("xxx"));
|
||||
assertTrue(paramMap.containsKey("aaa"));
|
||||
assertTrue(paramMap.containsKey("aaa_bbb"));
|
||||
|
@ -66,4 +75,40 @@ public class ParamMapTest extends UnitFessTestCase {
|
|||
assertFalse(paramMap.containsKey("cccDdd"));
|
||||
assertFalse(paramMap.containsKey("DccDdd"));
|
||||
}
|
||||
|
||||
public void test_camel_get() {
|
||||
Map<Object, Object> paramMap = createCamelMap();
|
||||
|
||||
assertNull(paramMap.get("xxx"));
|
||||
assertEquals("111", paramMap.get("aaa"));
|
||||
assertEquals("222", paramMap.get("aaa_bbb"));
|
||||
assertEquals("222", paramMap.get("aaaBbb"));
|
||||
assertNull(paramMap.get("AaaBbb")); // null
|
||||
assertNull(paramMap.get("aaabbb"));
|
||||
assertEquals("333", paramMap.get("aaa_bbb_ccc"));
|
||||
assertEquals("333", paramMap.get("aaaBbbCcc"));
|
||||
assertNull(paramMap.get("AaaBbbCcc")); // null
|
||||
assertNull(paramMap.get("aaabbbcc"));
|
||||
assertEquals("444", paramMap.get("ccc.ddd"));
|
||||
assertNull(paramMap.get("cccDdd"));
|
||||
assertNull(paramMap.get("DccDdd"));
|
||||
}
|
||||
|
||||
public void test_camel_containsKey() {
|
||||
Map<Object, Object> paramMap = createCamelMap();
|
||||
|
||||
assertFalse(paramMap.containsKey("xxx"));
|
||||
assertTrue(paramMap.containsKey("aaa"));
|
||||
assertTrue(paramMap.containsKey("aaa_bbb"));
|
||||
assertTrue(paramMap.containsKey("aaaBbb"));
|
||||
assertFalse(paramMap.containsKey("AaaBbb")); // false
|
||||
assertFalse(paramMap.containsKey("aaabbb"));
|
||||
assertTrue(paramMap.containsKey("aaa_bbb_ccc"));
|
||||
assertTrue(paramMap.containsKey("aaaBbbCcc"));
|
||||
assertFalse(paramMap.containsKey("AaaBbbCcc")); // false
|
||||
assertFalse(paramMap.containsKey("aaabbbcc"));
|
||||
assertTrue(paramMap.containsKey("ccc.ddd"));
|
||||
assertFalse(paramMap.containsKey("cccDdd"));
|
||||
assertFalse(paramMap.containsKey("DccDdd"));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue