Fixes #176 - replace dash with underscore when building package name from directory - fix tests

This commit is contained in:
Jakub Kubrynski
2015-11-20 13:33:49 +01:00
parent d487312250
commit 41ffeaf9a9
3 changed files with 21 additions and 14 deletions

View File

@@ -9,7 +9,9 @@ import java.nio.file.Path
import java.nio.file.Paths
import java.nio.file.StandardOpenOption
import static io.codearte.accurest.util.NamesUtil.beforeLast
import static io.codearte.accurest.util.NamesUtil.capitalize
import static io.codearte.accurest.util.NamesUtil.packageToDirectory
@CompileStatic
@Slf4j
@@ -23,9 +25,10 @@ class FileSaver {
this.framework = framework
}
void saveClassFile(String fileName, String includedDirectoryRelativePath, byte[] classBytes) {
void saveClassFile(String fileName, String basePackageClass, String includedDirectoryRelativePath, byte[] classBytes) {
Path testBaseDir = Paths.get(targetDirectory.absolutePath, includedDirectoryRelativePath)
Path testBaseDir = Paths.get(targetDirectory.absolutePath, packageToDirectory(basePackageClass),
beforeLast(includedDirectoryRelativePath, File.separator))
Files.createDirectories(testBaseDir)
Path classPath = Paths.get(testBaseDir.toString(), capitalize(fileName) + framework.classExtension).toAbsolutePath()
log.info("Creating new class file [$classPath]")

View File

@@ -67,7 +67,7 @@ class TestGenerator {
def className = afterLast(includedDirectoryRelativePath, File.separator) + configProperties.targetFramework.classNameSuffix
def packageName = buildPackage(basePackageNameForClass, includedDirectoryRelativePath)
def classBytes = generator.buildClass(filesToClass, className, packageName).getBytes(StandardCharsets.UTF_8)
saver.saveClassFile(className, includedDirectoryRelativePath, classBytes)
saver.saveClassFile(className, basePackageNameForClass, includedDirectoryRelativePath, classBytes)
counter.incrementAndGet()
}
}
@@ -75,8 +75,8 @@ class TestGenerator {
private static String buildPackage(final String packageNameForClass, final String includedDirectoryRelativePath) {
String directory = beforeLast(includedDirectoryRelativePath, File.separator)
return !directory.empty ? "$packageNameForClass.${directoryToPackage(directory)}" : packageNameForClass
}
return !directory.empty ? "$packageNameForClass.${directoryToPackage(directory)}" : packageNameForClass
}
private static String normalizePath(String path) {
return FilenameUtils.separatorsToUnix(path)

View File

@@ -5,12 +5,12 @@ package io.codearte.accurest.util
*/
class NamesUtil {
static String beforeLast(String string, String separator) {
if (string?.indexOf(separator) > -1) {
return string.substring(0, string.lastIndexOf(separator))
}
return ''
}
static String beforeLast(String string, String separator) {
if (string?.indexOf(separator) > -1) {
return string.substring(0, string.lastIndexOf(separator))
}
return ''
}
static String afterLast(String string, String separator) {
if (string?.indexOf(separator) > -1) {
@@ -46,7 +46,11 @@ class NamesUtil {
return string
}
static String directoryToPackage(String directory) {
return directory.replace(File.separator, '.').replace('-', '_')
}
static String packageToDirectory(String packageName) {
return packageName.replace('.' as char, File.separatorChar)
}
static String directoryToPackage(String directory) {
return directory.replace(File.separator, '.')
}
}