Fixes #176 - replace dash with underscore when building package name from directory
This commit is contained in:
@@ -3,7 +3,6 @@ package io.codearte.accurest
|
||||
import groovy.transform.CompileStatic
|
||||
import groovy.util.logging.Slf4j
|
||||
import io.codearte.accurest.config.TestFramework
|
||||
import io.codearte.accurest.util.NamesUtil
|
||||
|
||||
import java.nio.file.Files
|
||||
import java.nio.file.Path
|
||||
@@ -24,9 +23,9 @@ class FileSaver {
|
||||
this.framework = framework
|
||||
}
|
||||
|
||||
void saveClassFile(String fileName, String packageName, byte[] classBytes) {
|
||||
void saveClassFile(String fileName, String includedDirectoryRelativePath, byte[] classBytes) {
|
||||
|
||||
Path testBaseDir = Paths.get(targetDirectory.absolutePath, NamesUtil.packageToDirectory(packageName))
|
||||
Path testBaseDir = Paths.get(targetDirectory.absolutePath, includedDirectoryRelativePath)
|
||||
Files.createDirectories(testBaseDir)
|
||||
Path classPath = Paths.get(testBaseDir.toString(), capitalize(fileName) + framework.classExtension).toAbsolutePath()
|
||||
log.info("Creating new class file [$classPath]")
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
package io.codearte.accurest
|
||||
|
||||
import groovy.transform.PackageScope
|
||||
import io.codearte.accurest.config.AccurestConfigProperties
|
||||
import org.apache.commons.io.FilenameUtils
|
||||
@@ -7,9 +8,7 @@ import org.codehaus.plexus.util.DirectoryScanner
|
||||
import java.nio.charset.StandardCharsets
|
||||
import java.util.concurrent.atomic.AtomicInteger
|
||||
|
||||
import static io.codearte.accurest.util.NamesUtil.afterLast
|
||||
import static io.codearte.accurest.util.NamesUtil.beforeLast
|
||||
import static io.codearte.accurest.util.NamesUtil.directoryToPackage
|
||||
import static io.codearte.accurest.util.NamesUtil.*
|
||||
|
||||
/**
|
||||
* @author Jakub Kubrynski
|
||||
@@ -45,17 +44,17 @@ class TestGenerator {
|
||||
}
|
||||
|
||||
@PackageScope
|
||||
void generateTestClasses(final String packageName) {
|
||||
void generateTestClasses(final String basePackageName) {
|
||||
directoryScanner.scan()
|
||||
directoryScanner.getIncludedDirectories()
|
||||
.each { String includedDirectoryRelativePath ->
|
||||
processIncludedDirectory(includedDirectoryRelativePath, packageName)
|
||||
processIncludedDirectory(includedDirectoryRelativePath, basePackageName)
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void processIncludedDirectory(
|
||||
final String includedDirectoryRelativePath, final String packageNameForClass) {
|
||||
final String includedDirectoryRelativePath, final String basePackageNameForClass) {
|
||||
if (!includedDirectoryRelativePath.isEmpty()) {
|
||||
List<File> filesToClass = directoryScanner.includedFiles.
|
||||
grep { String includedFile ->
|
||||
@@ -66,9 +65,9 @@ class TestGenerator {
|
||||
}
|
||||
if (filesToClass.size()) {
|
||||
def className = afterLast(includedDirectoryRelativePath, File.separator) + configProperties.targetFramework.classNameSuffix
|
||||
def packageName = buildPackage(packageNameForClass, includedDirectoryRelativePath)
|
||||
def packageName = buildPackage(basePackageNameForClass, includedDirectoryRelativePath)
|
||||
def classBytes = generator.buildClass(filesToClass, className, packageName).getBytes(StandardCharsets.UTF_8)
|
||||
saver.saveClassFile(className, packageName, classBytes)
|
||||
saver.saveClassFile(className, includedDirectoryRelativePath, classBytes)
|
||||
counter.incrementAndGet()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,11 +46,7 @@ class NamesUtil {
|
||||
return string
|
||||
}
|
||||
|
||||
static String packageToDirectory(String packageName) {
|
||||
return packageName.replace('.' as char, File.separatorChar)
|
||||
}
|
||||
|
||||
static String directoryToPackage(String directory) {
|
||||
return directory.replace(File.separator, '.')
|
||||
return directory.replace(File.separator, '.').replace('-', '_')
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user