package org.apache.maven.plugins.war; /* * 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. */ import org.apache.maven.plugins.war.WarInPlaceMojo; import org.apache.maven.plugins.war.stub.MavenProjectBasicStub; import org.apache.maven.plugins.war.stub.ResourceStub; import java.io.File; import java.util.LinkedList; public class WarInPlaceMojoTest extends AbstractWarMojoTest { protected static final String pomFilePath = getBasedir() + "/target/test-classes/unit/warexplodedinplacemojo/plugin-config.xml"; protected File getTestDirectory() throws Exception { return new File( getBasedir(), "target/test-classes/unit/warexplodedinplacemojo/test-dir" ); } private WarInPlaceMojo mojo; public void setUp() throws Exception { super.setUp(); mojo = (WarInPlaceMojo) lookupMojo( "inplace", pomFilePath ); assertNotNull( mojo ); } public void testEnvironment() throws Exception { // see setUp } public void testSimpleExplodedInplaceWar() throws Exception { // setup test data String testId = "SimpleExplodedInplaceWar"; MavenProjectBasicStub project = new MavenProjectBasicStub(); File webAppSource = createWebAppSource( testId ); File classesDir = createClassesDir( testId, true ); File webAppResource = new File( getTestDirectory(), "resources" ); File sampleResource = new File( webAppResource, "pix/panis_na.jpg" ); ResourceStub[] resources = new ResourceStub[] { new ResourceStub() }; createFile( sampleResource ); // configure mojo resources[0].setDirectory( webAppResource.getAbsolutePath() ); this.configureMojo( mojo, new LinkedList<String>(), classesDir, webAppSource, null, project ); setVariableValueToObject( mojo, "webResources", resources ); mojo.execute(); // validate operation File expectedWebSourceFile = new File( webAppSource, "pansit.jsp" ); File expectedWebSource2File = new File( webAppSource, "org/web/app/last-exile.jsp" ); File expectedWebResourceFile = new File( webAppSource, "pix/panis_na.jpg" ); File expectedWEBINFDir = new File( webAppSource, "WEB-INF" ); File expectedMETAINFDir = new File( webAppSource, "META-INF" ); assertTrue( "source files not found: " + expectedWebSourceFile.toString(), expectedWebSourceFile.exists() ); assertTrue( "source files not found: " + expectedWebSource2File.toString(), expectedWebSource2File.exists() ); assertTrue( "resources doesn't exist: " + expectedWebResourceFile, expectedWebResourceFile.exists() ); assertTrue( "WEB-INF not found", expectedWEBINFDir.exists() ); assertTrue( "META-INF not found", expectedMETAINFDir.exists() ); } }