Search in sources :

Example 21 with Template

use of com.devonfw.cobigen.impl.config.entity.Template in project cobigen by devonfw.

the class TemplatesConfigurationReaderTest method testRelocate.

/**
 * Test the basic valid configuration of <a href="https://github.com/devonfw/cobigen/issues/157">issue 157</a> for
 * relocation of templates to support multi-module generation.
 */
@Test
public void testRelocate() {
    // given
    String noRelocation = "";
    String templateScanDestinationPath = "src/main/java/";
    String templatesConfigurationRoot = testFileRootPath + "valid_relocate/";
    TemplatesConfigurationReader target = new TemplatesConfigurationReader(new File(testFileRootPath).toPath(), "valid_relocate/");
    Trigger trigger = new Trigger("id", "type", "valid_relocate", Charset.forName("UTF-8"), new LinkedList<Matcher>(), new LinkedList<ContainerMatcher>());
    // when
    Map<String, Template> templates = target.loadTemplates(trigger);
    // validation
    assertThat(templates).hasSize(3);
    String staticRelocationPrefix = "../api/";
    verifyScannedTemplate(templates, "$_EntityName_$Entity.java", "$_rootpackage_$/$_component_$/dataaccess/api/", templatesConfigurationRoot, staticRelocationPrefix, templateScanDestinationPath);
    staticRelocationPrefix = "../api2/";
    verifyScannedTemplate(templates, "$_EntityName_$Eto.java", "$_rootpackage_$/$_component_$/logic/api/to/", templatesConfigurationRoot, staticRelocationPrefix, templateScanDestinationPath);
    verifyScannedTemplate(templates, "$_Component_$.java", "$_rootpackage_$/$_component_$/logic/api/", templatesConfigurationRoot, noRelocation, templateScanDestinationPath);
}
Also used : Trigger(com.devonfw.cobigen.impl.config.entity.Trigger) ContainerMatcher(com.devonfw.cobigen.impl.config.entity.ContainerMatcher) Matcher(com.devonfw.cobigen.impl.config.entity.Matcher) ContainerMatcher(com.devonfw.cobigen.impl.config.entity.ContainerMatcher) TemplatesConfigurationReader(com.devonfw.cobigen.impl.config.reader.TemplatesConfigurationReader) File(java.io.File) Template(com.devonfw.cobigen.impl.config.entity.Template) AbstractUnitTest(com.devonfw.cobigen.unittest.config.common.AbstractUnitTest) Test(org.junit.Test)

Example 22 with Template

use of com.devonfw.cobigen.impl.config.entity.Template in project cobigen by devonfw.

the class TemplatesConfigurationReaderTest method testTemplateScanDoesNotOverwriteExplicitTemplateDeclarations.

/**
 * Tests that the template-scan mechanism does not overwrite an explicit template declaration with the defaults
 *
 * @throws Exception test fails
 */
@Test
public void testTemplateScanDoesNotOverwriteExplicitTemplateDeclarations() throws Exception {
    // given
    TemplatesConfigurationReader target = new TemplatesConfigurationReader(new File(testFileRootPath).toPath(), "valid");
    Trigger trigger = new Trigger("", "asdf", "", Charset.forName("UTF-8"), new LinkedList<Matcher>(), new LinkedList<ContainerMatcher>());
    // when
    Map<String, Template> templates = target.loadTemplates(trigger);
    // this one is a predefined template and shall not be overwritten by scan...
    String templateIdFoo2Class = "prefix_Foo2Class.java";
    Template templateFoo2Class = templates.get(templateIdFoo2Class);
    assertThat(templateFoo2Class).isNotNull();
    assertThat(templateFoo2Class.getName()).isEqualTo(templateIdFoo2Class);
    assertThat(templateFoo2Class.getRelativeTemplatePath()).isEqualTo("foo/Foo2Class.java.ftl");
    assertThat(templateFoo2Class.getUnresolvedTargetPath()).isEqualTo("src/main/java/foo/Foo2Class${variable}.java");
    assertThat(templateFoo2Class.getMergeStrategy()).isEqualTo("javamerge");
    String templateIdBarClass = "prefix_BarClass.java";
    Template templateBarClass = templates.get(templateIdBarClass);
    assertThat(templateBarClass).isNotNull();
    assertThat(templateBarClass.getName()).isEqualTo(templateIdBarClass);
    assertThat(templateBarClass.getRelativeTemplatePath()).isEqualTo("foo/bar/BarClass.java.ftl");
    assertThat(templateBarClass.getUnresolvedTargetPath()).isEqualTo("src/main/java/foo/bar/BarClass.java");
    assertThat(templateBarClass.getMergeStrategy()).isNull();
}
Also used : Trigger(com.devonfw.cobigen.impl.config.entity.Trigger) ContainerMatcher(com.devonfw.cobigen.impl.config.entity.ContainerMatcher) Matcher(com.devonfw.cobigen.impl.config.entity.Matcher) ContainerMatcher(com.devonfw.cobigen.impl.config.entity.ContainerMatcher) TemplatesConfigurationReader(com.devonfw.cobigen.impl.config.reader.TemplatesConfigurationReader) File(java.io.File) Template(com.devonfw.cobigen.impl.config.entity.Template) AbstractUnitTest(com.devonfw.cobigen.unittest.config.common.AbstractUnitTest) Test(org.junit.Test)

Example 23 with Template

use of com.devonfw.cobigen.impl.config.entity.Template in project cobigen by devonfw.

the class TemplatesConfigurationReaderTest method testEmptyTemplateExtensionDeclarationDoesNotOverrideAnyDefaults.

/**
 * Tests an empty templateExtensions does not override any defaults
 *
 * @throws Exception test fails
 */
@Test
public void testEmptyTemplateExtensionDeclarationDoesNotOverrideAnyDefaults() throws Exception {
    // given
    TemplatesConfigurationReader target = new TemplatesConfigurationReader(new File(testFileRootPath).toPath(), "valid");
    Trigger trigger = new Trigger("", "asdf", "", Charset.forName("UTF-8"), new LinkedList<Matcher>(), new LinkedList<ContainerMatcher>());
    // when
    Map<String, Template> templates = target.loadTemplates(trigger);
    // validation
    String templateIdFooClass = "prefix2_Foo2Class.java";
    Template templateFooClass = templates.get(templateIdFooClass);
    assertThat(templateFooClass).isNotNull();
    // template-scan defaults
    assertThat(templateFooClass.getName()).isEqualTo(templateIdFooClass);
    assertThat(templateFooClass.getRelativeTemplatePath()).isEqualTo("bar/Foo2Class.java.ftl");
    assertThat(templateFooClass.getUnresolvedTargetPath()).isEqualTo("src/main/java/bar/Foo2Class.java");
    assertThat(templateFooClass.getMergeStrategy()).isNull();
    assertThat(templateFooClass.getTargetCharset()).isEqualTo("UTF-8");
}
Also used : Trigger(com.devonfw.cobigen.impl.config.entity.Trigger) ContainerMatcher(com.devonfw.cobigen.impl.config.entity.ContainerMatcher) Matcher(com.devonfw.cobigen.impl.config.entity.Matcher) ContainerMatcher(com.devonfw.cobigen.impl.config.entity.ContainerMatcher) TemplatesConfigurationReader(com.devonfw.cobigen.impl.config.reader.TemplatesConfigurationReader) File(java.io.File) Template(com.devonfw.cobigen.impl.config.entity.Template) AbstractUnitTest(com.devonfw.cobigen.unittest.config.common.AbstractUnitTest) Test(org.junit.Test)

Example 24 with Template

use of com.devonfw.cobigen.impl.config.entity.Template in project cobigen by devonfw.

the class TemplatesConfigurationReaderTest method verifyScannedTemplate.

/**
 * Verifies a template's path properties
 *
 * @param templates list of all templates mapping template name to template
 * @param templateName name of the template
 * @param templatePath template path
 * @param templatesConfigurationRoot configuration root folder of the templates configuration
 * @param staticRelocationPrefix static prefix of a relocation value excluding ${cwd}
 * @param templateScanDestinationPath destination path of the involved {@link TemplateScan}
 * @return the template with the given templateName
 */
private Template verifyScannedTemplate(Map<String, Template> templates, String templateName, String templatePath, String templatesConfigurationRoot, String staticRelocationPrefix, String templateScanDestinationPath) {
    Template template = templates.get(templateName);
    assertThat(template).isNotNull();
    String pathWithName = templatePath + templateName;
    assertThat(template.getRelativeTemplatePath()).isEqualTo("templates/" + pathWithName);
    assertThat(template.getAbsoluteTemplatePath().toString().replace('\\', '/')).isEqualTo(templatesConfigurationRoot + "templates/" + pathWithName);
    assertThat(template.getUnresolvedTemplatePath()).isEqualTo("src/main/java/" + pathWithName);
    if (StringUtils.isEmpty(staticRelocationPrefix)) {
        assertThat(template.getUnresolvedTargetPath()).isEqualTo(templateScanDestinationPath + pathWithName);
    } else {
        assertThat(template.getUnresolvedTargetPath()).isEqualTo(staticRelocationPrefix + pathWithName);
    }
    return template;
}
Also used : Template(com.devonfw.cobigen.impl.config.entity.Template)

Example 25 with Template

use of com.devonfw.cobigen.impl.config.entity.Template in project cobigen by devonfw.

the class TemplatesConfigurationReaderTest method testTemplatesOfAPackageRetrieval.

/**
 * Tests whether all templates of a template package could be retrieved successfully.
 *
 * @throws Exception test fails
 */
@Test
public void testTemplatesOfAPackageRetrieval() throws Exception {
    TemplatesConfigurationReader target = new TemplatesConfigurationReader(new File(testFileRootPath).toPath(), "valid");
    Trigger trigger = new Trigger("", "asdf", "", Charset.forName("UTF-8"), new LinkedList<Matcher>(), new LinkedList<ContainerMatcher>());
    Template templateMock = mock(Template.class);
    HashMap<String, Template> templates = new HashMap<>();
    templates.put("resources_resources_spring_common", templateMock);
    target.loadIncrements(templates, trigger);
}
Also used : Trigger(com.devonfw.cobigen.impl.config.entity.Trigger) ContainerMatcher(com.devonfw.cobigen.impl.config.entity.ContainerMatcher) Matcher(com.devonfw.cobigen.impl.config.entity.Matcher) ContainerMatcher(com.devonfw.cobigen.impl.config.entity.ContainerMatcher) HashMap(java.util.HashMap) TemplatesConfigurationReader(com.devonfw.cobigen.impl.config.reader.TemplatesConfigurationReader) File(java.io.File) Template(com.devonfw.cobigen.impl.config.entity.Template) AbstractUnitTest(com.devonfw.cobigen.unittest.config.common.AbstractUnitTest) Test(org.junit.Test)

Aggregations

Template (com.devonfw.cobigen.impl.config.entity.Template)26 Trigger (com.devonfw.cobigen.impl.config.entity.Trigger)19 File (java.io.File)17 ContainerMatcher (com.devonfw.cobigen.impl.config.entity.ContainerMatcher)16 Matcher (com.devonfw.cobigen.impl.config.entity.Matcher)16 AbstractUnitTest (com.devonfw.cobigen.unittest.config.common.AbstractUnitTest)16 Test (org.junit.Test)16 TemplatesConfigurationReader (com.devonfw.cobigen.impl.config.reader.TemplatesConfigurationReader)15 InvalidConfigurationException (com.devonfw.cobigen.api.exception.InvalidConfigurationException)5 Increment (com.devonfw.cobigen.impl.config.entity.Increment)5 Path (java.nio.file.Path)5 ConfigurationHolder (com.devonfw.cobigen.impl.config.ConfigurationHolder)4 TemplatePath (com.devonfw.cobigen.impl.config.entity.TemplatePath)4 TextTemplateEngine (com.devonfw.cobigen.api.extension.TextTemplateEngine)3 TemplatesConfiguration (com.devonfw.cobigen.impl.config.TemplatesConfiguration)3 HashMap (java.util.HashMap)3 CobiGenRuntimeException (com.devonfw.cobigen.api.exception.CobiGenRuntimeException)2 TemplateTo (com.devonfw.cobigen.api.to.TemplateTo)2 TemplateFolder (com.devonfw.cobigen.impl.config.entity.TemplateFolder)2 TemplateExtension (com.devonfw.cobigen.impl.config.entity.io.TemplateExtension)2