Solace Spring Cloud BOM 2.4.0
Solace Spring Cloud Stream Starter 3.4.0
org.springframework.cloud
spring-cloud-stream
test-jar
test
test-binder
com.solace.spring.cloud
spring-cloud-starter-stream-solace
Class:
@Component
@EnableAutoConfiguration
public class MessageReceiver {
@Bean
@SuppressWarnings(“unchecked”)
Function<Message<List<?>>, Collection<Message>> receiveMessage() {
return batchMsg -> {
List<?> batchedPayloads = batchMsg.getPayload();
ArrayList<Message> msgList = new ArrayList<Message>();
// System.out.println("size " + batchedPayloads.get(0));
List<Map<String, Object>> batchedHeaders =
(List<Map<String, Object>>)
batchMsg.getHeaders().get(SolaceBinderHeaders.BATCHED_HEADERS);
msgList.add(
MessageBuilder.withPayload(“dgjk”).build());
return msgList;
};
}
}
TestClass:
@RunWith(SpringRunner.class)
@SpringBootTest
public class MessageReceiverTest {
@Test
public void receiveMessageTest() throws InterruptedException {
try (ConfigurableApplicationContext context = new SpringApplicationBuilder(
TestChannelBinderConfiguration.getCompleteConfiguration(
MessageReceiver.class))
.run("--spring.cloud.function.definition=receiveMessage")) {
InputDestination source = context.getBean(InputDestination.class);
OutputDestination target = context.getBean(OutputDestination.class);
Message<?> msgInput = MessageBuilder.withPayload(inputObj).build();
assertNotNull(msgInput.toString());
source.send(msgInput);
target.receive().getHeaders();
assertNotNull(target.receive().getPayload());
}}
}
Error Log: java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration , you need to use @ContextConfiguration or @SpringBootTest(classes=…) with your test
at org.springframework.util.Assert.state(Assert.java:76)
at org.springframework.boot.test.context.SpringBootTestContextBootstrapper.getOrFindConfigurationClasses(SpringBootTestContextBootstrapper.java:236)
at org.springframework.boot.test.context.SpringBootTestContextBootstrapper.processMergedContextConfiguration(SpringBootTestContextBootstrapper.java:152)
at org.springframework.test.context.support.AbstractTestContextBootstrapper.buildMergedContextConfiguration(AbstractTestContextBootstrapper.java:393)