From a4003949f032a64eaa625d2cdd070a933afb2aa1 Mon Sep 17 00:00:00 2001 From: Andreas Isler Date: Wed, 12 Nov 2025 20:15:05 +0100 Subject: [PATCH] Added parametrized test for FlowableExcelMapper --- .../example/parser/FlowableExcelMapper.java | 10 ++++----- .../parser/FlowableExcelMapperTest.java | 22 +++++++++++++++++++ 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/example/parser/FlowableExcelMapper.java b/src/main/java/com/example/parser/FlowableExcelMapper.java index d606d9b..b9743c5 100644 --- a/src/main/java/com/example/parser/FlowableExcelMapper.java +++ b/src/main/java/com/example/parser/FlowableExcelMapper.java @@ -26,21 +26,21 @@ public class FlowableExcelMapper { } public ArrayNode excelToJsonNode(String excelPath) { - ArrayList> rawList = flowableExcelParser.parseExcel(excelPath); + ArrayList> rows = flowableExcelParser.parseExcel(excelPath); ArrayList paths = new ArrayList<>(); ArrayList types = new ArrayList<>(); ArrayNode arrayNode = objectMapper.createArrayNode(); - for (int rowNum = 0; rowNum < rawList.size(); rowNum++) { + for (int rowNum = 0; rowNum < rows.size(); rowNum++) { if (rowNum == 0) { // The 1st row contains the paths - paths.addAll(rawList.get(rowNum)); + paths.addAll(rows.get(rowNum)); } else if (rowNum == 1) { // The 1st row contains the types of the variables - types.addAll(rawList.get(rowNum)); + types.addAll(rows.get(rowNum)); } else { // All other rows contain the values of the variables JsonNode jsonNode = null; - ArrayList row = rawList.get(rowNum); + ArrayList row = rows.get(rowNum); for (int cellNum = 0; cellNum < row.size(); cellNum++) { Object content = row.get(cellNum); String type = types.get(cellNum).toString(); diff --git a/src/test/java/com/example/parser/FlowableExcelMapperTest.java b/src/test/java/com/example/parser/FlowableExcelMapperTest.java index 41d13ce..6227178 100644 --- a/src/test/java/com/example/parser/FlowableExcelMapperTest.java +++ b/src/test/java/com/example/parser/FlowableExcelMapperTest.java @@ -2,14 +2,20 @@ package com.example.parser; import com.fasterxml.jackson.databind.JsonNode; import org.assertj.core.api.Assertions; +import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import java.net.URL; +import java.util.ArrayList; +import java.util.stream.Stream; @TestInstance(TestInstance.Lifecycle.PER_CLASS) @SpringBootTest @@ -33,4 +39,20 @@ class FlowableExcelMapperTest { JsonNode node = flowableExcelMapper.excelToJsonNode(getResourcePath("flowableExcelMapperTestData.xlsx")); logger.info("node2={}{}", System.lineSeparator(), node.toPrettyString()); } + + @NotNull + private Stream excelToJsonNodeParametrizedTestData() { + ArrayList argumentList = new ArrayList<>(); + JsonNode nodes = flowableExcelMapper.excelToJsonNode(getResourcePath("flowableExcelMapperTestData.xlsx")); + for (JsonNode node : nodes) { + argumentList.add(Arguments.of(node)); + } + return argumentList.stream(); + } + + @ParameterizedTest + @MethodSource("excelToJsonNodeParametrizedTestData") + public void excelToJsonNodeParametrizedTest(JsonNode node) { + logger.info("node2={}{}", System.lineSeparator(), node.toPrettyString()); + } }