Package com.github.ferstl.maven.pomenforcers

Source Code of com.github.ferstl.maven.pomenforcers.PedanticPluginManagementOrderEnforcerTest

package com.github.ferstl.maven.pomenforcers;

import org.apache.maven.model.Plugin;
import org.junit.Test;

import com.github.ferstl.maven.pomenforcers.model.PluginModel;

import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;

/**
* JUnit tests for {@link PedanticPluginManagementOrderEnforcer}.
*/
public class PedanticPluginManagementOrderEnforcerTest extends AbstractPedanticEnforcerTest<PedanticPluginManagementOrderEnforcer> {

  @Override
  PedanticPluginManagementOrderEnforcer createRule() {
    return new PedanticPluginManagementOrderEnforcer();
  }

  @Test
  @Override
  public void getDescription() {
    assertThat(this.testRule.getDescription(), equalTo(PedanticEnforcerRule.PLUGIN_MANAGEMENT_ORDER));
  }

  @Test
  @Override
  public void accept() {
    PedanticEnforcerVisitor visitor = mock(PedanticEnforcerVisitor.class);
    this.testRule.accept(visitor);

    verify(visitor).visit(this.testRule);
  }

  @Test
  public void defaultSettingsCorrect() {
    addManagedPlugin("a.b.c", "a");
    addManagedPlugin("a.b.c", "b");

    executeRuleAndCheckReport(false);
  }

  @Test
  public void defaultSettingsWrongGroupIdOrder() {
    addManagedPlugin("d.e.f", "a");
    addManagedPlugin("a.b.c", "a");

    executeRuleAndCheckReport(true);
  }

  @Test
  public void defaultSettingsWrongArtifactIdOrder() {
    addManagedPlugin("a.b.c", "b");
    addManagedPlugin("a.b.c", "a");

    executeRuleAndCheckReport(true);
  }

  @Test
  public void groupIdPriorities() {
    this.testRule.setGroupIdPriorities("x.y.z,u.v.w");

    addManagedPlugin("x.y.z", "a");
    addManagedPlugin("u.v.w", "a");
    addManagedPlugin("a.b.c", "a");

    executeRuleAndCheckReport(false);
  }

  @Test
  public void artifactIdPriorities() {
    this.testRule.setArtifactIdPriorities("z,y");

    addManagedPlugin("a.b.c", "z");
    addManagedPlugin("a.b.c", "y");
    addManagedPlugin("a.b.c", "a");

    executeRuleAndCheckReport(false);
  }

  @Test
  public void orderBy() {
    this.testRule.setOrderBy("artifactId,groupId");

    addManagedPlugin("x.y.z", "a");
    addManagedPlugin("a.b.c", "b");

    executeRuleAndCheckReport(false);
  }

  private void addManagedPlugin(String groupId, String artifactId) {
    String defaultVersion = "1.0";
    PluginModel pluginModel = new PluginModel(groupId, artifactId, defaultVersion);
    Plugin mavenPlugin = new Plugin();
    mavenPlugin.setGroupId(groupId);
    mavenPlugin.setArtifactId(artifactId);
    mavenPlugin.setVersion(defaultVersion);

    this.projectModel.getManagedPlugins().add(pluginModel);
    this.mockMavenProject.getPluginManagement().getPlugins().add(mavenPlugin);
  }
}
TOP

Related Classes of com.github.ferstl.maven.pomenforcers.PedanticPluginManagementOrderEnforcerTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.