package com.jcwhatever.nucleus.utils;
import org.junit.Assert;
import org.junit.Test;
public class EnumUtilsTest {
public enum TestEnum {
CONSTANT,
DEFAULT
}
@Test
public void testGetEnum() throws Exception {
Assert.assertEquals(TestEnum.CONSTANT, EnumUtils.getEnum("CONSTANT", TestEnum.class));
Assert.assertEquals(null, EnumUtils.getEnum("constant1", TestEnum.class));
Assert.assertEquals(null, EnumUtils.getEnum("invalid", TestEnum.class));
}
@Test
public void testGetEnum1() throws Exception {
Assert.assertEquals(TestEnum.CONSTANT, EnumUtils.getEnum("CONSTANT", TestEnum.class, TestEnum.DEFAULT));
Assert.assertEquals(TestEnum.DEFAULT, EnumUtils.getEnum("constant", TestEnum.class, TestEnum.DEFAULT));
Assert.assertEquals(TestEnum.DEFAULT, EnumUtils.getEnum("invalid", TestEnum.class, TestEnum.DEFAULT));
}
@Test
public void testSearchEnum() throws Exception {
Assert.assertEquals(TestEnum.CONSTANT, EnumUtils.searchEnum("CONSTANT", TestEnum.class));
Assert.assertEquals(TestEnum.CONSTANT, EnumUtils.searchEnum("constant", TestEnum.class));
Assert.assertEquals(null, EnumUtils.searchEnum("invalid", TestEnum.class));
}
@Test
public void testSearchEnum1() throws Exception {
Assert.assertEquals(TestEnum.CONSTANT, EnumUtils.searchEnum("CONSTANT", TestEnum.class, TestEnum.DEFAULT));
Assert.assertEquals(TestEnum.CONSTANT, EnumUtils.searchEnum("constant", TestEnum.class, TestEnum.DEFAULT));
Assert.assertEquals(TestEnum.DEFAULT, EnumUtils.searchEnum("invalid", TestEnum.class, TestEnum.DEFAULT));
}
@Test
public void testGetGenericEnum() throws Exception {
Class<? extends Enum<?>> clazz = TestEnum.class;
Assert.assertEquals(TestEnum.CONSTANT, EnumUtils.getGenericEnum("CONSTANT", clazz, null));
Assert.assertEquals(null, EnumUtils.getGenericEnum("constant", clazz, null));
Assert.assertEquals(null, EnumUtils.getGenericEnum("invalid", clazz, null));
Assert.assertEquals(TestEnum.CONSTANT, EnumUtils.getGenericEnum("CONSTANT", clazz, TestEnum.DEFAULT));
Assert.assertEquals(TestEnum.DEFAULT, EnumUtils.getGenericEnum("constant", clazz, TestEnum.DEFAULT));
Assert.assertEquals(TestEnum.DEFAULT, EnumUtils.getGenericEnum("invalid", clazz, TestEnum.DEFAULT));
}
@Test
public void testSearchGenericEnum() throws Exception {
Class<? extends Enum<?>> clazz = TestEnum.class;
Assert.assertEquals(TestEnum.CONSTANT, EnumUtils.searchGenericEnum("CONSTANT", clazz, null));
Assert.assertEquals(TestEnum.CONSTANT, EnumUtils.searchGenericEnum("constant", clazz, null));
Assert.assertEquals(null, EnumUtils.searchGenericEnum("invalid", clazz, null));
Assert.assertEquals(TestEnum.CONSTANT, EnumUtils.searchGenericEnum("CONSTANT", clazz, TestEnum.DEFAULT));
Assert.assertEquals(TestEnum.CONSTANT, EnumUtils.searchGenericEnum("constant", clazz, TestEnum.DEFAULT));
Assert.assertEquals(TestEnum.DEFAULT, EnumUtils.searchGenericEnum("invalid", clazz, TestEnum.DEFAULT));
}
@Test
public void testGetRawEnum() throws Exception {
Class clazz = TestEnum.class;
Assert.assertEquals(TestEnum.CONSTANT, EnumUtils.getRawEnum("CONSTANT", clazz, null));
Assert.assertEquals(null, EnumUtils.getRawEnum("constant", clazz, null));
Assert.assertEquals(null, EnumUtils.getRawEnum("invalid", clazz, null));
Assert.assertEquals(TestEnum.CONSTANT, EnumUtils.getRawEnum("CONSTANT", clazz, TestEnum.DEFAULT));
Assert.assertEquals(TestEnum.DEFAULT, EnumUtils.getRawEnum("constant", clazz, TestEnum.DEFAULT));
Assert.assertEquals(TestEnum.DEFAULT, EnumUtils.getRawEnum("invalid", clazz, TestEnum.DEFAULT));
}
@Test
public void testSearchRawEnum() throws Exception {
Class clazz = TestEnum.class;
Assert.assertEquals(TestEnum.CONSTANT, EnumUtils.searchRawEnum("CONSTANT", clazz, null));
Assert.assertEquals(TestEnum.CONSTANT, EnumUtils.searchRawEnum("constant", clazz, null));
Assert.assertEquals(null, EnumUtils.searchRawEnum("invalid", clazz, null));
Assert.assertEquals(TestEnum.CONSTANT, EnumUtils.searchRawEnum("CONSTANT", clazz, TestEnum.DEFAULT));
Assert.assertEquals(TestEnum.CONSTANT, EnumUtils.searchRawEnum("constant", clazz, TestEnum.DEFAULT));
Assert.assertEquals(TestEnum.DEFAULT, EnumUtils.searchRawEnum("invalid", clazz, TestEnum.DEFAULT));
}
}