private Set<String> getRequiredConfigListHelper(Set<JobTemplate> alreadyLoadedTemplates) throws SpecNotFoundException, TemplateException { Set<String> requiredConfigs = Sets.newHashSet(getLocallyRequiredConfigList()); for (JobTemplate template : this.superTemplates) { if (!alreadyLoadedTemplates.contains(template)) { alreadyLoadedTemplates.add(template); requiredConfigs.addAll(template instanceof InheritingJobTemplate ? ((InheritingJobTemplate) template).getRequiredConfigListHelper(alreadyLoadedTemplates) : template.getRequiredConfigList()); } } return requiredConfigs; }
@Test public void test() throws Exception { JobCatalogWithTemplates underlying = Mockito.mock(JobCatalogWithTemplates.class); JobCatalogWithTemplates catalog = new PackagedTemplatesJobCatalogDecorator(underlying); JobTemplate classTemplate = catalog.getTemplate(new URI(PackagedTemplatesJobCatalogDecorator.CLASS + "://" + TestTemplate.class.getName())); Assert.assertEquals(classTemplate.getClass(), TestTemplate.class); try { catalog.getTemplate(new URI(PackagedTemplatesJobCatalogDecorator.CLASS + "://" + "non.existing.class")); Assert.fail(); } catch (SpecNotFoundException exc) { // expect exception } JobTemplate resourceTemplate = catalog.getTemplate(new URI(PackagedTemplatesJobCatalogDecorator.RESOURCE + ":///templates/test.template")); Assert.assertEquals(resourceTemplate.getClass(), ResourceBasedJobTemplate.class); Assert.assertEquals(resourceTemplate.getRequiredConfigList().size(), 3); URI uri = new URI("scheme:///templates/test.template"); try { catalog.getTemplate(uri); Assert.fail(); } catch (SpecNotFoundException exc) { // expect exception } Mockito.verify(underlying).getTemplate(uri); }
private Set<String> getRequiredConfigListHelper(Set<JobTemplate> alreadyLoadedTemplates) throws SpecNotFoundException, TemplateException { Set<String> requiredConfigs = Sets.newHashSet(getLocallyRequiredConfigList()); for (JobTemplate template : this.superTemplates) { if (!alreadyLoadedTemplates.contains(template)) { alreadyLoadedTemplates.add(template); requiredConfigs.addAll(template instanceof InheritingJobTemplate ? ((InheritingJobTemplate) template).getRequiredConfigListHelper(alreadyLoadedTemplates) : template.getRequiredConfigList()); } } return requiredConfigs; }