package org.simpleflatmapper.util.test;
import org.junit.Test;
import org.simpleflatmapper.util.CheckedConsumer;
import org.simpleflatmapper.util.CheckedConsumerHelper;
import org.simpleflatmapper.util.Consumer;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import static org.junit.Assert.*;
public class CheckedConsumerHelperTest {
@Test
public void toConsumerThrowException() throws Exception {
Consumer<Object> objectConsumer = CheckedConsumerHelper.toConsumer(new CheckedConsumer<Object>() {
@Override
public void accept(Object o) throws Exception {
throw new IOException();
}
});
try {
run(objectConsumer, null);
fail();
} catch (Exception e) {
assertTrue(e instanceof IOException);
}
}
@Test
public void toConsumerDelegate() throws Exception {
final List<String> strings = new ArrayList<String>();
Consumer<String> objectConsumer = CheckedConsumerHelper.toConsumer(new CheckedConsumer<String>() {
@Override
public void accept(String o) throws Exception {
strings.add(o);
}
});
run(objectConsumer, "hello");
assertArrayEquals(new String[] {"hello"}, strings.toArray(new String[0]));
}
private <T> void run(Consumer<T> objectConsumer, T value) {
objectConsumer.accept(value);
}
}