package net.sourceforge.pmd.eclipse.runtime.properties.impl;
import org.apache.commons.io.IOUtils;
import org.junit.Assert;
import org.junit.Test;
public class ProjectPropertiesManagerImplTest {
private ProjectPropertiesManagerImpl manager = new ProjectPropertiesManagerImpl();
@Test
public void testToString() throws Exception {
ProjectPropertiesTO projectProperties = createProjectProperties();
String expected = IOUtils.toString(this.getClass().getResourceAsStream("projectproperties.xml"));
String s = manager.convertProjectPropertiesToString(projectProperties);
Assert.assertEquals(expected, s);
}
@Test
public void testFromString() throws Exception {
String input = IOUtils.toString(this.getClass().getResourceAsStream("projectproperties.xml"));
ProjectPropertiesTO projectProperties = manager.convertProjectPropertiesFromString(input);
ProjectPropertiesTO expected = createProjectProperties();
Assert.assertArrayEquals(expected.getExcludePatterns(), projectProperties.getExcludePatterns());
Assert.assertEquals(expected.isFullBuildEnabled(), projectProperties.isFullBuildEnabled());
Assert.assertEquals(expected.isIncludeDerivedFiles(), projectProperties.isIncludeDerivedFiles());
Assert.assertArrayEquals(expected.getIncludePatterns(), projectProperties.getIncludePatterns());
Assert.assertEquals(expected.getRuleSetFile(), projectProperties.getRuleSetFile());
Assert.assertEquals(expected.isRuleSetStoredInProject(), projectProperties.isRuleSetStoredInProject());
Assert.assertEquals(expected.isViolationsAsErrors(), projectProperties.isViolationsAsErrors());
Assert.assertEquals(expected.getWorkingSetName(), projectProperties.getWorkingSetName());
Assert.assertEquals(expected.getRules().length, projectProperties.getRules().length);
for (int i = 0; i < expected.getRules().length; i++) {
Assert.assertEquals(expected.getRules()[i].getName(), projectProperties.getRules()[i].getName());
Assert.assertEquals(expected.getRules()[i].getRuleSetName(), projectProperties.getRules()[i].getRuleSetName());
}
}
private ProjectPropertiesTO createProjectProperties() {
ProjectPropertiesTO projectProperties = new ProjectPropertiesTO();
projectProperties.setExcludePatterns(new String[] { ".project" });
projectProperties.setFullBuildEnabled(true);
projectProperties.setIncludeDerivedFiles(false);
projectProperties.setIncludePatterns(new String[] { "*.java" });
projectProperties.setRuleSetFile("rulesetfile");
projectProperties.setRuleSetStoredInProject(true);
projectProperties.setViolationsAsErrors(false);
projectProperties.setWorkingSetName("workingsetname");
projectProperties.setRules(new RuleSpecTO[] { createRule("JumbledIncrementer", "java-basic"),
createRule("ForLoopShouldBeWhileLoop", "java-basic") });
return projectProperties;
}
private RuleSpecTO createRule(String name, String rulesetname) {
RuleSpecTO rulespec = new RuleSpecTO();
rulespec.setName(name);
rulespec.setRuleSetName(rulesetname);
return rulespec;
}
}