Package org.andromda.core.cartridge

Source Code of org.andromda.core.cartridge.CartridgeTest

package org.andromda.core.cartridge;

import java.util.Collection;
import java.util.Iterator;
import java.util.Map;

import junit.framework.TestCase;

import org.andromda.core.cartridge.template.ModelElement;
import org.andromda.core.cartridge.template.Template;
import org.andromda.core.cartridge.template.Type;
import org.andromda.core.common.ComponentContainer;
import org.andromda.core.common.TemplateObject;
import org.andromda.core.namespace.NamespaceComponents;
import org.andromda.core.profile.Profile;


/**
* Implements the JUnit test suit for
* {@link org.andromda.core.cartridge.Cartridge}
*
* @see org.andromda.core.cartridge.Cartridge
* @since 01.04.2003
* @author <a href="http://www.mbohlen.de">Matthias Bohlen </a>
* @author Chad Brandon
*/
public class CartridgeTest
    extends TestCase
{
    private Cartridge cartridge;

    /**
     * Constructor for AndroMDATestCartridgeTest.
     *
     * @param name
     */
    public CartridgeTest(String name)
    {
        super(name);
    }

    /**
     * @see TestCase#setUp()
     */
    protected void setUp()
        throws Exception
    {
        NamespaceComponents.instance().discover();
        Collection cartridges = ComponentContainer.instance().findComponentsOfType(Cartridge.class);
        assertNotNull(cartridges);
        this.cartridge = (Cartridge)cartridges.iterator().next();
        Profile.instance().setNamespace(this.cartridge.getNamespace());
        this.cartridge.initialize();
    }

    /**
     * @see TestCase#tearDown()
     */
    protected void tearDown()
        throws Exception
    {
        this.cartridge = null;
    }

    public void testGetNamespace()
    {
        assertEquals(
            "test",
            this.cartridge.getNamespace());
    }

    public void testGetResources()
    {
        Collection resources = this.cartridge.getResources();
        assertNotNull(resources);
        assertEquals(
            3,
            resources.size());

        // first template
        final Iterator templateIterator = resources.iterator();
        Resource resource = (Resource)templateIterator.next();
        assertTrue(resource.isLastModifiedCheck());
       
        Template template = (Template)templateIterator.next();
        assertEquals(
            "EntityBean.vsl",
            template.getPath());
        assertEquals(
            "{0}/{1}Bean.java",
            template.getOutputPattern());
        assertEquals(
            "beans",
            template.getOutlet());
        assertTrue(template.isOverwrite());
        assertNotNull(template.getSupportedModeElements());
        assertEquals(
            "entity",
            template.getSupportedModeElements().getVariable());
        Collection modelElements = template.getSupportedModeElements().getModelElements();
        assertNotNull(modelElements);
        assertEquals(
            1,
            modelElements.size());
        ModelElement element = (ModelElement)modelElements.iterator().next();
        assertEquals(
            "Entity",
            element.getStereotype());

        // second template
        template = (Template)templateIterator.next();
        assertEquals(
            "templates/webservice/axis/server-config.wsdd.vsl",
            template.getPath());
        assertEquals(
            "WEB-INF/server-config.wsdd",
            template.getOutputPattern());
        assertEquals(
            "axis-configuration",
            template.getOutlet());
        assertEquals("$viewType.equals('jsp')", template.getOutputCondition());
        assertTrue(template.isOverwrite());
        assertTrue(template.isOutputToSingleFile());
        assertFalse(template.isOutputOnEmptyElements());
        assertNotNull(template.getSupportedModeElements());
        assertEquals(
            "services",
            template.getSupportedModeElements().getVariable());
        modelElements = template.getSupportedModeElements().getModelElements();
        assertNotNull(modelElements);
        assertEquals(
            1,
            modelElements.size());
        element = (ModelElement)modelElements.iterator().next();
        assertNull(element.getVariable());
        assertNull(element.getStereotype());
       
        final Collection types = element.getTypes();
        assertNotNull(types);
        assertEquals(1, types.size());
        final Type type = (Type)types.iterator().next();
        final Collection properties = type.getProperties();
        assertEquals(2, properties.size());
        final Iterator propertyIterator = properties.iterator();
        Type.Property property1 = (Type.Property)propertyIterator.next();
        assertEquals("propertyOne", property1.getName());
        assertEquals("", property1.getValue());
        Type.Property property2 = (Type.Property)propertyIterator.next();
        assertEquals("propertyThree", property2.getName());
        assertEquals("Contents", property2.getValue());
       
        final Map conditions = cartridge.getConditions();
        assertEquals(1, conditions.size());
        final String expressionName = (String)conditions.keySet().iterator().next();
        assertEquals("viewTypeIsJsp", expressionName);
        final String expressionValue = (String)conditions.get(expressionName);
        assertEquals("$viewType.equalsIgnoreCase('jsp')", expressionValue);
    }

    public void testGetPropertyReferences()
    {
        String[] propertyRefs = this.cartridge.getPropertyReferences();
        assertNotNull(propertyRefs);
        assertEquals(
            2,
            propertyRefs.length);

        String propertyReferenceOne = "propertyReferenceOne";
        String propertyReferenceTwo = "propertyReferenceTwo";

        assertEquals(propertyReferenceOne, propertyRefs[0]);
        assertEquals(propertyReferenceTwo, propertyRefs[1]);
    }

    public void testGetTemplateObjects()
    {
        final Collection templateObjects = this.cartridge.getTemplateObjects();
        assertNotNull(templateObjects);
        assertEquals(
            1,
            templateObjects.size());
        TemplateObject templateObject = ((TemplateObject)templateObjects.iterator().next());
        assertEquals("utils", templateObject.getName());
        assertEquals("test",templateObject.getNamespace());
        CartridgeTemplateObject object = (CartridgeTemplateObject)templateObject.getObject();
        assertNotNull(object);
        assertEquals("3", object.getDefinitionOne());
       
    }

    public void testGetContents()
    {
        Collection contents = this.cartridge.getContents();
        assertNotNull(contents);

        // make sure there's more than 0 contents listed
        TestCase.assertNotSame(
            new Integer(0),
            new Integer(contents.size()));
    }
}
TOP

Related Classes of org.andromda.core.cartridge.CartridgeTest

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.