package org.radargun.config;
import java.lang.reflect.Type;
import java.util.Arrays;
import java.util.EnumSet;
import java.util.List;
import org.testng.annotations.Test;
import sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
/**
* @author Radim Vansa <rvansa@redhat.com>
*/
@Test
public class DefaultConverterTest {
private static DefaultConverter INSTANCE = new DefaultConverter();
public void testCollectionWhitespaces() {
assertConverts("1, 2, 3", Arrays.asList(1, 2, 3));
assertConverts("3,2,1", Arrays.asList(3, 2, 1));
}
private void assertConverts(String expression, List<Integer> expected) {
Object value = INSTANCE.convert(expression, ParameterizedTypeImpl.make(List.class, new Type[] {Integer.class}, null));
assertTrue(value instanceof List);
assertEquals(((List) value).toArray(), expected.toArray());
}
public void testEnumSet() {
Object value = INSTANCE.convert("TEST_1, TEST_2", ParameterizedTypeImpl.make(EnumSet.class, new Type[] {TestEnum.class}, null));
assertTrue(value instanceof EnumSet);
EnumSet<TestEnum> result = (EnumSet) value;
assertEquals(result.size(), 2);
assertTrue(result.containsAll(Arrays.asList(new TestEnum[] {TestEnum.TEST_1, TestEnum.TEST_2})));
}
private static enum TestEnum {
TEST_1, TEST_2
}
}