Package com.github.ferstl.maven.pomenforcers

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

package com.github.ferstl.maven.pomenforcers;

import java.util.Arrays;

import org.junit.Test;

import com.github.ferstl.maven.pomenforcers.model.DependencyModel;
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;
import static org.mockito.Mockito.when;

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

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

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

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

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

  @Test
  public void defaultSettingsCorrect() {
    addPlugin(false, false, false);

    executeRuleAndCheckReport(false);
  }

  @Test
  public void allowedUnmanagedConfiguration() {
    this.testRule.setManageConfigurations(false);
    addPlugin(false, true, false);

    executeRuleAndCheckReport(false);
  }

  @Test
  public void forbiddenUnmanagedConfiguration() {
    this.testRule.setManageConfigurations(true);
    addPlugin(false, true, false);

    executeRuleAndCheckReport(true);
  }

  @Test
  public void allowedUnmanagedDependencies() {
    this.testRule.setManageDependencies(false);
    addPlugin(false, false, true);

    executeRuleAndCheckReport(false);
  }

  @Test
  public void forbiddenUnmanagedDependencies() {
    this.testRule.setManageDependencies(true);
    addPlugin(false, false, true);

    executeRuleAndCheckReport(true);
  }

  @Test
  public void allowedManagedVersion() {
    this.testRule.setManageVersions(false);
    addPlugin(true, false, false);

    executeRuleAndCheckReport(false);
  }

  @Test
  public void forbiddenManagedVersion() {
    this.testRule.setManageVersions(true);
    addPlugin(true, false, false);

    executeRuleAndCheckReport(true);
  }

  private void addPlugin(boolean withVersion, boolean withConfiguration, boolean withDependencies) {
    PluginModel plugin = mock(PluginModel.class);

    when(plugin.getGroupId()).thenReturn("a.b.c");
    when(plugin.getArtifactId()).thenReturn("a");

    if (withVersion) {
      when(plugin.getVersion()).thenReturn("1.0");
    }

    if (withConfiguration) {
      when(plugin.isConfigured()).thenReturn(true);
    }

    if (withDependencies) {
      when(plugin.getDependencies()).thenReturn(
          Arrays.asList(new DependencyModel("x.y.z", "z", "1.0", null, null, null)));
    }

    this.testRule.getProjectModel().getPlugins().add(plugin);
  }
}
TOP

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

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.