1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.beanutils2.converters;
19
20 import static org.junit.jupiter.api.Assertions.assertEquals;
21 import static org.junit.jupiter.api.Assertions.assertThrows;
22
23 import org.apache.commons.beanutils2.ConversionException;
24 import org.apache.commons.beanutils2.Converter;
25 import org.junit.jupiter.api.AfterEach;
26 import org.junit.jupiter.api.BeforeEach;
27 import org.junit.jupiter.api.Test;
28
29
30
31
32 public class EnumConverterTest {
33
34 public enum PizzaStatus {
35 ORDERED, READY, DELIVERED;
36 }
37
38 private Converter<Enum<PizzaStatus>> converter;
39
40 protected Class<?> getExpectedType() {
41 return Enum.class;
42 }
43
44 protected Converter<Enum<PizzaStatus>> makeConverter() {
45 return new EnumConverter<>();
46 }
47
48 @BeforeEach
49 public void setUp() throws Exception {
50 converter = makeConverter();
51 }
52
53 @AfterEach
54 public void tearDown() throws Exception {
55 converter = null;
56 }
57
58 @Test
59 public void testSimpleConversion() throws Exception {
60 final String[] message = { "from String", "from String", "from String", "from String", "from String", "from String", "from String", "from String", };
61
62 final Object[] input = { "DELIVERED", "ORDERED", "READY" };
63
64 final PizzaStatus[] expected = { PizzaStatus.DELIVERED, PizzaStatus.ORDERED, PizzaStatus.READY };
65
66 for (int i = 0; i < expected.length; i++) {
67 assertEquals(expected[i], converter.convert(PizzaStatus.class, input[i]), message[i] + " to Enum");
68 }
69
70 for (int i = 0; i < expected.length; i++) {
71 assertEquals(input[i], converter.convert(String.class, expected[i]), input[i] + " to String");
72 }
73 }
74
75
76
77
78 @Test
79 public void testUnsupportedType() {
80 assertThrows(ConversionException.class, () -> converter.convert(Integer.class, "http://www.apache.org"));
81 }
82 }