/** Tests failure for an agency rating description that is not present in the legal entity. */
 @Test(expectedExceptions = IllegalStateException.class)
 public void testUseUnavailableRatingDescription() {
   final Set<CreditRating> creditRatings = new HashSet<>();
   creditRatings.add(CreditRating.of("A", "S&P", "Prime", true));
   creditRatings.add(CreditRating.of("A", "Moody's", "Prime", true));
   final LegalEntityCreditRatings filter = new LegalEntityCreditRatings();
   filter.setPerAgencyRatingDescriptions(Collections.singleton("Fitch"));
   filter.getFilteredData(
       new LegalEntity(null, LegalEntityTest.SHORT_NAME, creditRatings, null, null));
 }
 /** Tests ratings requests. */
 @Test
 public void testCreditRatings() {
   LegalEntityCreditRatings filter = new LegalEntityCreditRatings();
   assertEquals(
       LegalEntityTest.CREDIT_RATINGS, filter.getFilteredData(LegalEntityTest.LEGAL_ENTITY));
   assertEquals(
       LegalEntityTest.CREDIT_RATINGS,
       filter.getFilteredData(LegalEntityTest.LEGAL_ENTITY_RED_CODE));
   final Set<CreditRating> creditRatings = new HashSet<>(LegalEntityTest.CREDIT_RATINGS);
   creditRatings.add(CreditRating.of("C", "Poor", "Test", false));
   assertEquals(
       ParameterizedTypeImpl.of(Set.class, CreditRating.class), filter.getFilteredDataType());
   filter = new LegalEntityCreditRatings();
   filter.setUseRating(true);
   Set<Pair<String, String>> expected = new HashSet<>();
   expected.add(Pair.of("Moody's", "B"));
   expected.add(Pair.of("S&P", "A"));
   expected.add(Pair.of("Test", "C"));
   assertEquals(
       expected,
       filter.getFilteredData(
           new LegalEntity(null, LegalEntityTest.SHORT_NAME, creditRatings, null, null)));
   assertEquals(
       expected,
       filter.getFilteredData(
           new LegalEntityWithREDCode(
               null, LegalEntityTest.SHORT_NAME, creditRatings, null, null, "")));
   expected = new HashSet<>();
   expected.add(Pair.of("Moody's", "B"));
   expected.add(Pair.of("S&P", "A"));
   assertEquals(expected, filter.getFilteredData(LegalEntityTest.LEGAL_ENTITY));
   assertEquals(expected, filter.getFilteredData(LegalEntityTest.LEGAL_ENTITY_RED_CODE));
   assertEquals(
       ParameterizedTypeImpl.of(
           Set.class, ParameterizedTypeImpl.of(Pair.class, String.class, String.class)),
       filter.getFilteredDataType());
   filter = new LegalEntityCreditRatings();
   filter.setPerAgencyRatings(Collections.singleton("Moody's"));
   expected = new HashSet<>();
   expected.add(Pair.of("Moody's", "B"));
   assertEquals(expected, filter.getFilteredData(LegalEntityTest.LEGAL_ENTITY));
   assertEquals(expected, filter.getFilteredData(LegalEntityTest.LEGAL_ENTITY_RED_CODE));
   assertEquals(
       ParameterizedTypeImpl.of(
           Set.class, ParameterizedTypeImpl.of(Pair.class, String.class, String.class)),
       filter.getFilteredDataType());
   filter = new LegalEntityCreditRatings();
   filter.setPerAgencyRatings(Collections.singleton("S&P"));
   expected = new HashSet<>();
   expected.add(Pair.of("S&P", "A"));
   assertEquals(expected, filter.getFilteredData(LegalEntityTest.LEGAL_ENTITY));
   assertEquals(expected, filter.getFilteredData(LegalEntityTest.LEGAL_ENTITY_RED_CODE));
   assertEquals(
       ParameterizedTypeImpl.of(
           Set.class, ParameterizedTypeImpl.of(Pair.class, String.class, String.class)),
       filter.getFilteredDataType());
   filter = new LegalEntityCreditRatings();
   filter.setUseRatingDescription(true);
   expected = new HashSet<>();
   expected.add(Pair.of("Moody's", "Investment Grade"));
   expected.add(Pair.of("S&P", "Prime"));
   expected.add(Pair.of("Test", "Poor"));
   assertEquals(
       expected,
       filter.getFilteredData(
           new LegalEntity(null, LegalEntityTest.SHORT_NAME, creditRatings, null, null)));
   assertEquals(
       expected,
       filter.getFilteredData(
           new LegalEntityWithREDCode(
               null, LegalEntityTest.SHORT_NAME, creditRatings, null, null, "")));
   expected = new HashSet<>();
   expected.add(Pair.of("Moody's", "Investment Grade"));
   expected.add(Pair.of("S&P", "Prime"));
   assertEquals(expected, filter.getFilteredData(LegalEntityTest.LEGAL_ENTITY));
   assertEquals(expected, filter.getFilteredData(LegalEntityTest.LEGAL_ENTITY_RED_CODE));
   assertEquals(
       ParameterizedTypeImpl.of(
           Set.class, ParameterizedTypeImpl.of(Pair.class, String.class, String.class)),
       filter.getFilteredDataType());
   filter = new LegalEntityCreditRatings();
   filter.setPerAgencyRatingDescriptions(Collections.singleton("Moody's"));
   expected = new HashSet<>();
   expected.add(Pair.of("Moody's", "Investment Grade"));
   assertEquals(expected, filter.getFilteredData(LegalEntityTest.LEGAL_ENTITY));
   assertEquals(expected, filter.getFilteredData(LegalEntityTest.LEGAL_ENTITY_RED_CODE));
   filter = new LegalEntityCreditRatings();
   filter.setPerAgencyRatingDescriptions(Collections.singleton("S&P"));
   expected = new HashSet<>();
   expected.add(Pair.of("S&P", "Prime"));
   assertEquals(expected, filter.getFilteredData(LegalEntityTest.LEGAL_ENTITY));
   assertEquals(expected, filter.getFilteredData(LegalEntityTest.LEGAL_ENTITY_RED_CODE));
   assertEquals(
       ParameterizedTypeImpl.of(
           Set.class, ParameterizedTypeImpl.of(Pair.class, String.class, String.class)),
       filter.getFilteredDataType());
 }