Package org.springframework.roo.project.converter

Source Code of org.springframework.roo.project.converter.GAVConverterTest

package org.springframework.roo.project.converter;

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

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import org.apache.commons.lang3.StringUtils;
import org.junit.Before;
import org.junit.Test;
import org.springframework.roo.project.GAV;
import org.springframework.roo.project.MavenUtils;
import org.springframework.roo.shell.Completion;

/**
* Unit test of {@link GAVConverter}
*
* @author Andrew Swan
* @since 1.2.0
*/
public class GAVConverterTest {

    // Fixture
    private GAVConverter converter;

    private void assertInvalidString(final String string,
            final String expectedMessage) {
        try {
            converter.convertFromText(string, GAV.class, null);
            fail("Expected a " + IllegalArgumentException.class);
        }
        catch (final Exception e) {
            assertEquals(expectedMessage, e.getMessage());
        }
    }

    /**
     * Asserts the expected completions for the given input string
     *
     * @param existingData
     * @param expectedComplete whether we expect the converter to report the
     *            conversion as complete
     * @param expectedCompletions
     */
    private void assertPossibleValues(final String existingData,
            final boolean expectedComplete,
            final Completion... expectedCompletions) {
        // Set up
        final List<Completion> completions = new ArrayList<Completion>();

        // Invoke
        final boolean complete = converter.getAllPossibleValues(completions,
                null, existingData, null, null);

        // Check
        assertEquals(expectedComplete, complete);
        assertEquals(Arrays.asList(expectedCompletions), completions);
    }

    @Before
    public void setUp() {
        converter = new GAVConverter();
    }

    @Test
    public void testConvertFromEmptyString() {
        assertInvalidString("",
                "Expected three coordinates, but found 0: []; did you use the ':' separator?");
    }

    @Test
    public void testConvertFromNull() {
        assertInvalidString(null,
                "Expected three coordinates, but found 0: []; did you use the ':' separator?");
    }

    @Test
    public void testConvertFromOneTooFewCoordinates() {
        assertInvalidString(
                "foo:bar",
                "Expected three coordinates, but found 2: [foo, bar]; did you use the ':' separator?");
    }

    @Test
    public void testConvertFromOneTooManyCoordinates() {
        assertInvalidString(
                "foo:bar:baz:bop",
                "Expected three coordinates, but found 4: [foo, bar, baz, bop]; did you use the ':' separator?");
    }

    @Test
    public void testConvertFromValidCoordinates() {
        // Set up
        final String groupId = "org.springframework.roo";
        final String artifactId = "addon-gradle";
        final String version = "-0.1";
        final String coordinates = StringUtils.join(
                Arrays.asList(groupId, artifactId, version),
                MavenUtils.COORDINATE_SEPARATOR);

        // Invoke
        final GAV gav = converter.convertFromText(coordinates, GAV.class, null);

        // Check
        assertEquals(groupId, gav.getGroupId());
        assertEquals(artifactId, gav.getArtifactId());
        assertEquals(version, gav.getVersion());
    }

    @Test
    public void testDoesNotSupportObjects() {
        assertFalse(converter.supports(Object.class, null));
    }

    @Test
    public void testGetAllPossibleValuesForNullInput() {
        assertPossibleValues(null, true);
    }

    @Test
    public void testSupportsGAVs() {
        assertTrue(converter.supports(GAV.class, null));
    }

    @Test
    public void testSupportsSubclassOfGAV() {
        // Set up
        final Class<? extends GAV> subclass = new GAV("a", "b", "c") {
        }.getClass();

        // Invoke and check
        assertTrue(converter.supports(subclass, null));
    }
}
TOP

Related Classes of org.springframework.roo.project.converter.GAVConverterTest

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.