【发布时间】:2022-01-06 22:50:02
【问题描述】:
我遇到了骆驼路线模拟的问题。它无法计算路由消息,而是返回“0”消息计数。这是我的测试用例和路线。有人可以帮助我吗?
WatcherRouteTest.java
@CamelSpringBootTest
@SpringBootTest
@MockEndpoints
@UseAdviceWith
public class RouteTest {
@Autowired
CamelContext camelContext;
@Autowired
ProducerTemplate producerTemplate;
File resultFile;
@EndpointInject("mock:azure-storage-blob")
MockEndpoint storageMockEndpoint;
@Test
void testFlow() throws Exception {
AdviceWith.adviceWith(camelContext, "uploadFile", a ->
a.replaceFromWith("direct:start")
);
storageMockEndpoint.expectedMessageCount(1);
storageMockEndpoint.message(0)
.header(Exchange.FILE_NAME).isEqualTo("text.csv");
InputStream body = fetchFileFromResourcesFolderAsStream("test-files/text.csv");
Map<String, Object> headers = new HashMap<>();
headers.put(Exchange.FILE_NAME, "text.csv");
headers.put("CamelAzureStorageBlobContainerName","abc");
headers.put("header.CamelAzureStorageBlobSourceBlobAccountName","abcd");
camelContext.start();
producerTemplate.sendBodyAndHeaders("direct:start", body, headers);
storageMockEndpoint.assertIsSatisfied();
resultFile = fileCreationUtility( "text.csv");
assertTrue(resultFile.exists());
}
}
这是我的实际实现:
from("direct:upload")
.routeId("uploadFile")
.setHeader("CamelAzureStorageBlobSourceBlobAccountName",constant(storageAccountName))
.toD(BLOB_URL)
.log(LoggingLevel.INFO,"${header.CamelFileName} Uploaded to ${header.CamelAzureStorageBlobContainerName} Container Successfully")
.end();
发生异常:
java.lang.AssertionError: mock://azure-storage-blob Received message count. Expected: <1> but was: <0>
Expected :<1>
Actual :<0>
【问题讨论】:
标签: java spring-boot apache-camel azure-blob-storage