Minor polishing of InMemoryFunctionCatalog

- Removed constructor in InMemoryFunctionCatalog that creates empty maps and no registrations since there is no way to register anything after catalog is created.
- Refactored registration logic a bit more functional/concise in the FunctionRegistration constructor of InMemoryFunctionCatalog
- Added additional assertions in tests

rebased and removed the assertion that was causing certain test failures
This commit is contained in:
Oleg Zhurakousky
2017-07-12 08:44:14 -05:00
committed by Dave Syer
parent ae14c236e1
commit 182317dbe9
2 changed files with 41 additions and 33 deletions

View File

@@ -73,10 +73,19 @@ public class ContextFunctionCatalogAutoConfigurationTests {
}
@Test
public void simpleFunction() {
public void lookUps() {
create(SimpleConfiguration.class);
assertThat(context.getBean("function")).isInstanceOf(Function.class);
assertThat(catalog.lookupFunction("function")).isInstanceOf(Function.class);
assertThat(context.getBean("function2")).isInstanceOf(Function.class);
assertThat(catalog.lookupFunction("function,function2")).isInstanceOf(Function.class);
Function<Flux<String>,Flux<String>> f = catalog.lookupFunction("function,function2,function3");
assertThat(f).isInstanceOf(Function.class);
assertThat(f.apply(Flux.just("hello")).blockFirst()).isEqualTo("HELLOfunction2function3");
assertThat(context.getBean("supplierFoo")).isInstanceOf(Supplier.class);
assertThat(catalog.lookupSupplier("supplierFoo")).isInstanceOf(Supplier.class);
assertThat(context.getBean("supplier_Foo")).isInstanceOf(Supplier.class);
assertThat(catalog.lookupSupplier("supplier_Foo")).isInstanceOf(Supplier.class);
}
@Test
@@ -331,11 +340,26 @@ public class ContextFunctionCatalogAutoConfigurationTests {
return value -> value.toUpperCase();
}
@Bean
public Function<String, String> function2() {
return value -> value + "function2";
}
@Bean
public Function<String, String> function3() {
return value -> value + "function3";
}
@Bean
public Supplier<String> supplier() {
return () -> "hello";
}
@Bean(name={"supplierFoo", "supplier_Foo"})
public Supplier<String> foo() {
return () -> "hello";
}
@Bean
public Consumer<String> consumer() {
return value -> list.add(value);