diff options
author | Simon Brandhof <simon.brandhof@gmail.com> | 2013-04-12 12:12:16 +0200 |
---|---|---|
committer | Simon Brandhof <simon.brandhof@gmail.com> | 2013-04-12 12:12:16 +0200 |
commit | a6a77ee19ae15393296c079ab9ddb3f976c4ea7f (patch) | |
tree | 0f1b431654902d9c6b01b5c405e645df0c559ee7 /sonar-runner-batch/src/test/java/org/sonar/runner/batch | |
parent | 1074ed0b582a4e99731a8a6ae6c276d8d600c900 (diff) | |
download | sonar-scanner-cli-a6a77ee19ae15393296c079ab9ddb3f976c4ea7f.tar.gz sonar-scanner-cli-a6a77ee19ae15393296c079ab9ddb3f976c4ea7f.zip |
SONARPLUGINS-2775 "sonar.libraries" should allow to specify folders
Diffstat (limited to 'sonar-runner-batch/src/test/java/org/sonar/runner/batch')
-rw-r--r-- | sonar-runner-batch/src/test/java/org/sonar/runner/batch/FilePatternTest.java | 81 | ||||
-rw-r--r-- | sonar-runner-batch/src/test/java/org/sonar/runner/batch/ProjectReactorBuilderTest.java | 15 |
2 files changed, 12 insertions, 84 deletions
diff --git a/sonar-runner-batch/src/test/java/org/sonar/runner/batch/FilePatternTest.java b/sonar-runner-batch/src/test/java/org/sonar/runner/batch/FilePatternTest.java deleted file mode 100644 index 64a366d..0000000 --- a/sonar-runner-batch/src/test/java/org/sonar/runner/batch/FilePatternTest.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Sonar Runner - Batch - * Copyright (C) 2011 SonarSource - * dev@sonar.codehaus.org - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 - */ -package org.sonar.runner.batch; - -import org.apache.commons.io.FilenameUtils; -import org.apache.commons.lang.StringUtils; -import org.junit.Before; -import org.junit.Test; - -import java.io.File; -import java.io.IOException; -import java.util.Collection; - -import static org.fest.assertions.Assertions.assertThat; - -public class FilePatternTest { - - File basedir, rootFile, subFile; - String basePath; - - @Before - public void init() throws Exception { - rootFile = new File(getClass().getResource("/org/sonar/runner/batch/FilePatternTest/root.txt").toURI()); - subFile = new File(getClass().getResource("/org/sonar/runner/batch/FilePatternTest/subdir/subfile.txt").toURI()); - basedir = rootFile.getParentFile(); - basePath = path(basedir); - } - - @Test - public void should_list_files_by_relative_path() throws Exception { - assertThat(new FilePattern().listFiles(basedir, "subdir/*.txt")).containsOnly(subFile); - assertThat(new FilePattern().listFiles(basedir, "*.txt")).containsOnly(rootFile); - assertThat(new FilePattern().listFiles(basedir, "root.txt")).containsOnly(rootFile); - assertThat(new FilePattern().listFiles(basedir, "ro*t.txt")).containsOnly(rootFile); - assertThat(new FilePattern().listFiles(basedir, "ro?t.txt")).containsOnly(rootFile); - assertThat(new FilePattern().listFiles(basedir, "r?t.txt")).isEmpty(); - assertThat(new FilePattern().listFiles(basedir, "*")).containsOnly(rootFile); - assertThat(new FilePattern().listFiles(basedir, "**/*")).containsOnly(rootFile, subFile); - assertThat(new FilePattern().listFiles(basedir, "**/*.txt")).containsOnly(subFile, rootFile); - assertThat(new FilePattern().listFiles(basedir, "**/*.jar")).isEmpty(); - assertThat(new FilePattern().listFiles(basedir, "elsewhere/root.txt")).isEmpty(); - assertThat(new FilePattern().listFiles(basedir, "elsewhere/subfile.txt")).isEmpty(); - } - - @Test - public void should_list_files_by_absolute_path() throws Exception { - assertOnly(new FilePattern().listFiles(basedir, basePath + "/*.txt"), rootFile); - assertOnly(new FilePattern().listFiles(basedir, basePath + "/**/subdir/*"), subFile); - assertOnly(new FilePattern().listFiles(basedir, path(rootFile)), rootFile); - assertOnly(new FilePattern().listFiles(basedir, path(basedir) + "/*/subfile.txt"), subFile); - assertThat(new FilePattern().listFiles(basedir, path(basedir) + "/**/*.txt")).containsOnly(subFile, rootFile); - assertThat(new FilePattern().listFiles(basedir, path(basedir) + "/ElseWhere/**/*.txt")).isEmpty(); - assertThat(new FilePattern().listFiles(basedir, "/ElseWhere/**/*.txt")).isEmpty(); - } - - private void assertOnly(Collection<File> files, File file) throws Exception { - assertThat(files).hasSize(1); - assertThat(files.iterator().next().getCanonicalPath()).isEqualTo(file.getCanonicalPath()); - } - - private String path(File f) throws IOException { - return FilenameUtils.separatorsToUnix(f.getCanonicalPath()); - } -} diff --git a/sonar-runner-batch/src/test/java/org/sonar/runner/batch/ProjectReactorBuilderTest.java b/sonar-runner-batch/src/test/java/org/sonar/runner/batch/ProjectReactorBuilderTest.java index 1b35422..a8db88b 100644 --- a/sonar-runner-batch/src/test/java/org/sonar/runner/batch/ProjectReactorBuilderTest.java +++ b/sonar-runner-batch/src/test/java/org/sonar/runner/batch/ProjectReactorBuilderTest.java @@ -354,13 +354,22 @@ public class ProjectReactorBuilderTest { @Test public void shouldFailIfExplicitUnmatchingLibFolder() throws IOException { thrown.expect(IllegalStateException.class); - thrown.expectMessage("No file matching pattern \"libs/*.txt\" in directory \"" + thrown.expectMessage("No files nor directories matching 'libs/*.txt' in directory " + TestUtils.getResource(this.getClass(), "simple-project-with-unexisting-lib").getAbsolutePath()); loadProjectDefinition("simple-project-with-unexisting-lib"); } @Test + public void shouldGetLibDirectory() throws IOException { + ProjectDefinition def = loadProjectDefinition("simple-project-with-lib-dir"); + assertThat(def.getLibraries()).hasSize(1); + File libDir = new File(def.getLibraries().get(0)); + assertThat(libDir).isDirectory().exists(); + assertThat(libDir.getName()).isEqualTo("lib"); + } + + @Test public void shouldFailIfExplicitUnexistingTestFolderOnModule() throws IOException { thrown.expect(IllegalStateException.class); thrown.expectMessage("The folder 'tests' does not exist for 'module1' (base directory = " @@ -381,8 +390,8 @@ public class ProjectReactorBuilderTest { @Test public void shouldFailIfExplicitUnmatchingLibFolderOnModule() throws IOException { thrown.expect(IllegalStateException.class); - thrown.expectMessage("No file matching pattern \"lib/*.jar\" in directory \"" - + TestUtils.getResource(this.getClass(), "multi-module-with-explicit-unexisting-lib").getAbsolutePath() + File.separator + "module1\""); + thrown.expectMessage("No files nor directories matching 'lib/*.jar' in directory " + + TestUtils.getResource(this.getClass(), "multi-module-with-explicit-unexisting-lib").getAbsolutePath() + File.separator + "module1"); loadProjectDefinition("multi-module-with-explicit-unexisting-lib"); } |