Browse Source

RuleRepositoryTestHelper is back

tags/4.2
Simon Brandhof 10 years ago
parent
commit
3f42ac85a4

+ 2
- 3
sonar-deprecated/pom.xml View File

@@ -39,9 +39,8 @@
</dependency>

<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>sonar-testing-harness</artifactId>
<version>${project.version}</version>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<scope>test</scope>
</dependency>
<dependency>

+ 5
- 0
sonar-testing-harness/pom.xml View File

@@ -44,6 +44,11 @@
<artifactId>sonar-plugin-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.sonar</groupId>
<artifactId>sonar-deprecated</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.sonar</groupId>
<artifactId>sonar-plugin-api</artifactId>

+ 67
- 0
sonar-testing-harness/src/main/java/org/sonar/test/i18n/RuleRepositoryTestHelper.java View File

@@ -0,0 +1,67 @@
/*
* SonarQube, open source software quality management tool.
* Copyright (C) 2008-2013 SonarSource
* mailto:contact AT sonarsource DOT com
*
* SonarQube 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.
*
* SonarQube 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 02110-1301, USA.
*/
package org.sonar.test.i18n;

import com.google.common.io.Closeables;
import org.sonar.api.rules.Rule;
import org.sonar.api.rules.RuleRepository;
import org.sonar.api.utils.SonarException;
import org.sonar.test.TestUtils;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.Properties;

public final class RuleRepositoryTestHelper {
private RuleRepositoryTestHelper() {
// Static utility class
}

public static List<Rule> createRulesWithNameAndDescription(String pluginKey, RuleRepository repository) {
Properties props = loadProperties(String.format("/org/sonar/l10n/%s.properties", pluginKey));

List<Rule> rules = repository.createRules();
for (Rule rule : rules) {
String name = props.getProperty(String.format("rule.%s.%s.name", repository.getKey(), rule.getKey()));
String description = TestUtils.getResourceContent(String.format("/org/sonar/l10n/%s/rules/%s/%s.html", pluginKey, repository.getKey(), rule.getKey()));

rule.setName(name);
rule.setDescription(description);
}

return rules;
}

private static Properties loadProperties(String resourcePath) {
Properties properties = new Properties();

InputStream input = null;
try {
input = TestUtils.class.getResourceAsStream(resourcePath);
properties.load(input);
return properties;
} catch (IOException e) {
throw new SonarException("Unable to read properties " + resourcePath, e);
} finally {
Closeables.closeQuietly(input);
}
}
}

Loading…
Cancel
Save