Дочерний модуль получает запрос от производителя родительского кафки.Дочерний модуль имеет только функции получения и отправки kafak.Принимая во внимание, что parent получает запрос от rest api, а затем выдает дочернему kafka listner.
Я хочу написать интеграционный тест для приведенной выше структуры проекта.Я хочу протестировать все приложение, т.е. получить вызов API остальных, а затем переслать запрос в дочерний модуль и отправить ответ обратно.
Вот структура проекта
Это контроллер API, в который попадает начальный запрос:
@Controller
@RequestMapping(value = "/api")
public class ApiController {
@Autowired
KafkaTemplate<String, String> kafkaTemple;
@RequestMapping(value={"/welcome"}, method = RequestMethod.POST)
@ResponseBody
public PojoClass welcomeUser(@RequestBody String request) {
// TODO Prepares request to JSON format and forward towards child module
kafkaTemple.send("ChildTopic", request);
return new PojoClass("Test","Test Message String");
}
}
Приемник и производитель дочерней кафки
@Component
@EnableKafka
public class KafkaReceiver extends config {
@Autowired
KafkaTemplate<String, String> kafkaTemple;
private static final String kafkaTopic = "ChildTopic";
@KafkaListener(topics = kafkaTopic)
public void listen(List<ConsumerRecord<String, String>> records) {
// TODO Some parsing and validation
System.out.println("Received request: " + records);
kafkaTemple.send("ParentTopic", records + " :Response-true");
}
}
Вот родительский приемник кафки
@Component
@EnableKafka
public class ParentKafkaReceiver extends config {
private static final String kafkaTopic = "ParentTopic";
@KafkaListener(topics = kafkaTopic)
public void listen(List<ConsumerRecord<String, String>> records) {
System.out.println("Final result string: " + records);
}
}
Гдеи как мне писать тестовые случаи?т.е. в родительском модуле или дочернем модуле