|
|
@@ -0,0 +1,45 @@ |
|
|
|
package com.alibaba.csp.sentinel.slots.block.flow; |
|
|
|
|
|
|
|
import java.util.Arrays; |
|
|
|
import java.util.Collections; |
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
import com.alibaba.csp.sentinel.slots.block.RuleConstant; |
|
|
|
|
|
|
|
import org.junit.Test; |
|
|
|
|
|
|
|
import static org.junit.Assert.*; |
|
|
|
|
|
|
|
/** |
|
|
|
* @author Eric Zhao |
|
|
|
*/ |
|
|
|
public class FlowRuleComparatorTest { |
|
|
|
|
|
|
|
@Test |
|
|
|
public void testFlowRuleComparator() { |
|
|
|
FlowRule ruleA = new FlowRule("abc") |
|
|
|
.setCount(10); |
|
|
|
ruleA.setLimitApp(RuleConstant.LIMIT_APP_DEFAULT); |
|
|
|
FlowRule ruleB = new FlowRule("abc"); |
|
|
|
ruleB.setLimitApp("originA"); |
|
|
|
FlowRule ruleC = new FlowRule("abc"); |
|
|
|
ruleC.setLimitApp("originB"); |
|
|
|
FlowRule ruleD = new FlowRule("abc"); |
|
|
|
ruleD.setLimitApp(RuleConstant.LIMIT_APP_OTHER); |
|
|
|
FlowRule ruleE = new FlowRule("abc") |
|
|
|
.setCount(20); |
|
|
|
ruleE.setLimitApp(RuleConstant.LIMIT_APP_DEFAULT); |
|
|
|
|
|
|
|
List<FlowRule> list = Arrays.asList(ruleA, ruleB, ruleC, ruleD, ruleE); |
|
|
|
FlowRuleComparator comparator = new FlowRuleComparator(); |
|
|
|
Collections.sort(list, comparator); |
|
|
|
List<FlowRule> expected = Arrays.asList(ruleB, ruleC, ruleD, ruleA, ruleE); |
|
|
|
assertOrderEqual(expected.size(), expected, list); |
|
|
|
} |
|
|
|
|
|
|
|
private void assertOrderEqual(int size, List<FlowRule> expected, List<FlowRule> actual) { |
|
|
|
for (int i = 0; i < size; i++) { |
|
|
|
assertEquals(expected.get(i), actual.get(i)); |
|
|
|
} |
|
|
|
} |
|
|
|
} |