package org.springframework.roo.converters; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.util.ArrayList; import java.util.List; import org.junit.Before; import org.junit.Test; import org.springframework.roo.shell.Completion; /** * Unit test of {@link EnumConverter} * * @author Andrew Swan * @since 1.2.0 */ public class EnumConverterTest { /** * A simple test enum (enums can't be mocked). * * @author Andrew Swan * @since 1.2.0 */ private enum Flavour { BANANA, CHERRY, RASPBERRY; } // Fixture private EnumConverter enumConverter; @Before public void setUp() { enumConverter = new EnumConverter(); } @Test public void testConvertFromText() { // Invoke final Enum<?> result = enumConverter.convertFromText(Flavour.BANANA.name(), Flavour.class, "anything"); // Check assertEquals(Flavour.BANANA, result); } @Test public void testGetAllPossibleValuesForPartialName() { // Set up final List<Completion> completions = new ArrayList<Completion>(); // Invoke final boolean result = enumConverter.getAllPossibleValues(completions, Flavour.class, "b", "anything", null); // Check assertTrue(result); assertEquals(1, completions.size()); assertEquals(Flavour.BANANA.name(), completions.get(0).getValue()); } @Test public void testSupports() { assertTrue(enumConverter.supports(Flavour.class, "anything")); } }