use of com.devonfw.cobigen.api.to.GenerationReportTo in project cobigen by devonfw.
the class ModelCreationTest method testCorrectGenericTypeExtraction.
/**
* Tests the correct reading and writing of parametric types as found in the input sources.
*
* @throws Exception test fails
*/
@Test
public void testCorrectGenericTypeExtraction() throws Exception {
CobiGen cobiGen = CobiGenFactory.create(this.cobigenConfigFolder.toURI());
File tmpFolderCobiGen = this.tmpFolder.newFolder("cobigen_output");
Object input = cobiGen.read(new File("src/test/resources/testdata/integrationtest/javaSources/ModelCreationTest.java").toPath(), Charset.forName("UTF-8"), getClass().getClassLoader());
List<TemplateTo> templates = cobiGen.getMatchingTemplates(input);
boolean methodTemplateFound = false;
for (TemplateTo template : templates) {
if (template.getId().equals("genericTypes.txt")) {
GenerationReportTo report = cobiGen.generate(input, template, Paths.get(tmpFolderCobiGen.getAbsolutePath()), false);
assertThat(report).isSuccessful();
File expectedFile = new File(tmpFolderCobiGen.getAbsoluteFile() + SystemUtils.FILE_SEPARATOR + "genericTypes.txt");
assertThat(expectedFile).exists();
assertThat(expectedFile).hasContent("List<String> testField");
methodTemplateFound = true;
break;
}
}
if (!methodTemplateFound) {
throw new AssertionFailedError("Test template not found");
}
}
use of com.devonfw.cobigen.api.to.GenerationReportTo in project cobigen by devonfw.
the class ModelCreationTest method testCorrectAnnotationValueExtraction.
/**
* Tests that annotation string values for methods are not quoted. See issue #251
*
* @throws Exception test fails
*/
@Test
public void testCorrectAnnotationValueExtraction() throws Exception {
CobiGen cobiGen = CobiGenFactory.create(this.cobigenConfigFolder.toURI());
File tmpFolderCobiGen = this.tmpFolder.newFolder("cobigen_output");
Object input = cobiGen.read(new File("src/test/resources/testdata/integrationtest/javaSources/ModelCreationTest.java").toPath(), StandardCharsets.UTF_8, getClass().getClassLoader());
List<TemplateTo> templates = cobiGen.getMatchingTemplates(input);
boolean methodTemplateFound = false;
for (TemplateTo template : templates) {
if (template.getId().equals("correctAnnotationValueExtraction.txt")) {
GenerationReportTo report = cobiGen.generate(input, template, Paths.get(tmpFolderCobiGen.getAbsolutePath()), false);
assertThat(report).isSuccessful();
Path expectedFile = tmpFolderCobiGen.toPath().resolve("correctAnnotationValueExtraction.txt");
assertThat(expectedFile).exists();
assertThat(expectedFile).hasContent("\"/foo/{id}/\"");
methodTemplateFound = true;
break;
}
}
if (!methodTemplateFound) {
throw new AssertionFailedError("Test template not found");
}
}
use of com.devonfw.cobigen.api.to.GenerationReportTo in project cobigen by devonfw.
the class OpenAPIMatcherTest method testXRootPackageVariableAssigned.
/**
* Test if the generation is successful and without warnings, if a requested variable is assigned
*/
@Test
public void testXRootPackageVariableAssigned() {
ComponentDef componentDef = new ComponentDef();
componentDef.setName("Tablemanagement");
componentDef.setUserProperty("x-rootpackage", "com.devonfw");
OpenAPIMatcher matcher = new OpenAPIMatcher();
GenerationReportTo report = new GenerationReportTo();
List<VariableAssignmentTo> va = new ArrayList<>();
va.add(new VariableAssignmentTo("extension", "rootPackage", "x-rootpackage", false));
matcher.resolveVariables(new MatcherTo("element", "ComponentDef", componentDef), va, report);
assertThat(report.getWarnings().size()).isEqualTo(0);
}
use of com.devonfw.cobigen.api.to.GenerationReportTo in project cobigen by devonfw.
the class OpenAPIMatcherTest method testMissingXRootPackageVariableMandatory.
/**
* Test if the generation isn't successful and the report contains errors, if a mandatory variable isn't given
*/
@Test
public void testMissingXRootPackageVariableMandatory() {
ComponentDef componentDef = new ComponentDef();
componentDef.setName("Tablemanagement");
OpenAPIMatcher matcher = new OpenAPIMatcher();
GenerationReportTo report = new GenerationReportTo();
List<VariableAssignmentTo> vaMandatoryXRootPackage = new ArrayList<>();
vaMandatoryXRootPackage.add(new VariableAssignmentTo("extension", "rootPackage", "x-rootpackage", true));
matcher.resolveVariables(new MatcherTo("element", "ComponentDef", componentDef), vaMandatoryXRootPackage, report);
assertThat(report.getErrors().get(0).getMessage()).containsSequence(Constants.getMandatoryMessage(true, "x-rootpackage"));
}
use of com.devonfw.cobigen.api.to.GenerationReportTo in project cobigen by devonfw.
the class VelocityTemplateEngineIntegrationTest method testBasicGeneration.
/**
* Tests a basic generation integrated with cobigen-core
*
* @throws Exception test fails
*/
@Test
public void testBasicGeneration() throws Exception {
CobiGen cobigen = CobiGenFactory.create(new File("src/test/resources/systemtest").toURI());
Object input = cobigen.read(new File("src/test/java/com/devonfw/cobigen/tempeng/velocity/systemtest/testobjects/Input.java").toPath(), Charset.forName("UTF-8"), getClass().getClassLoader());
List<IncrementTo> increments = cobigen.getMatchingIncrements(input);
assertThat(increments).hasSize(1);
assertThat(increments.get(0).getTemplates()).hasSize(1);
File targetFolder = this.tempFolderRule.newFolder("cobigen-");
GenerationReportTo report = cobigen.generate(Input.class, increments.get(0), targetFolder.toPath());
assertThat(report).isSuccessful();
assertThat(targetFolder.toPath().resolve("velocityTest.txt")).exists().hasContent("String,int,");
}
Aggregations