### Question:
DegradeRuleManager { public static boolean isValidRule(DegradeRule rule) { boolean baseValid = rule != null && !StringUtil.isBlank(rule.getResource()) && rule.getCount() >= 0 && rule.getTimeWindow() > 0; if (!baseValid) { return false; } if (rule.getMinRequestAmount() <= 0 || rule.getStatIntervalMs() <= 0) { return false; } switch (rule.getGrade()) { case RuleConstant.DEGRADE_GRADE_RT: return rule.getSlowRatioThreshold() >= 0 && rule.getSlowRatioThreshold() <= 1; case RuleConstant.DEGRADE_GRADE_EXCEPTION_RATIO: return rule.getCount() <= 1; case RuleConstant.DEGRADE_GRADE_EXCEPTION_COUNT: return true; default: return false; } }  static void register2Property(SentinelProperty<List<DegradeRule>> property); static boolean hasConfig(String resource); static List<DegradeRule> getRules(); static Set<DegradeRule> getRulesOfResource(String resource); static void loadRules(List<DegradeRule> rules); static boolean setRulesForResource(String resourceName, Set<DegradeRule> rules); static boolean isValidRule(DegradeRule rule);  }### Answer:
@Test public void testIsValidRule() { DegradeRule rule1 = new DegradeRule("abc"); DegradeRule rule2 = new DegradeRule("cde") .setCount(100) .setGrade(RuleConstant.DEGRADE_GRADE_RT) .setTimeWindow(-1); DegradeRule rule3 = new DegradeRule("xx") .setCount(1.1) .setGrade(RuleConstant.DEGRADE_GRADE_EXCEPTION_RATIO) .setTimeWindow(2); DegradeRule rule4 = new DegradeRule("yy") .setCount(-3) .setGrade(RuleConstant.DEGRADE_GRADE_EXCEPTION_COUNT) .setTimeWindow(2); DegradeRule rule5 = new DegradeRule("Sentinel") .setCount(97) .setGrade(RuleConstant.DEGRADE_GRADE_RT) .setSlowRatioThreshold(15) .setTimeWindow(15); DegradeRule rule6 = new DegradeRule("Sentinel") .setCount(0.93d) .setGrade(RuleConstant.DEGRADE_GRADE_EXCEPTION_RATIO) .setTimeWindow(20) .setMinRequestAmount(0); DegradeRule rule7 = new DegradeRule("Sentinel") .setCount(100) .setSlowRatioThreshold(0.8d) .setTimeWindow(10) .setStatIntervalMs(0) .setMinRequestAmount(20); assertFalse(DegradeRuleManager.isValidRule(rule1)); assertFalse(DegradeRuleManager.isValidRule(rule2)); assertFalse(DegradeRuleManager.isValidRule(rule3)); assertTrue(DegradeRuleManager.isValidRule(rule3.setCount(1.0d))); assertTrue(DegradeRuleManager.isValidRule(rule3.setCount(0.0d))); assertFalse(DegradeRuleManager.isValidRule(rule4)); assertFalse(DegradeRuleManager.isValidRule(rule5)); assertFalse(DegradeRuleManager.isValidRule(rule6)); assertFalse(DegradeRuleManager.isValidRule(rule7)); }