Search in sources :

Example 11 with ProjectModel

use of ch.acanda.eclipse.pmd.domain.ProjectModel in project eclipse-pmd by acanda.

the class PMDPropertyPageController method init.

public void init(final IProject project) {
    this.project = project;
    final WorkspaceModel workspaceModel = PMDPlugin.getDefault().getWorkspaceModel();
    projectModel = workspaceModel.getOrCreateProject(project.getName());
    model.setInitialState(projectModel.isPMDEnabled(), projectModel.getRuleSets(), project);
    final ImmutableSortedSet.Builder<RuleSetModel> ruleSetBuilder = ImmutableSortedSet.orderedBy(ProjectModel.RULE_SET_COMPARATOR);
    for (final ProjectModel projectModel : workspaceModel.getProjects()) {
        ruleSetBuilder.addAll(projectModel.getRuleSets());
    }
    model.setRuleSets(ImmutableList.copyOf(toViewModels(ruleSetBuilder.build(), project)));
    reset();
}
Also used : WorkspaceModel(ch.acanda.eclipse.pmd.domain.WorkspaceModel) RuleSetModel(ch.acanda.eclipse.pmd.domain.RuleSetModel) ImmutableSortedSet(com.google.common.collect.ImmutableSortedSet) ProjectModel(ch.acanda.eclipse.pmd.domain.ProjectModel)

Example 12 with ProjectModel

use of ch.acanda.eclipse.pmd.domain.ProjectModel in project eclipse-pmd by acanda.

the class ProjectModelSerializerTest method deserializeWorkspaceRuleSetModel.

/**
 * Verifies that {@link ProjectModelSerializer#deserialize(java.io.InputStream, String)} deserializes the attributes
 * of a workspace {@link RuleSetModel} correctly.
 */
@Test
public void deserializeWorkspaceRuleSetModel() throws IOException {
    final ByteArrayInputStream stream = new ByteArrayInputStream(createXmlConfiguration().getBytes(Charsets.UTF_8));
    final ProjectModel projectModel = new ProjectModelSerializer().deserialize(stream, "TestProjectName");
    assertRuleSetModel(projectModel, LocationContext.WORKSPACE, "Workspace Rule Set", "Projext X/pmd.xml");
}
Also used : ByteArrayInputStream(java.io.ByteArrayInputStream) ProjectModel(ch.acanda.eclipse.pmd.domain.ProjectModel) Test(org.junit.Test)

Example 13 with ProjectModel

use of ch.acanda.eclipse.pmd.domain.ProjectModel in project eclipse-pmd by acanda.

the class ProjectModelSerializerTest method deserializeProjectRuleSetModel.

/**
 * Verifies that {@link ProjectModelSerializer#deserialize(java.io.InputStream, String)} deserializes the attributes
 * of a project {@link RuleSetModel} correctly.
 */
@Test
public void deserializeProjectRuleSetModel() throws IOException {
    final ByteArrayInputStream stream = new ByteArrayInputStream(createXmlConfiguration().getBytes(Charsets.UTF_8));
    final ProjectModel projectModel = new ProjectModelSerializer().deserialize(stream, "TestProjectName");
    assertRuleSetModel(projectModel, LocationContext.PROJECT, "Project Rule Set", "pmd.xml");
}
Also used : ByteArrayInputStream(java.io.ByteArrayInputStream) ProjectModel(ch.acanda.eclipse.pmd.domain.ProjectModel) Test(org.junit.Test)

Example 14 with ProjectModel

use of ch.acanda.eclipse.pmd.domain.ProjectModel in project eclipse-pmd by acanda.

the class ProjectModelSerializerTest method deserializeProjectModel.

/**
 * Verifies that {@link ProjectModelSerializer#deserialize(java.io.InputStream, String)} deserializes the attributes
 * of {@link ProjectModel} correctly.
 */
@Test
public void deserializeProjectModel() throws IOException {
    final ByteArrayInputStream stream = new ByteArrayInputStream(createXmlConfiguration().getBytes(Charsets.UTF_8));
    final ProjectModel projectModel = new ProjectModelSerializer().deserialize(stream, "TestProjectName");
    assertEquals("Project name", "TestProjectName", projectModel.getProjectName());
    assertTrue("PMD should be enabled", projectModel.isPMDEnabled());
    assertEquals("Number of rule sets", 4, projectModel.getRuleSets().size());
}
Also used : ByteArrayInputStream(java.io.ByteArrayInputStream) ProjectModel(ch.acanda.eclipse.pmd.domain.ProjectModel) Test(org.junit.Test)

Example 15 with ProjectModel

use of ch.acanda.eclipse.pmd.domain.ProjectModel in project eclipse-pmd by acanda.

the class ProjectModelSerializerTest method serializeWithoutRuleSets.

/**
 * Verifies that {@link ProjectModelSerializer#serialize(ProjectModel)} serializes a {@link ProjectModel} without
 * rule sets correctly, i.e. without a {@code <rulesets>} tag.
 */
@Test
public void serializeWithoutRuleSets() throws SAXException, IOException {
    final ProjectModel projectModel = new ProjectModel("TestProjectName");
    projectModel.setPMDEnabled(false);
    final String actual = new ProjectModelSerializer().serialize(projectModel);
    final String expected = createXmlConfigurationWithoutRuleSets();
    assertEquals("Serialized project model", expected, actual);
    assertValid(actual);
}
Also used : ProjectModel(ch.acanda.eclipse.pmd.domain.ProjectModel) Test(org.junit.Test)

Aggregations

ProjectModel (ch.acanda.eclipse.pmd.domain.ProjectModel)17 Test (org.junit.Test)10 ByteArrayInputStream (java.io.ByteArrayInputStream)6 WorkspaceModel (ch.acanda.eclipse.pmd.domain.WorkspaceModel)5 RuleSetModel (ch.acanda.eclipse.pmd.domain.RuleSetModel)4 RuleSets (net.sourceforge.pmd.RuleSets)3 Location (ch.acanda.eclipse.pmd.domain.Location)2 IProject (org.eclipse.core.resources.IProject)2 ProjectModelRepository (ch.acanda.eclipse.pmd.repository.ProjectModelRepository)1 ImmutableSortedSet (com.google.common.collect.ImmutableSortedSet)1 IOException (java.io.IOException)1 ArrayList (java.util.ArrayList)1 RuleSetFactory (net.sourceforge.pmd.RuleSetFactory)1 RuleSetNotFoundException (net.sourceforge.pmd.RuleSetNotFoundException)1 RuleSetReferenceId (net.sourceforge.pmd.RuleSetReferenceId)1 IFile (org.eclipse.core.resources.IFile)1 IResourceChangeListener (org.eclipse.core.resources.IResourceChangeListener)1 IWorkspace (org.eclipse.core.resources.IWorkspace)1 CoreException (org.eclipse.core.runtime.CoreException)1