diff --git a/java/compiler/tests/com/intellij/compiler/BaseCompilerTestCase.java b/java/compiler/tests/com/intellij/compiler/BaseCompilerTestCase.java index 387c58636c99..c62fc86ef71a 100644 --- a/java/compiler/tests/com/intellij/compiler/BaseCompilerTestCase.java +++ b/java/compiler/tests/com/intellij/compiler/BaseCompilerTestCase.java @@ -26,6 +26,8 @@ import com.intellij.packaging.impl.compiler.ArtifactCompileScope; import com.intellij.pom.java.LanguageLevel; import com.intellij.testFramework.*; import com.intellij.util.concurrency.Semaphore; +import com.intellij.util.io.DirectoryContentSpec; +import com.intellij.util.io.DirectoryContentSpecKt; import com.intellij.util.io.TestFileSystemBuilder; import com.intellij.util.ui.UIUtil; import gnu.trove.THashSet; @@ -342,6 +344,10 @@ public abstract class BaseCompilerTestCase extends ModuleTestCase { assertOutput(module, item, false); } + protected static void assertOutput(Module module, DirectoryContentSpec spec) { + DirectoryContentSpecKt.assertMatches(getOutputDir(module, false), spec); + } + protected static void assertOutput(Module module, TestFileSystemBuilder item, final boolean forTests) { File outputDir = getOutputDir(module, forTests); Assert.assertTrue((forTests? "Test output" : "Output") +" directory " + outputDir.getAbsolutePath() + " doesn't exist", outputDir.exists()); diff --git a/plugins/devkit/devkit-java-tests/testSrc/org/jetbrains/idea/devkit/build/PluginModuleCompilationTest.kt b/plugins/devkit/devkit-java-tests/testSrc/org/jetbrains/idea/devkit/build/PluginModuleCompilationTest.kt index ab79767a2956..e1246eefad20 100644 --- a/plugins/devkit/devkit-java-tests/testSrc/org/jetbrains/idea/devkit/build/PluginModuleCompilationTest.kt +++ b/plugins/devkit/devkit-java-tests/testSrc/org/jetbrains/idea/devkit/build/PluginModuleCompilationTest.kt @@ -15,7 +15,9 @@ import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.util.io.FileUtilRt import com.intellij.openapi.vfs.LocalFileSystem import com.intellij.util.SmartList -import com.intellij.util.io.TestFileSystemBuilder.fs +import com.intellij.util.io.assertMatches +import com.intellij.util.io.directoryContent +import com.intellij.util.io.zipFile import org.assertj.core.api.Assertions.assertThat import org.jetbrains.idea.devkit.module.PluginModuleType import org.jetbrains.idea.devkit.projectRoots.IdeaJdk @@ -46,17 +48,28 @@ class PluginModuleCompilationTest : BaseCompilerTestCase() { fun testMakeSimpleModule() { val module = setupSimplePluginProject() make(module) - BaseCompilerTestCase.assertOutput(module, fs().dir("xxx").file("MyAction.class")) + assertOutput(module, directoryContent { + dir("xxx") { + file("MyAction.class") + } + }) + val sandbox = File(getSandboxPath()) - assertThat(sandbox).isDirectory() - fs() - .dir("plugins") - .dir("pluginProject") - .dir("META-INF").file("plugin.xml").end() - .dir("classes") - .dir("xxx").file("MyAction.class") - .build().assertDirectoryEqual(sandbox) + sandbox.assertMatches(directoryContent { + dir("plugins") { + dir("pluginProject") { + dir("META-INF") { + file("plugin.xml") + } + dir("classes") { + dir("xxx") { + file("MyAction.class") + } + } + } + } + }) } fun testRebuildSimpleProject() { @@ -71,12 +84,15 @@ class PluginModuleCompilationTest : BaseCompilerTestCase() { prepareForDeployment(module) val outputFile = File("$projectBasePath/pluginProject.jar") - assertThat(outputFile).isFile() - fs() - .archive("pluginProject.jar") - .dir("META-INF").file("plugin.xml").file("MANIFEST.MF").end() - .dir("xxx").file("MyAction.class") - .build().assertFileEqual(outputFile) + outputFile.assertMatches(zipFile { + dir("META-INF") { + file("plugin.xml") + file("MANIFEST.MF") + } + dir("xxx") { + file("MyAction.class") + } + }) } fun testBuildProjectWithJpsModule() { @@ -85,18 +101,24 @@ class PluginModuleCompilationTest : BaseCompilerTestCase() { prepareForDeployment(module) val outputFile = File("$projectBasePath/pluginProject.zip") - assertThat(outputFile).isFile() - fs() - .archive("pluginProject.zip") - .dir("pluginProject") - .dir("lib") - .archive("pluginProject.jar") - .dir("META-INF").file("plugin.xml").file("MANIFEST.MF").end() - .dir("xxx").file("MyAction.class").end() - .end() - .dir("jps") - .archive("jps-plugin.jar").file("Builder.class") - .build().assertFileEqual(outputFile) + outputFile.assertMatches(zipFile { + dir("pluginProject") { + dir("lib") { + zip("pluginProject.jar") { + dir("META-INF") { + file("plugin.xml") + file("MANIFEST.MF") + } + dir("xxx") { + file("MyAction.class") + } + } + dir("jps") { + zip("jps-plugin.jar") { file("Builder.class") } + } + } + } + }) } private fun prepareForDeployment(module: Module) {