From 479a83ef2fe16dc53ad6eefe804e6152be3cd93e Mon Sep 17 00:00:00 2001 From: Martijn Dirkse Date: Tue, 30 Apr 2024 14:57:01 +0200 Subject: [PATCH] Fix searching all checkpoints for ZaakBrug case --- .../metadata/XpathMetadataFieldExtractor.java | 2 +- .../XpathMetadataFieldExtractorTest.java | 30 +++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/src/main/java/nl/nn/testtool/metadata/XpathMetadataFieldExtractor.java b/src/main/java/nl/nn/testtool/metadata/XpathMetadataFieldExtractor.java index 4869544f..503818ee 100644 --- a/src/main/java/nl/nn/testtool/metadata/XpathMetadataFieldExtractor.java +++ b/src/main/java/nl/nn/testtool/metadata/XpathMetadataFieldExtractor.java @@ -80,7 +80,7 @@ public Object extractMetadata(Report report) { } } Iterator iterator = extractFromList.iterator(); - while (value == null && iterator.hasNext()) { + while (StringUtils.isBlank(value) && iterator.hasNext()) { String message = ((Checkpoint)iterator.next()).getMessage(); if (message != null) { try { diff --git a/src/test/java/nl/nn/testtool/metadata/XpathMetadataFieldExtractorTest.java b/src/test/java/nl/nn/testtool/metadata/XpathMetadataFieldExtractorTest.java index 66aed5eb..69839116 100644 --- a/src/test/java/nl/nn/testtool/metadata/XpathMetadataFieldExtractorTest.java +++ b/src/test/java/nl/nn/testtool/metadata/XpathMetadataFieldExtractorTest.java @@ -66,6 +66,15 @@ public void whenXpathFindsSomethingThenDelegateNotAccessed() throws Exception { assertEquals("My second value", instance.extractMetadata(report)); } + @Test + public void whenXpathProducesBlankForFirstThenLastStillSearched() throws Exception { + Report report = getReportToTestBlankXpathMatch(); + XpathMetadataFieldExtractor instance = new XpathMetadataFieldExtractor(); + instance.setExtractFrom("all"); + instance.setXpath("/one/two"); + assertEquals("My second value", instance.extractMetadata(report)); + } + private Report getReport() { TestTool testTool = new TestTool(); Report report = new Report(); @@ -86,4 +95,25 @@ private Report getReport() { report.setCheckpoints(checkpoints); return report; } + + private Report getReportToTestBlankXpathMatch() { + TestTool testTool = new TestTool(); + Report report = new Report(); + List checkpoints = new ArrayList<>(); + report.setTestTool(testTool); + Checkpoint checkpoint = new Checkpoint(); + checkpoints.add(checkpoint); + checkpoint.setReport(report); + checkpoint.setName("SessionKey anotherKey"); + checkpoint.setMessage(""); + checkpoint.setType(Checkpoint.TYPE_STARTPOINT); + checkpoint = new Checkpoint(); + checkpoints.add(checkpoint); + checkpoint.setReport(report); + checkpoint.setName("SessionKey mySessionKey"); + checkpoint.setMessage("My second value"); + checkpoint.setType(Checkpoint.TYPE_ENDPOINT); + report.setCheckpoints(checkpoints); + return report; + } }