Package de.crowdcode.kissmda.maven.plugin

Source Code of de.crowdcode.kissmda.maven.plugin.KissMdaMojoTest

/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements.  See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership.  The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License.  You may obtain a copy of the License at
*
*  http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied.  See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package de.crowdcode.kissmda.maven.plugin;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject;
import org.junit.Before;
import org.junit.Test;

import de.crowdcode.kissmda.core.Context;

/**
* Unit test for KissMDA mojo.
*
* @author Lofi Dewanto
* @version 1.0.0
*/
public class KissMdaMojoTest {

  private KissMdaMojo kissMdaMojo;

  @Before
  public void setUp() throws Exception {
    kissMdaMojo = new KissMdaMojo();
  }

  @Test
  public void testExecuteScanPackageNamesOk() throws MojoExecutionException {
    List<String> packageNames = new ArrayList<String>();
    packageNames.add("de.crowdcode.kissmda.maven.plugin.withguice");
    MavenProject mavenProject = new MavenProject();
    mavenProject.setFile(new File("target/tmp/test"));

    kissMdaMojo.setTransformerScanPackageNames(packageNames);
    kissMdaMojo.setModelFile("src/main/resources/model/emf/test-uml.uml");
    kissMdaMojo.setProject(mavenProject);
    kissMdaMojo.execute();
    assertTrue(true);
  }

  @Test
  public void testExecuteNamesWithOrderOk() throws MojoExecutionException {
    List<String> packageNames = new ArrayList<String>();
    packageNames.add("de.crowdcode.kissmda.maven.plugin.withguice");

    List<String> transformerNameWithOrders = new ArrayList<String>();
    transformerNameWithOrders
        .add("2:de.crowdcode.kissmda.maven.plugin.withguice.MockTransformer");
    transformerNameWithOrders
        .add("10:de.crowdcode.kissmda.maven.plugin.manypackages.MockTransformer");
    transformerNameWithOrders
        .add("1:de.crowdcode.kissmda.maven.plugin.manypackages.Mock2Transformer");

    MavenProject mavenProject = new MavenProject();
    mavenProject.setFile(new File("target/tmp/test"));

    kissMdaMojo.setTransformerScanPackageNames(packageNames);
    kissMdaMojo.setTransformerNameWithOrders(transformerNameWithOrders);
    kissMdaMojo.setModelFile("src/main/resources/model/emf/test-uml.uml");
    kissMdaMojo.setProject(mavenProject);
    kissMdaMojo.execute();
    assertTrue(true);
  }

  @Test
  public void testExecuteScanPackageNamesManyGuiceModules()
      throws MojoExecutionException {
    List<String> packageNames = new ArrayList<String>();
    packageNames.add("de.crowdcode.kissmda.maven.plugin.manypackages");
    MavenProject mavenProject = new MavenProject();
    mavenProject.setFile(new File("target/tmp/test"));

    kissMdaMojo.setTransformerScanPackageNames(packageNames);
    kissMdaMojo.setModelFile("src/main/resources/model/emf/test-uml.uml");
    kissMdaMojo.setProject(mavenProject);
    kissMdaMojo.execute();
    assertTrue(true);
  }

  @Test
  public void testExecuteScanPackageNamesNoGuiceModule() {
    List<String> packageNames = new ArrayList<String>();
    packageNames.add("de.crowdcode.kissmda.maven.plugin.noguice");
    MavenProject mavenProject = new MavenProject();
    mavenProject.setFile(new File("target/tmp/test"));

    kissMdaMojo.setTransformerScanPackageNames(packageNames);
    kissMdaMojo.setModelFile("src/main/resources/model/emf/test-uml.uml");
    kissMdaMojo.setProject(mavenProject);
    try {
      kissMdaMojo.execute();
    } catch (MojoExecutionException e) {
      assertEquals(e.getMessage(),
          KissMdaMojo.ERROR_GUICE_SAME_PACKAGE_NOT_FOUND);
    }
  }

  @Test
  public void testExecuteScanPackageNamesWithGuiceModuleButInTheDifferentPackage() {
    List<String> packageNames = new ArrayList<String>();
    packageNames.add("de.crowdcode.kissmda.maven.plugin.differentpackage");
    MavenProject mavenProject = new MavenProject();
    mavenProject.setFile(new File("target/tmp/test"));

    kissMdaMojo.setTransformerScanPackageNames(packageNames);
    kissMdaMojo.setModelFile("src/main/resources/model/emf/test-uml.uml");
    kissMdaMojo.setProject(mavenProject);
    try {
      kissMdaMojo.execute();
    } catch (MojoExecutionException e) {
      assertEquals(e.getMessage(),
          KissMdaMojo.ERROR_GUICE_SAME_PACKAGE_NOT_FOUND);
    }
  }

  @Test
  public void testContextObject() throws MojoExecutionException {
    List<String> packageNames = new ArrayList<String>();
    packageNames.add("de.crowdcode.kissmda.maven.plugin.withguice");
    MavenProject mavenProject = new MavenProject();
    mavenProject.setFile(new File("target/tmp/test"));

    kissMdaMojo.setTransformerScanPackageNames(packageNames);
    kissMdaMojo.setModelFile("src/main/resources/model/emf/test-uml.uml");
    kissMdaMojo
        .setGeneratedSourcesTargetDirectory("target/generated-sources/kissmda");
    kissMdaMojo.setProject(mavenProject);
    kissMdaMojo.execute();

    Context context = kissMdaMojo.getContext();

    String resultSourceModel = context.getSourceModel().replace("\\", ".");
    resultSourceModel = resultSourceModel.replace("/", ".");
    String resultTargetModel = context.getTargetModel().replace("\\", ".");
    resultTargetModel = resultTargetModel.replace("/", ".");
    assertEquals(resultSourceModel,
        "target.tmp.src.main.resources.model.emf.test-uml.uml");
    assertEquals(resultTargetModel,
        "target.tmp.target.generated-sources.kissmda");
  }

  @Test
  public void testGetGuiceModuleName() {
    String transformerClazzName = "de.crowdcode.kissmda.cartridges.extensions.ExtensionExamplesTransformer";
    String result = kissMdaMojo.getGuiceModuleName(transformerClazzName);

    assertEquals(
        "de.crowdcode.kissmda.cartridges.extensions.ExtensionExamplesModule",
        result);
  }
}
TOP

Related Classes of de.crowdcode.kissmda.maven.plugin.KissMdaMojoTest

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.