Cleanup and added more tests
This commit is contained in:
@@ -16,25 +16,25 @@
|
||||
|
||||
package org.springframework.cloud.function.context.config;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import java.net.URLClassLoader;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Test;
|
||||
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.cloud.function.context.FunctionRegistration;
|
||||
import org.springframework.cloud.function.context.config.ContextFunctionCatalogAutoConfiguration.ContextFunctionRegistry;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
import org.springframework.util.ClassUtils;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
@@ -102,6 +102,24 @@ public class ContextFunctionPostProcessorTests {
|
||||
.containsExactly("foos|bars");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supplierAndFunction() {
|
||||
processor.register(new FunctionRegistration<Supplier<String>>(() -> "foo", "supplier"));
|
||||
processor.register(new FunctionRegistration<Function<String, String>>((x) -> x.toUpperCase(), "function"));
|
||||
@SuppressWarnings("unchecked")
|
||||
Supplier<Flux<String>> supplier = (Supplier<Flux<String>>) processor.lookupSupplier("supplier|function");
|
||||
assertThat(supplier.get().blockFirst()).isEqualTo("FOO");
|
||||
assertThat(processor.getRegistration(supplier).getNames()).containsExactly("supplier|function");
|
||||
}
|
||||
|
||||
//TODO we should support it at some point since this is really a Runnable
|
||||
@Test(expected=UnsupportedOperationException.class)
|
||||
public void supplierAndConsumer() {
|
||||
processor.register(new FunctionRegistration<Supplier<String>>(() -> "foo", "supplier"));
|
||||
processor.register(new FunctionRegistration<Consumer<String>>(System.out::println, "consumer"));
|
||||
processor.lookupSupplier("supplier|consumer");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void compose() {
|
||||
processor.register(new FunctionRegistration<>(new Foos(), "foos"));
|
||||
|
||||
Reference in New Issue
Block a user