blob: f0392cf732c6f3191a56325672505a22aecea70e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
package util;/*
* Copyright (C) 2009-2014 SonarSource SA
* All rights reserved
* mailto:contact AT sonarsource DOT com
*/
import com.google.common.base.Supplier;
import com.google.common.base.Suppliers;
import com.sonar.orchestrator.locator.FileLocation;
import java.io.File;
import org.apache.commons.io.FileUtils;
public class ItUtils {
private ItUtils() {
}
private static final Supplier<File> HOME_DIR = Suppliers.memoize(new Supplier<File>() {
@Override
public File get() {
File testResources = FileUtils.toFile(ItUtils.class.getResource("/ItUtils.txt"));
return testResources // ${home}/it/it-tests/src/test/resources
.getParentFile() // ${home}/it/it-tests/src/test
.getParentFile() // ${home}/it/it-tests/src
.getParentFile() // ${home}/it/it-tests
.getParentFile() // ${home}/it
.getParentFile(); // ${home}
}
});
public static FileLocation xooPlugin() {
File target = new File(HOME_DIR.get(), "plugins/sonar-xoo-plugin/target");
if (target.exists()) {
for (File jar : FileUtils.listFiles(target, new String[] {"jar"}, false)) {
if (jar.getName().startsWith("sonar-xoo-plugin-") && !jar.getName().contains("-sources")) {
return FileLocation.of(jar);
}
}
}
throw new IllegalStateException("XOO plugin is not built");
}
/**
* Locate the directory of sample project
*
* @param relativePath path related to the directory it/it-projects, for example "qualitygate/xoo-sample"
*/
public static File projectDir(String relativePath) {
File dir = new File(HOME_DIR.get(), "it/it-projects/" + relativePath);
if (!dir.exists() || !dir.isDirectory()) {
throw new IllegalStateException("Directory does not exist: " + dir.getAbsolutePath());
}
return dir;
}
/**
* Locate the artifact of a fake plugin stored in it/it-plugins.
*
* @param dirName the directory of it/it-plugins, for example "sonar-fake-plugin".
* It assumes that version is 1.0-SNAPSHOT
*/
public static FileLocation pluginArtifact(String dirName) {
File file = new File(HOME_DIR.get(), "it/it-plugins/" + dirName + "/target/" + dirName + "-1.0-SNAPSHOT.jar");
if (!file.exists()) {
throw new IllegalStateException(String.format("Plugin [%s]for integration tests is not built. File not found:%s", dirName, file));
}
return FileLocation.of(file);
}
}
|