### Question:
CategoricalAttributeDao extends NamedParameterJdbcDaoSupport { public List<CategoricalAttribute> loadAll() { return loadAll(true); }  static List<CategoricalAttribute> convertPairsToAttributesList(final List<Pair<String, String>> pairs); @Transactional(propagation = Propagation.MANDATORY) boolean updateCategoricalAttributes(final List<CategoricalAttribute> dict); @Transactional(propagation = Propagation.MANDATORY) boolean insertAttributesValues(final List<CategoricalAttribute> dict); List<CategoricalAttribute> loadAll(); List<CategoricalAttribute> loadAll(final boolean loadWithLinks); CategoricalAttribute loadAllValuesForKey(final String key); @Transactional(propagation = Propagation.MANDATORY) boolean deleteAttributeValues(final String key); @Transactional(propagation = Propagation.MANDATORY) boolean deleteAttributeValues(final List<String> keys); @Transactional(propagation = Propagation.MANDATORY) boolean deleteAttributeValue(final String key, final String value); @Required void setInsertAttributeValueQuery(String insertAttributeValueQuery); @Required void setLoadAllAttributesValuesQuery(String loadAllAttributesValuesQuery); @Required void setLoadAllAttributesValuesWithoutLinksQuery(String loadAllAttributesValuesWithoutLinksQuery); @Required void setLoadAttributesValuesQuery(String loadAttributesValuesQuery); @Required void setDeleteAttributeValuesQuery(String deleteAttributeValuesQuery); @Required void setDeleteAttributeValueQuery(String deleteAttributeValueQuery); @Required void setInsertAttributeValueLinkQuery(String insertAttributeValueLinkQuery);  }### Answer:
@Test @Transactional(propagation = Propagation.REQUIRES_NEW) public void testLoadAll() { final List<CategoricalAttribute> values = Arrays.asList( new CategoricalAttribute(ATTRIBUTE_KEY_1, fromStrings(ATTRIBUTE_KEY_1, Arrays.asList(ATTRIBUTE_VALUE_1, ATTRIBUTE_VALUE_2))), new CategoricalAttribute(ATTRIBUTE_KEY_2, fromStrings(ATTRIBUTE_KEY_2, Collections.singletonList(ATTRIBUTE_VALUE_3)))); categoricalAttributeDao.insertAttributesValues(values); final Map<String, List<String>> attributesWithValues = convertToMap(categoricalAttributeDao.loadAll()); Assert.assertEquals(2, attributesWithValues.size()); assertValuesPresentedForKeyInMap(attributesWithValues, ATTRIBUTE_KEY_1, ATTRIBUTE_VALUE_1, ATTRIBUTE_VALUE_2); assertValuesPresentedForKeyInMap(attributesWithValues, ATTRIBUTE_KEY_2, ATTRIBUTE_VALUE_3); }
@Test public void testLoadAllWhenNoAttributesArePresent() { Assert.assertTrue(CollectionUtils.isEmpty(categoricalAttributeDao.loadAll())); }