### Question:
MultiRescorerProvider extends AbstractRescorerProvider { @Override public Rescorer getRecommendRescorer(String[] userIDs, OryxRecommender recommender, String... args) { List<Rescorer> rescorers = Lists.newArrayListWithCapacity(providers.length); for (RescorerProvider provider : providers) { Rescorer rescorer = provider.getRecommendRescorer(userIDs, recommender, args); if (rescorer != null) { rescorers.add(rescorer); } } return buildRescorer(rescorers); } MultiRescorerProvider(RescorerProvider... providers);  MultiRescorerProvider(List<RescorerProvider> providers); @Override Rescorer getRecommendRescorer(String[] userIDs, OryxRecommender recommender, String... args); @Override Rescorer getRecommendToAnonymousRescorer(String[] itemIDs, OryxRecommender recommender, String... args); @Override Rescorer getMostPopularItemsRescorer(OryxRecommender recommender, String... args); @Override PairRescorer getMostSimilarItemsRescorer(OryxRecommender recommender, String... args);  }### Answer:
@Test public void testMultiRecommendRescorer() { RescorerProvider multi = new MultiRescorerProvider(new SimpleModRescorerProvider(2), new SimpleModRescorerProvider(3)); Rescorer provider = multi.getRecommendRescorer(new String[]{"ABCDE"}, null); assertNull(provider); provider = multi.getRecommendRescorer(new String[]{"AB"}, null); assertNotNull(provider); assertFalse(provider instanceof MultiRescorer); assertTrue(provider.isFiltered("ABC")); assertFalse(provider.isFiltered("AB")); provider = multi.getRecommendRescorer(new String[]{"ABCDEF"}, null); assertNotNull(provider); assertTrue(provider instanceof MultiRescorer); assertTrue(provider.isFiltered("ABC")); assertTrue(provider.isFiltered("AB")); assertFalse(provider.isFiltered("ABCDEFABCDEF")); }