@Test public void createsOutputFilesWithDefaultEncodingReadFromMainTemplate() throws Exception { // prepare test final File templateFile = prepareArtefactDirectory("main.tpl", GENERATOR_PLUGIN_ID, "myNewArtefact"); MOGLiFileUtil.createNewFileWithContent( templateFile, "@CreateNew true" + FileUtil.getSystemLineSeparator() + "@TargetFileName UmlautTest.txt" + FileUtil.getSystemLineSeparator() + "@TargetDir " + MOGLiSystemConstants.APPLICATION_ROOT_IDENTIFIER + "/example" + FileUtil.getSystemLineSeparator() + "äüößÜÖÄ"); // call functionality under test executeMogliApplication(); // verify test result final File outputFile = new File(applicationOutputDir, GENERATOR_PLUGIN_ID + "/myNewArtefact/UmlautTest.txt"); assertStringEquals("outputFileContent", "äüößÜÖÄ", MOGLiFileUtil.getFileContent(outputFile)); }
private File createTestArtefact(final String artefactName) { final File artefactDir = new File(infrastructure.getPluginInputDir(), artefactName); artefactDir.mkdirs(); assertFileExists(artefactDir); final File templateFile = new File(artefactDir, "main.tpl"); MOGLiFileUtil.createNewFileWithContent( templateFile, "@" + KnownGeneratorPropertyNames.NameOfValidModel + " " + MockDataBuilder.MOCK_MODEL_NAME); return artefactDir; }
@Test public void returnsMetaInfoValidatorList() throws MOGLiPluginException { // prepare test final File conditionFile = new File( velocityClassBasedGenerator.getInfrastructure().getPluginInputDir(), "condition.txt"); MOGLiFileUtil.createNewFileWithContent( conditionFile, "|if MetaInfo| The \"other\" MetaInfo Name1 |exists.|" + FileUtil.getSystemLineSeparator() + "|if MetaInfo| The \"other\" MetaInfo Name2 |does not exist.|" + FileUtil.getSystemLineSeparator() + "|if MetaInfo| The \"other\" MetaInfo Name3 |with value| my value |does not exist.|"); final File validatorFile = new File( velocityClassBasedGenerator.getInfrastructure().getPluginInputDir(), MetaInfoValidationUtil.FILENAME_VALIDATION); MOGLiFileUtil.createNewFileWithContent( validatorFile, "|MetaInfo| MetaInfoTestName1 |is| optional |for| attributes |in| ModelName |.|" + FileUtil.getSystemLineSeparator() + "|MetaInfo| MetaInfoTestName2 |is| mandatory |for| attributes |in| ModelName |.|" + FileUtil.getSystemLineSeparator() + "|MetaInfo| MetaInfoTestName3 |is valid to occur| 0-4 |time(s) for| attributes |in| ModelName |.|" + FileUtil.getSystemLineSeparator() + "|MetaInfo| MetaInfoTestName4 |is valid to occur| 1-2 |time(s) for| attributes |in| ModelName |if| condition.txt |is true.|"); // call functionality under test final List<MetaInfoValidator> metaInfoValidatorList = velocityClassBasedGenerator.getMetaInfoValidatorList(); // verify test result assertEquals("validator number", 4, metaInfoValidatorList.size()); assertEquals( "condition number", 3, ((ConditionalMetaInfoValidator) metaInfoValidatorList.get(3)).getTotalNumberOfConditions()); }
@Test public void writesUmlautsIntoTargetFile() throws MOGLiPluginException { // prepare test final List<VelocityFileMakerResultData> resultList = new ArrayList<VelocityFileMakerResultData>(); final VelocityFileMakerResultData resultData = buildVelocityGeneratorResultData("Umlaute.txt", "example", "ßäüöÄÜÖ", true); resultList.add(resultData); // call functionality under test velocityClassBasedGenerator.writeFilesIntoTargetDirReadFromTemplateFile(resultList, "artefact"); // verify test result final File file = new File(applicationRootDir + "/example", "Umlaute.txt"); String actualFileContent = MOGLiFileUtil.getFileContent(file); assertStringEquals("file content", "ßäüöÄÜÖ", actualFileContent); }
@Test public void findsArtefactList() throws MOGLiPluginException { // prepare test MOGLiFileUtil.createNewFileWithContent(generatorPropertiesFile, ""); giveSystemTimeToExecute(); // call functionality under test final List<String> artefactList = velocityClassBasedGenerator.getArtefactList(); // verify test result final StringBuffer sb = new StringBuffer(System.getProperty("line.separator")); for (String artefactName : artefactList) { sb.append(artefactName); sb.append(System.getProperty("line.separator")); System.out.println(artefactName); } assertEquals("Unexpected artefact list: " + sb.toString(), 11, artefactList.size()); }
@Test public void throwsExceptionIfConditionFileWasNotFound() throws MOGLiPluginException { // prepare test final File validatorFile = new File( velocityClassBasedGenerator.getInfrastructure().getPluginInputDir(), MetaInfoValidationUtil.FILENAME_VALIDATION); MOGLiFileUtil.createNewFileWithContent( validatorFile, "|MetaInfo| MetaInfoTestName1 |is| optional |for| attributes |in| ModelName |.|" + FileUtil.getSystemLineSeparator() + "|MetaInfo| MetaInfoTestName4 |is valid to occur| 1-2 |time(s) for| attributes |in| ModelName |if| notExistingConditionFile.txt |is true.|"); // call functionality under test try { velocityClassBasedGenerator.getMetaInfoValidatorList(); fail("Expected exception not thrown!"); } catch (MOGLiPluginException e) { assertStringContains(e.getMessage(), "Expected condition file does not exist: "); assertStringContains(e.getMessage(), "notExistingConditionFile.txt"); } }
@Test public void ignoresSubdirAsArtefactIfDefinedInPluginPropertiesFile() throws MOGLiPluginException { // prepare test final File subdir = new File(infrastructure.getPluginInputDir(), ".svn"); subdir.mkdirs(); assertFileExists(subdir); MOGLiFileUtil.appendToFile(generatorPropertiesFile, ".svn=" + ArtefactListUtil.IGNORE); final String targetFileName = "targetFile.txt"; final VelocityGeneratorResultData resultData = buildVelocityGeneratorResultData( targetFileName, "example", "package com.iksgmbh.test", true); prepareResultData(resultData); // call functionality under test velocityClassBasedGenerator.doYourJob(); // cleanup subdir.delete(); assertFileDoesNotExist(subdir); // verify test result final File outputDir = new File(infrastructure.getPluginOutputDir(), ".svn"); assertFileDoesNotExist(outputDir); }