### Question:
ToolVersionDao extends NamedParameterJdbcDaoSupport { public List<ToolVersion> loadToolWithSettings(Long toolId) { return getJdbcTemplate() .query(loadToolSettingsQuery, ToolVersionParameters.getRowMapperWithSettings(), toolId); }  @Required void setToolVersionSequenceQuery(String toolVersionSequenceQuery); @Required void setCreateToolVersionQuery(String createToolVersionQuery); @Required void setUpdateToolVersionQuery(String updateToolVersionQuery); @Required void setDeleteToolVersionsQuery(String deleteToolVersionsQuery); @Required void setDeleteToolVersionQuery(String deleteToolVersionQuery); @Required void setLoadToolVersionQuery(String loadToolVersionQuery); @Required void setLoadToolVersionSettingsQuery(String loadToolVersionSettingsQuery); @Required void setCreateToolVersionWithSettingsQuery(String createToolVersionWithSettingsQuery); @Required void setUpdateToolVersionWithSettingsQuery(String updateToolVersionWithSettingsQuery); @Required void setLoadToolSettingsQuery(final String loadToolSettingsQuery); @Transactional(propagation = Propagation.MANDATORY) void createToolVersion(ToolVersion toolVersion); @Transactional(propagation = Propagation.MANDATORY) void updateToolVersion(ToolVersion toolVersion); @Transactional(propagation = Propagation.MANDATORY) void deleteToolVersion(Long toolId, String version); @Transactional(propagation = Propagation.MANDATORY) void deleteToolVersions(Long toolId); Optional<ToolVersion> loadToolVersion(Long toolId, String version); List<ToolVersion> loadToolWithSettings(Long toolId); Optional<ToolVersion> loadToolVersionWithSettings(Long toolId, String version); @Transactional(propagation = Propagation.MANDATORY) void createToolVersionWithSettings(ToolVersion toolVersion); @Transactional(propagation = Propagation.MANDATORY) void updateToolVersionWithSettings(ToolVersion toolVersion);  }### Answer:
@Test @Transactional public void testLoadToolWithSettingsWorksForRegularTool() { final List<ToolVersion> expectedVersions = Arrays.asList(toolVersion1, toolVersion2); expectedVersions.forEach(toolVersionDao::createToolVersionWithSettings); final List<ToolVersion> actualVersions = toolVersionDao.loadToolWithSettings(tool.getId()); assertVersionsWithSettings(actualVersions, expectedVersions); }
@Test @Transactional public void testLoadToolWithSettingsWorksForSymlink() { final List<ToolVersion> expectedVersions = Arrays.asList(toolVersion1, toolVersion2); expectedVersions.forEach(toolVersionDao::createToolVersionWithSettings); final List<ToolVersion> actualVersions = toolVersionDao.loadToolWithSettings(symlink.getId()); assertVersionsWithSettings(actualVersions, expectedVersions); }