Skip to content

Commit

Permalink
GH-421: Fix failing integration test cases
Browse files Browse the repository at this point in the history
  • Loading branch information
ascopes committed Oct 12, 2024
1 parent 4419b26 commit a06ac68
Show file tree
Hide file tree
Showing 6 changed files with 114 additions and 38 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ Path dependencyDirectory = baseDirectory
.resolve("some-project")
.resolve("target")
.resolve("protobuf-maven-plugin")
.resolve("generate")
.resolve("default")
.resolve("archives")

assertThat(dependencyDirectory).isDirectory()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ Path dependencyDirectory = baseDirectory
.resolve("some-project")
.resolve("target")
.resolve("protobuf-maven-plugin")
.resolve("generate")
.resolve("default")
.resolve("archives")

assertThat(dependencyDirectory).isDirectory()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,29 +20,45 @@ import java.nio.file.Path

import static org.assertj.core.api.Assertions.assertThat

static Path resolve(Path path, String... bits) {
for (String bit : bits) {
path = path.resolve(bit)
}
return path
}

Path baseDirectory = basedir.toPath().toAbsolutePath()
Path runtimeDependencyTargetDir = resolve(baseDirectory,"runtime-dependency", "target")
Path projectTargetDir = resolve(baseDirectory, "project", "target")
Path runtimeDependencyTargetDir = baseDirectory
.resolve("runtime-dependency")
.resolve("target")
Path projectTargetDir = baseDirectory
.resolve("project")
.resolve("target")

/////////////////////////////////////////////////////////
// `transitive-runtime-dependency' output expectations //
// `runtime-dependency' output expectations //
/////////////////////////////////////////////////////////

Path runtimeDependenciesRuntimeClass = runtimeDependencyTargetDir
.resolve("classes")
.resolve("org")
.resolve("example")
.resolve("runtime")
.resolve("Runtime.class")
Path runtimeDependenciesRuntimeProto = runtimeDependencyTargetDir
.resolve("classes")
.resolve("org")
.resolve("example")
.resolve("runtime")
.resolve("runtime.proto")

assertThat(runtimeDependencyTargetDir).isDirectory()
assertThat(resolve(runtimeDependencyTargetDir,"classes", "org", "example", "runtime", "Runtime.class"))
assertThat(runtimeDependenciesRuntimeClass)
.isRegularFile()
assertThat(resolve(runtimeDependencyTargetDir,"classes", "org", "example", "runtime", "runtime.proto"))
assertThat(runtimeDependenciesRuntimeProto)
.isRegularFile()

// Compile dependencies are included in the archives directory.
assertThat(Files.list(resolve(runtimeDependencyTargetDir, "protobuf-maven-plugin", "archives")))
Path runtimeDependenciesArchivesDir = runtimeDependencyTargetDir
.resolve("protobuf-maven-plugin")
.resolve("generate")
.resolve("default")
.resolve("archives")

assertThat(Files.list(runtimeDependenciesArchivesDir))
.withFailMessage { "Expected protobuf-java-* directory to be present" }
.filteredOn { it.getFileName().toString().startsWith("protobuf-java-") }
.hasSize(1)
Expand All @@ -51,19 +67,38 @@ assertThat(Files.list(resolve(runtimeDependencyTargetDir, "protobuf-maven-plugin
// `project' output expectations //
///////////////////////////////////

Path projectTargetCompilerClass = projectTargetDir
.resolve("classes")
.resolve("org")
.resolve("example")
.resolve("compiler")
.resolve("Compiler.class")
Path projectTargetCompilerProto = projectTargetDir
.resolve("classes")
.resolve("org")
.resolve("example")
.resolve("compiler")
.resolve("compiler.proto")

assertThat(projectTargetDir).isDirectory()
assertThat(resolve(projectTargetDir,"classes", "org", "example", "compiler", "Compiler.class"))
assertThat(projectTargetCompilerClass)
.isRegularFile()
assertThat(resolve(projectTargetDir,"classes", "org", "example", "compiler", "compiler.proto"))
assertThat(projectTargetCompilerProto)
.isRegularFile()

// Compile dependencies are included in the archives directory.
assertThat(Files.list(resolve(projectTargetDir,"protobuf-maven-plugin", "archives")))
Path projectTargetDirArchives = projectTargetDir
.resolve("protobuf-maven-plugin")
.resolve("generate")
.resolve("default")
.resolve("archives")

assertThat(Files.list(projectTargetDirArchives))
.filteredOn { it.getFileName().toString().startsWith("protobuf-java-") }
.isNotEmpty()

// Transitive runtime dependencies are not included in the archives directory.
assertThat(Files.list(resolve(projectTargetDir,"protobuf-maven-plugin", "archives")))
assertThat(Files.list(projectTargetDirArchives))
.withFailMessage {
"Expected runtime-dependency-* directory to not be present, this means " +
"direct runtime dependencies are being included erroneously!"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,29 +20,45 @@ import java.nio.file.Path

import static org.assertj.core.api.Assertions.assertThat

static Path resolve(Path path, String... bits) {
for (String bit : bits) {
path = path.resolve(bit)
}
return path
}

Path baseDirectory = basedir.toPath().toAbsolutePath()
Path transitiveRuntimeDependencyTargetDir = resolve(baseDirectory,"transitive-runtime-dependency", "target")
Path projectTargetDir = resolve(baseDirectory, "project", "target")
Path transitiveRuntimeDependencyTargetDir = baseDirectory
.resolve("transitive-runtime-dependency")
.resolve("target")
Path projectTargetDir = baseDirectory
.resolve("project")
.resolve("target")

/////////////////////////////////////////////////////////
// `transitive-runtime-dependency' output expectations //
/////////////////////////////////////////////////////////

Path transitiveRuntimeDependenciesRuntimeClass = transitiveRuntimeDependencyTargetDir
.resolve("classes")
.resolve("org")
.resolve("example")
.resolve("runtime")
.resolve("Runtime.class")
Path transitiveRuntimeDependenciesRuntimeProto = transitiveRuntimeDependencyTargetDir
.resolve("classes")
.resolve("org")
.resolve("example")
.resolve("runtime")
.resolve("runtime.proto")

assertThat(transitiveRuntimeDependencyTargetDir).isDirectory()
assertThat(resolve(transitiveRuntimeDependencyTargetDir, "classes", "org", "example", "runtime", "Runtime.class"))
assertThat(transitiveRuntimeDependenciesRuntimeClass)
.isRegularFile()
assertThat(resolve(transitiveRuntimeDependencyTargetDir, "classes", "org", "example", "runtime", "runtime.proto"))
assertThat(transitiveRuntimeDependenciesRuntimeProto)
.isRegularFile()

// Compile dependencies are included in the archives directory.
assertThat(Files.list(resolve(transitiveRuntimeDependencyTargetDir, "protobuf-maven-plugin", "archives")))
Path transitiveRuntimeDependenciesArchivesDir = transitiveRuntimeDependencyTargetDir
.resolve("protobuf-maven-plugin")
.resolve("generate")
.resolve("default")
.resolve("archives")

assertThat(Files.list(transitiveRuntimeDependenciesArchivesDir))
.withFailMessage { "Expected protobuf-java-* directory to be present" }
.filteredOn { it.getFileName().toString().startsWith("protobuf-java-") }
.hasSize(1)
Expand All @@ -51,19 +67,38 @@ assertThat(Files.list(resolve(transitiveRuntimeDependencyTargetDir, "protobuf-ma
// `project' output expectations //
///////////////////////////////////

Path projectTargetCompilerClass = projectTargetDir
.resolve("classes")
.resolve("org")
.resolve("example")
.resolve("compiler")
.resolve("Compiler.class")
Path projectTargetCompilerProto = projectTargetDir
.resolve("classes")
.resolve("org")
.resolve("example")
.resolve("compiler")
.resolve("compiler.proto")

assertThat(projectTargetDir).isDirectory()
assertThat(resolve(projectTargetDir, "classes", "org", "example", "compiler", "Compiler.class"))
assertThat(projectTargetCompilerClass)
.isRegularFile()
assertThat(resolve(projectTargetDir, "classes", "org", "example", "compiler", "compiler.proto"))
assertThat(projectTargetCompilerProto)
.isRegularFile()

// Compile dependencies are included in the archives directory.
assertThat(Files.list(resolve(projectTargetDir, "protobuf-maven-plugin", "archives")))
Path projectTargetDirArchives = projectTargetDir
.resolve("protobuf-maven-plugin")
.resolve("generate")
.resolve("default")
.resolve("archives")

assertThat(Files.list(projectTargetDirArchives))
.filteredOn { it.getFileName().toString().startsWith("protobuf-java-") }
.isNotEmpty()

// Transitive runtime dependencies are not included in the archives directory.
assertThat(Files.list(resolve(projectTargetDir, "protobuf-maven-plugin", "archives")))
assertThat(Files.list(projectTargetDirArchives))
.withFailMessage {
"Expected transitive-runtime-dependency-* directory to not be present, this means " +
"transitive runtime dependencies are being included erroneously!"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ Path expectedGeneratedFile = baseProjectDir.resolve("some-project")
Path expectedScriptsDirectory = baseProjectDir.resolve("some-project")
.resolve("target")
.resolve("protobuf-maven-plugin")
.resolve("generate")
.resolve("default")
.resolve("plugins")
.resolve("jvm")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ assertThat(resolve(testDependencyTargetDir, "classes", "org", "example", "test",
.isRegularFile()
assertThat(resolve(testDependencyTargetDir, "classes", "org", "example", "test", "test.proto"))
.isRegularFile()
assertThat(Files.list(resolve(testDependencyTargetDir, "protobuf-maven-plugin", "archives")))
assertThat(Files.list(resolve(testDependencyTargetDir, "protobuf-maven-plugin", "generate", "default", "archives")))
.withFailMessage { "Expected protobuf-java-* directory to be present" }
.filteredOn { it.getFileName().toString().startsWith("protobuf-java-") }
.hasSize(1)
Expand All @@ -55,12 +55,12 @@ assertThat(resolve(testProjectTargetDir, "test-classes", "org", "example", "comp
.isRegularFile()
assertThat(resolve(testProjectTargetDir, "test-classes", "org", "example", "compiler", "compiler.proto"))
.isRegularFile()
assertThat(Files.list(resolve(testProjectTargetDir, "protobuf-maven-plugin", "archives")))
assertThat(Files.list(resolve(testProjectTargetDir, "protobuf-maven-plugin", "generate-test", "default", "archives")))
.withFailMessage { "Expected protobuf-java-* directory to be present" }
.filteredOn { it.getFileName().toString().startsWith("protobuf-java-") }
.hasSize(1)
// We should include test sources in the test goal execution.
assertThat(Files.list(resolve(testProjectTargetDir, "protobuf-maven-plugin", "archives")))
assertThat(Files.list(resolve(testProjectTargetDir, "protobuf-maven-plugin", "generate-test", "default", "archives")))
.withFailMessage { "Expected test-dependency-* directory to be present" }
.filteredOn { it.getFileName().toString().startsWith("test-dependency-") }
.hasSize(1)
Expand All @@ -74,12 +74,12 @@ assertThat(resolve(mainProjectTargetDir,"classes", "org", "example", "compiler",
.isRegularFile()
assertThat(resolve(mainProjectTargetDir,"classes", "org", "example", "compiler", "compiler.proto"))
.isRegularFile()
assertThat(Files.list(resolve(mainProjectTargetDir, "protobuf-maven-plugin", "archives")))
assertThat(Files.list(resolve(mainProjectTargetDir, "protobuf-maven-plugin", "generate", "default", "archives")))
.withFailMessage { "Expected protobuf-java-* directory to be present" }
.filteredOn { it.getFileName().toString().startsWith("protobuf-java-") }
.hasSize(1)
// We should exclude test sources in the main goal execution.
assertThat(Files.list(resolve(mainProjectTargetDir, "protobuf-maven-plugin", "archives")))
assertThat(Files.list(resolve(mainProjectTargetDir, "protobuf-maven-plugin", "generate", "default", "archives")))
.withFailMessage { "Expected test-dependency-* directory to not be present" }
.filteredOn { it.getFileName().toString().startsWith("test-dependency-") }
.isEmpty()
Expand Down

0 comments on commit a06ac68

Please sign in to comment.