### Question:
RuleOutputList { public List<? extends RuleOutput> applyMultiple(HitPolicy hitPolicy) { List<RuleOutput> matchedRuleOutputs = this.getMatchedRuleResults(); if (hitPolicy == HitPolicy.COLLECT) { return matchedRuleOutputs; } else if (hitPolicy == HitPolicy.RULE_ORDER) { return matchedRuleOutputs; } else if (hitPolicy == HitPolicy.OUTPUT_ORDER) { return sort(matchedRuleOutputs); } else { throw new UnsupportedOperationException(String.format("Not supported multiple hit policy %s.", hitPolicy.name())); } }  void add(RuleOutput result); List<RuleOutput> getMatchedRuleResults(); boolean noMatchedRules(); RuleOutput applySingle(HitPolicy hitPolicy); List<? extends RuleOutput> applyMultiple(HitPolicy hitPolicy);  }### Answer:
@Test public void testApplyCollect() { assertEquals("[value1, value2]", makeRuleResultList(STRING_1, STRING_2).applyMultiple(COLLECT).toString()); }
@Test public void testApplyRuleOrder() { assertEquals("[value1, value2]", makeRuleResultList(STRING_1, STRING_2).applyMultiple(RULE_ORDER).toString()); }
@Test public void testApplyOutputOrder() { assertEquals("[value1, value2]", makeRuleResultList(STRING_1, STRING_2).applyMultiple(OUTPUT_ORDER).toString()); }