Make AC access from the createBindableChannel()

To let test to interact with conventional beans override
`createBindableChannel()` in the `KinesisBinderTests` to obtain
`MessageConverterConfigurer` from the provided `ApplicationContext`
This commit is contained in:
Artem Bilan
2018-01-26 14:22:09 -05:00
parent 78143989da
commit 6d7c810e08

View File

@@ -55,6 +55,7 @@ import org.springframework.cloud.stream.binder.TestUtils;
import org.springframework.cloud.stream.binder.kinesis.properties.KinesisBinderConfigurationProperties;
import org.springframework.cloud.stream.binder.kinesis.properties.KinesisConsumerProperties;
import org.springframework.cloud.stream.binder.kinesis.properties.KinesisProducerProperties;
import org.springframework.cloud.stream.binding.MessageConverterConfigurer;
import org.springframework.cloud.stream.config.BindingProperties;
import org.springframework.context.ApplicationContext;
import org.springframework.expression.common.LiteralExpression;
@@ -203,7 +204,6 @@ public class KinesisBinderTests
@Test
@Override
@SuppressWarnings("deprecation")
public void testPartitionedModuleJava() throws Exception {
KinesisTestBinder binder = getBinder();
@@ -245,9 +245,8 @@ public class KinesisBinderTests
ExtendedProducerProperties<KinesisProducerProperties> producerProperties = createProducerProperties();
// TODO must be fixed via application context
producerProperties.setPartitionKeyExtractorClass(PartitionTestSupport.class);
producerProperties.setPartitionSelectorClass(PartitionTestSupport.class);
producerProperties.setPartitionKeyExtractorName("partitionSupport");
producerProperties.setPartitionSelectorName("partitionSupport");
producerProperties.setPartitionCount(3);
DirectChannel output = createBindableChannel("test.output",
@@ -526,6 +525,24 @@ public class KinesisBinderTests
return producerProperties;
}
protected DirectChannel createBindableChannel(String channelName,
BindingProperties bindingProperties, boolean inputChannel) {
MessageConverterConfigurer messageConverterConfigurer = getBinder()
.getApplicationContext()
.getBean(MessageConverterConfigurer.class);
DirectChannel channel = new DirectChannel();
channel.setBeanName(channelName);
if (inputChannel) {
messageConverterConfigurer.configureInputChannel(channel, channelName);
}
else {
messageConverterConfigurer.configureOutputChannel(channel, channelName);
}
return channel;
}
@Override
public Spy spyOn(String name) {
throw new UnsupportedOperationException("'spyOn' is not used by Kinesis tests");