Fixes #176 - replace dash with underscore when building package name from directory - fix tests
This commit is contained in:
@@ -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]")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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, '.')
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user