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

This commit is contained in:
Jakub Kubrynski
2015-11-20 12:34:54 +01:00
parent d8455cf6dd
commit d487312250
3 changed files with 10 additions and 16 deletions

View File

@@ -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]")

View File

@@ -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()
}
}

View File

@@ -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('-', '_')
}
}