package org.ovirt.engine.core.utils.linq;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import java.util.*;
/**
* Created by IntelliJ IDEA. User: gmostizk Date: Aug 9, 2009 Time: 4:05:52 PM To change this template use File |
* Settings | File Templates.
*/
public class LinqUtilsTest {
private List<String> list = new LinkedList<String>() {
{
add("one");
add("two");
add("three");
}
};
private List<String> cutlist = new LinkedList<String>() {
{
add("o");
add("t");
add("t");
}
};
@Test
public void exampleFirstOrNull() {
String string = LinqUtils.firstOrNull(list, new Predicate<String>() {
@Override
public boolean eval(String s) {
return s.equals("two");
}
});
assertEquals("two", string);
}
@Test
public void exampleForeach() {
List<String> results = LinqUtils.foreach(list, new Function<String, String>() {
@Override
public String eval(String s) {
return s.substring(0, 1);
}
});
assertEquals(results, cutlist);
}
@Test
public void exampleFilter() {
List<String> filteredList = LinqUtils.filter(list, new Predicate<String>() {
@Override
public boolean eval(String s) {
return "two".equals(s);
}
});
assertEquals("two", filteredList.get(0));
}
@Test
public void exampleToMap() {
Map<String, String> map = LinqUtils.toMap(list, new Mapper<String, String, String>() {
@Override
public String createKey(String s) {
return s.substring(0, 1);
}
@Override
public String createValue(String s) {
return s;
}
});
Map<String, String> example = new HashMap<String, String>() {
{
put("t", "three");
put("o", "one");
}
};
assertEquals(map, example);
}
@Test
public void exampleToMapDefaultMapper() {
Map<String, String> map = LinqUtils.toMap(list, new DefaultMapper<String, String>() {
@Override
public String createKey(String s) {
return s.substring(0, 1);
}
});
Map<String, String> example = new HashMap<String, String>() {
{
put("t", "three");
put("o", "one");
}
};
assertEquals(map, example);
}
@Test
public void exampleAggregate() {
String r = LinqUtils.aggregate(Arrays.asList("a", "b", "c"), new Aggregator<String>() {
@Override
public String process(String s, String s1) {
return s + ":" + s1;
}
});
assertEquals("a:b:c", r);
}
}