package cn.jimmyshi.beanquery.selectors; import static org.hamcrest.Matchers.contains; import static org.hamcrest.Matchers.empty; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertThat; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Set; import org.junit.Test; public class BeanSelectorTest { @Test public void shouldGetNullWhenSelectNull(){ //given BeanSelector<String> stringBeanSelector=new BeanSelector<String>(String.class); //when String result=stringBeanSelector.select((Object)null); //then assertNull(result); } @Test public void shouldGetNullWhenIsNotInstance(){ //given BeanSelector<String> stringBeanSelector=new BeanSelector<String>(String.class); //when String result=stringBeanSelector.select(new Integer(2)); //then assertNull(result); } @Test @SuppressWarnings("rawtypes") public void shouldGetItselfWhenSelectCastable(){ //given BeanSelector<Set> setBeanSelector=new BeanSelector<Set>(Set.class); Set item=new HashSet(); //when Set result=setBeanSelector.select(item); //then assertSame(item, result); } @Test @SuppressWarnings("rawtypes") public void shouldGetEmptyListWhenSelectFromNullList(){ BeanSelector<String> stringBeanSelector=new BeanSelector<String>(String.class); List<String> result=stringBeanSelector.select((List)null); assertThat(result, empty()); } @Test public void shouldGetEmptyListWhenSelectFromEmptyList(){ BeanSelector<String> stringBeanSelector=new BeanSelector<String>(String.class); List<String> result=stringBeanSelector.select(new ArrayList<String>()); assertThat(result, empty()); } @Test public void shouldGetBeanList(){ BeanSelector<String> stringBeanSelector=new BeanSelector<String>(String.class); List<String> result=stringBeanSelector.select(Arrays.asList("ABC","EDF")); assertThat(result, contains("ABC","EDF")); } }