package org.apache.maven.ejb;

/* ====================================================================
 *   Copyright 2001-2005 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.
 * ====================================================================
 */

import org.apache.maven.MavenException;
import org.apache.maven.project.Project;
import org.apache.maven.repository.ArtifactTypeHandler;

import junit.framework.TestCase;

/**
 *  This will do until wagon debuts.
 * 
 * @author <a href="mailto:vmassol@apache.org">Vincent Massol</a>
 * @version $Id$
 */
public class EJBArtifactTypeHandlerTest extends TestCase
{
    private Project project;
    private ArtifactTypeHandler handler;
    private static final String VERSION = "VERSION";

    public void setUp() throws Exception
    {
        project = new Project();
        project.setGroupId("groupId");
        project.setArtifactId("artifactId");
        handler = new EJBArtifactTypeHandler();
    }

    public void testConstructRepositoryDirectoryPath() throws Exception
    {
        assertEquals("check artifact directory", "groupId/ejbs/",
            handler.constructRepositoryDirectoryPath("ejb", project));
        assertEquals("check artifact directory", "groupId/ejbs/",
            handler.constructRepositoryDirectoryPath("ejb-client", project));
    }

    public void testConstructRepositoryFullPath() throws Exception
    {
        assertEquals("check artifact path", "groupId/ejbs/artifactId-VERSION.jar",
            handler.constructRepositoryFullPath("ejb", project, VERSION));
        assertEquals("check artifact path", "groupId/ejbs/artifactId-VERSION-client.jar",
            handler.constructRepositoryFullPath("ejb-client", project, VERSION));
    }

    public void testConstructRepositoryFullPathWithInvalidType() throws Exception
    {
        try {
            handler.constructRepositoryFullPath("foo", project, VERSION);
            fail("expected exception");
        }
        catch (MavenException expected) {
            assertEquals("Unrecognised ejb type (is foo)", expected.getMessage());
        }
    }
}
