package com.querydsl.core.support;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import org.junit.Test;
import com.querydsl.core.types.dsl.EnumPath;
import com.querydsl.core.types.dsl.Expressions;
import com.querydsl.core.types.dsl.StringPath;
public class EnumConversionTest {
public enum Color { GREEN, BLUE, RED, YELLOW, BLACK, WHITE }
@Test
public void name() {
EnumPath<Color> color = Expressions.enumPath(Color.class, "path");
EnumConversion<Color> conv = new EnumConversion<Color>(color);
assertEquals(Color.BLUE, conv.newInstance("BLUE"));
}
@Test
public void ordinal() {
EnumPath<Color> color = Expressions.enumPath(Color.class, "path");
EnumConversion<Color> conv = new EnumConversion<Color>(color);
assertEquals(Color.RED, conv.newInstance(2));
}
@Test(expected = IllegalArgumentException.class)
public void illegal() {
StringPath string = Expressions.stringPath("path");
EnumConversion<String> conv = new EnumConversion<String>(string);
fail("EnumConversion successfully created for a non-enum type");
conv.newInstance(0);
}
}