Signed-off-by: Eric Zhao <sczyh16@gmail.com>master
@@ -62,10 +62,10 @@ public class GatewayParamParser<T> { | |||||
hasNonParamRule = true; | hasNonParamRule = true; | ||||
} | } | ||||
} | } | ||||
if (gatewayRules.isEmpty()) { | |||||
if (!hasNonParamRule && gatewayRules.isEmpty()) { | |||||
return new Object[0]; | return new Object[0]; | ||||
} | } | ||||
if (predSet.size() != 1 || predSet.contains(false)) { | |||||
if (predSet.size() > 1 || predSet.contains(false)) { | |||||
return new Object[0]; | return new Object[0]; | ||||
} | } | ||||
int size = hasNonParamRule ? gatewayRules.size() + 1 : gatewayRules.size(); | int size = hasNonParamRule ? gatewayRules.size() + 1 : gatewayRules.size(); | ||||
@@ -70,10 +70,15 @@ public class GatewayParamParserTest { | |||||
.setCount(5) | .setCount(5) | ||||
.setIntervalSec(1) | .setIntervalSec(1) | ||||
); | ); | ||||
rules.add(new GatewayFlowRule(routeId1) | |||||
.setCount(10) | |||||
.setControlBehavior(2) | |||||
.setMaxQueueingTimeoutMs(1000) | |||||
); | |||||
GatewayRuleManager.loadRules(rules); | GatewayRuleManager.loadRules(rules); | ||||
Object[] params = parser.parseParameterFor(routeId1, request, routeIdPredicate); | Object[] params = parser.parseParameterFor(routeId1, request, routeIdPredicate); | ||||
assertThat(params.length).isZero(); | |||||
assertThat(params.length).isEqualTo(1); | |||||
} | } | ||||
@Test | @Test | ||||
@@ -67,7 +67,7 @@ public class SpringCloudGatewayParamParserTest { | |||||
Object[] params = paramParser.parseParameterFor(routeId1, exchange, | Object[] params = paramParser.parseParameterFor(routeId1, exchange, | ||||
e -> e.getResourceMode() == 0); | e -> e.getResourceMode() == 0); | ||||
assertThat(params.length).isZero(); | |||||
assertThat(params.length).isEqualTo(1); | |||||
} | } | ||||
@Test | @Test | ||||