package com.querydsl.core.support;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import org.junit.Test;
import com.querydsl.core.Tuple;
import com.querydsl.core.types.Projections;
import com.querydsl.core.types.QTuple;
import com.querydsl.core.types.dsl.EnumPath;
import com.querydsl.core.types.dsl.Expressions;
import com.querydsl.core.types.dsl.NumberPath;
import com.querydsl.core.types.dsl.StringPath;
public class NumberConversionsTest {
public enum Color { GREEN, BLUE, RED, YELLOW, BLACK, WHITE }
@Test
public void name() {
EnumPath<Color> color = Expressions.enumPath(Color.class, "path");
QTuple qTuple = Projections.tuple(color);
NumberConversions<Tuple> conversions = new NumberConversions<Tuple>(qTuple);
assertEquals(Color.BLUE, conversions.newInstance("BLUE").get(color));
}
@Test
public void ordinal() {
EnumPath<Color> color = Expressions.enumPath(Color.class, "path");
QTuple qTuple = Projections.tuple(color);
NumberConversions<Tuple> conversions = new NumberConversions<Tuple>(qTuple);
assertEquals(Color.RED, conversions.newInstance(2).get(color));
}
@Test
public void safe_number_conversion() {
StringPath strPath = Expressions.stringPath("strPath");
NumberPath<Integer> intPath = Expressions.numberPath(Integer.class, "intPath");
QTuple qTuple = Projections.tuple(strPath, intPath);
NumberConversions<Tuple> conversions = new NumberConversions<Tuple>(qTuple);
assertNotNull(conversions.newInstance(1, 2));
}
@Test
public void number_conversion() {
StringPath strPath = Expressions.stringPath("strPath");
NumberPath<Integer> intPath = Expressions.numberPath(Integer.class, "intPath");
QTuple qTuple = Projections.tuple(strPath, intPath);
NumberConversions<Tuple> conversions = new NumberConversions<Tuple>(qTuple);
Tuple tuple = conversions.newInstance("a", Long.valueOf(3));
assertEquals("a", tuple.get(strPath));
assertEquals(Integer.valueOf(3), tuple.get(intPath));
}
}