Fix the bug for parsing with only non-param gateway rules
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
This commit is contained in:
parent
ae0b8a5c74
commit
8d0bb691b3
|
|
@ -62,10 +62,10 @@ public class GatewayParamParser<T> {
|
|||
hasNonParamRule = true;
|
||||
}
|
||||
}
|
||||
if (gatewayRules.isEmpty()) {
|
||||
if (!hasNonParamRule && gatewayRules.isEmpty()) {
|
||||
return new Object[0];
|
||||
}
|
||||
if (predSet.size() != 1 || predSet.contains(false)) {
|
||||
if (predSet.size() > 1 || predSet.contains(false)) {
|
||||
return new Object[0];
|
||||
}
|
||||
int size = hasNonParamRule ? gatewayRules.size() + 1 : gatewayRules.size();
|
||||
|
|
|
|||
|
|
@ -70,10 +70,15 @@ public class GatewayParamParserTest {
|
|||
.setCount(5)
|
||||
.setIntervalSec(1)
|
||||
);
|
||||
rules.add(new GatewayFlowRule(routeId1)
|
||||
.setCount(10)
|
||||
.setControlBehavior(2)
|
||||
.setMaxQueueingTimeoutMs(1000)
|
||||
);
|
||||
GatewayRuleManager.loadRules(rules);
|
||||
|
||||
Object[] params = parser.parseParameterFor(routeId1, request, routeIdPredicate);
|
||||
assertThat(params.length).isZero();
|
||||
assertThat(params.length).isEqualTo(1);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ public class SpringCloudGatewayParamParserTest {
|
|||
|
||||
Object[] params = paramParser.parseParameterFor(routeId1, exchange,
|
||||
e -> e.getResourceMode() == 0);
|
||||
assertThat(params.length).isZero();
|
||||
assertThat(params.length).isEqualTo(1);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
|||
Loading…
Reference in New Issue