Author: ptahchiev
Date: Tue Jan  6 07:31:48 2009
New Revision: 731973

URL: http://svn.apache.org/viewvc?rev=731973&view=rev
Log:
Added artifactStub and CactifyMavenProjectStub to avoid the missing project 
when testing the war and ear mojos.

Added:
    
jakarta/cactus/trunk/integration/maven2/src/test/java/org/apache/cactus/integration/maven2/test/ArtifactStub.java
    
jakarta/cactus/trunk/integration/maven2/src/test/java/org/apache/cactus/integration/maven2/test/CactifyMavenProjectStub.java
    
jakarta/cactus/trunk/integration/maven2/src/test/java/org/apache/cactus/integration/maven2/test/TestCactifyEarMojo.java

Added: 
jakarta/cactus/trunk/integration/maven2/src/test/java/org/apache/cactus/integration/maven2/test/ArtifactStub.java
URL: 
http://svn.apache.org/viewvc/jakarta/cactus/trunk/integration/maven2/src/test/java/org/apache/cactus/integration/maven2/test/ArtifactStub.java?rev=731973&view=auto
==============================================================================
--- 
jakarta/cactus/trunk/integration/maven2/src/test/java/org/apache/cactus/integration/maven2/test/ArtifactStub.java
 (added)
+++ 
jakarta/cactus/trunk/integration/maven2/src/test/java/org/apache/cactus/integration/maven2/test/ArtifactStub.java
 Tue Jan  6 07:31:48 2009
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2001-2006 The Apache Software Foundation.
+ *
+ * Licensed 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 org.apache.cactus.integration.maven2.test;
+
+import java.io.File;
+
+import org.apache.maven.artifact.DefaultArtifact;
+import org.apache.maven.artifact.handler.DefaultArtifactHandler;
+import org.apache.maven.artifact.versioning.VersionRange;
+import org.codehaus.plexus.PlexusTestCase;
+
+/**
+ * @author Edwin Punzalan
+ */
+public class ArtifactStub
+    extends DefaultArtifact
+{
+    public ArtifactStub( String groupId, String artifactId, String version, 
String packaging, String scope )
+    {
+        this( groupId, artifactId, version, packaging, null, scope );
+    }
+
+    public ArtifactStub( String groupId, String artifactId, String version, 
String packaging, String classifier, String scope )
+    {
+        super( groupId, artifactId, VersionRange.createFromVersion( version ), 
scope, packaging,
+               classifier, new DefaultArtifactHandler( packaging ), false );
+    }
+
+    public File getFile()
+    {
+        return new File( PlexusTestCase.getBasedir() + "/target/local-repo", 
getArtifactId() + "-" + getVersion() + "." + getType() )
+        {
+            public long lastModified()
+            {
+                return System.currentTimeMillis();
+            }
+        };
+    }
+}

Added: 
jakarta/cactus/trunk/integration/maven2/src/test/java/org/apache/cactus/integration/maven2/test/CactifyMavenProjectStub.java
URL: 
http://svn.apache.org/viewvc/jakarta/cactus/trunk/integration/maven2/src/test/java/org/apache/cactus/integration/maven2/test/CactifyMavenProjectStub.java?rev=731973&view=auto
==============================================================================
--- 
jakarta/cactus/trunk/integration/maven2/src/test/java/org/apache/cactus/integration/maven2/test/CactifyMavenProjectStub.java
 (added)
+++ 
jakarta/cactus/trunk/integration/maven2/src/test/java/org/apache/cactus/integration/maven2/test/CactifyMavenProjectStub.java
 Tue Jan  6 07:31:48 2009
@@ -0,0 +1,169 @@
+/*
+ * Copyright 2001-2006 The Apache Software Foundation.
+ *
+ * Licensed 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 org.apache.cactus.integration.maven2.test;
+
+import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.DefaultArtifact;
+import org.apache.maven.artifact.repository.DefaultArtifactRepository;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
+import org.apache.maven.artifact.handler.DefaultArtifactHandler;
+import org.apache.maven.artifact.versioning.VersionRange;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.Build;
+import org.codehaus.plexus.PlexusTestCase;
+
+import java.util.Set;
+import java.util.Collections;
+import java.util.Properties;
+import java.util.List;
+import java.io.File;
+
+public class CactifyMavenProjectStub extends MavenProjectStub 
+{
+
+    private String groupId, artifactId, version;
+
+    private Artifact artifact;
+
+    private Set artifacts;
+
+    private Model model;
+
+    private File basedir;
+
+    public Build getBuild()
+    {
+        return model.getBuild();
+    }
+
+    public List getRemoteArtifactRepositories()
+    {
+        ArtifactRepository repository = new DefaultArtifactRepository( 
"central",
+                                             "file://" + 
PlexusTestCase.getBasedir() + "/src/test/remote-repo",
+                                             new DefaultRepositoryLayout() );
+
+        return Collections.singletonList( repository );
+    }
+
+    public CactifyMavenProjectStub()
+    {
+        groupId = "cactify";
+        artifactId = "test-project";
+        version = "1.0";
+    }
+
+    public Set getDependencyArtifacts()
+    {
+        return Collections.singleton(
+            new DefaultArtifact( "cactify", "dependency-artifact", 
VersionRange.createFromVersion( "1.0" ),
+                                 Artifact.SCOPE_COMPILE, "jar", null, new 
DefaultArtifactHandler( "jar" ), false )
+            );
+    }
+
+    public File getBasedir()
+    {
+        if ( basedir == null )
+        {
+            basedir = new File( PlexusTestCase.getBasedir() );
+        }
+
+        return basedir;
+    }
+
+    public Artifact getArtifact()
+    {
+        if ( artifact == null )
+        {
+            artifact = new ArtifactStub( groupId, artifactId, version, "jar", 
Artifact.SCOPE_COMPILE );
+        }
+
+        return artifact;
+    }
+
+    public Model getModel()
+    {
+        if ( model == null )
+        {
+            model = new Model();
+
+            model.setProperties( new Properties() );
+
+            model.setGroupId( getGroupId() );
+
+            model.setArtifactId( getArtifactId() );
+
+            model.setVersion( getVersion() );
+
+            Build build = new Build();
+            build.setFinalName( getArtifactId() + "-" + getVersion() );
+            model.setBuild( build );
+        }
+
+        return model;
+    }
+
+    public Set getArtifacts()
+    {
+        if ( artifacts == null )
+        {
+            artifacts = Collections.EMPTY_SET;
+        }
+
+        return artifacts;
+    }
+
+    public void setArtifacts( Set artifacts )
+    {
+        this.artifacts = artifacts;
+    }
+
+    public Properties getProperties()
+    {
+        return new Properties();
+    }
+
+    public String getGroupId()
+    {
+        return groupId;
+    }
+
+    public void setGroupId( String groupId )
+    {
+        this.groupId = groupId;
+    }
+
+    public String getArtifactId()
+    {
+        return artifactId;
+    }
+
+    public void setArtifactId( String artifactId )
+    {
+        this.artifactId = artifactId;
+    }
+
+    public String getVersion()
+    {
+        return version;
+    }
+
+    public void setVersion( String version )
+    {
+        this.version = version;
+    }
+}

Added: 
jakarta/cactus/trunk/integration/maven2/src/test/java/org/apache/cactus/integration/maven2/test/TestCactifyEarMojo.java
URL: 
http://svn.apache.org/viewvc/jakarta/cactus/trunk/integration/maven2/src/test/java/org/apache/cactus/integration/maven2/test/TestCactifyEarMojo.java?rev=731973&view=auto
==============================================================================
--- 
jakarta/cactus/trunk/integration/maven2/src/test/java/org/apache/cactus/integration/maven2/test/TestCactifyEarMojo.java
 (added)
+++ 
jakarta/cactus/trunk/integration/maven2/src/test/java/org/apache/cactus/integration/maven2/test/TestCactifyEarMojo.java
 Tue Jan  6 07:31:48 2009
@@ -0,0 +1,72 @@
+/* 
+ * ========================================================================
+ * 
+ * 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 org.apache.cactus.integration.maven2.test;
+
+import java.io.File;
+
+import org.apache.cactus.maven2.mojos.CactifyEarMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.testing.AbstractMojoTestCase;
+import org.apache.maven.project.MavenProject;
+
+/**
+ * Some unit tests for the <code>CactifyEarMojo</code> class.
+ * 
+ * @author ptahchiev
+ */
+public class TestCactifyEarMojo extends AbstractMojoTestCase 
+{
+    /**
+     * The cactifyEarMojo instance.
+     */
+    private CactifyEarMojo cactifyEarMojo;
+    
+    /**
+     * Set-up method to instantiate the mojo.
+     */
+    public void setUp() throws Exception
+    {
+        super.setUp();
+        this.cactifyEarMojo = new CactifyEarMojo();
+    }
+    
+
+    /**
+     * Tests the mojo with absolutely no parameters specified
+     * @throws Exception in case some error occurs
+     */
+    public void testCactifyEarWithNoParametersSpecified() throws Exception
+    {
+        File testPom = new File(getBasedir(), 
"target/test-classes/unit/ear/basic-"
+                + "cactify-noparameters/plugin-config.xml");
+        CactifyEarMojo mojo = (CactifyEarMojo) lookupMojo("cactifyear", 
testPom);
+        assertNotNull(mojo);
+        try 
+        {
+               mojo.execute();
+               fail("Exception should have been raised!");
+        } 
+        catch (MojoExecutionException mex)
+        {
+               assertEquals("You need to specify [srcFile] for 
cactification!", mex.getMessage());
+        }
+    }
+}
\ No newline at end of file



---------------------------------------------------------------------
To unsubscribe, e-mail: cactus-dev-unsubscr...@jakarta.apache.org
For additional commands, e-mail: cactus-dev-h...@jakarta.apache.org

Reply via email to