[ 
https://issues.apache.org/jira/browse/NIFI-11035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17677493#comment-17677493
 ] 

Daniel Stieglitz edited comment on NIFI-11035 at 1/16/23 7:04 PM:
------------------------------------------------------------------

[~exceptionfactory] Thanks for the clarification. I have a specific question 
for conversion to JUnit 5 assertions.
In 
nifi/nifi-commons/nifi-utils/src/test/groovy/org/apache/nifi/util/TestFormatUtilsGroovy.groovy
 in test testMakeWholeNumberTimeShouldHandleMetricConversions

I tried replacing 

{code:java}
results.every { String key, List values ->
            assert values.first() == SCENARIOS[key].expectedValue
            assert values.last() == SCENARIOS[key].expectedUnits
        }
{code}

with

{code:java}
 results.entrySet().forEach(entry -> {
            assertEquals(SCENARIOS.get(entry.getKey()).expectedValue, 
entry.getValue().get(0))
            assertEquals(SCENARIOS.get(entry.getKey()).expectedUnits, 
entry.getValue().get(1))
        })
{code}

When I do that I see the unit test fails with
{code:java}
junit.framework.AssertionFailedError: expected:<750000> but was:<750>
Expected :750000
Actual   :750
{code}

When I added a log statement within the original Groovy code (in the closure) I 
noticed "every" does not iterate through all the results only the first one 
which is not what "every" is supposed to do. So that explains why the unit 
passed but it seems it really should not. Do you have any insight as to why I 
would see this behavior?



was (Author: JIRAUSER294662):
[~exceptionfactory] Thanks for the clarification. I have a specific question 
for conversion to JUnit 5 assertions.
In 
nifi/nifi-commons/nifi-utils/src/test/groovy/org/apache/nifi/util/TestFormatUtilsGroovy.groovy
 in test testMakeWholeNumberTimeShouldHandleMetricConversions

I tried replacing 

{code:java}
results.every { String key, List values ->
            assert values.first() == SCENARIOS[key].expectedValue
            assert values.last() == SCENARIOS[key].expectedUnits
        }
{code}

with

{code:java}
 results.entrySet().forEach(entry -> {
            assertEquals(SCENARIOS.get(entry.getKey()).expectedValue, 
entry.getValue().get(0))
            assertEquals(SCENARIOS.get(entry.getKey()).expectedUnits, 
entry.getValue().get(1))
        })
{code}

When I do that I see the unit test fails with
{code:java}
junit.framework.AssertionFailedError: expected:<750000> but was:<750>
Expected :750000
Actual   :750
{code}

When I added a log statement within the original Groovy code (in the closure) I 
noticed "every" does not iterate through all the results only the first one 
which is not what "every" is supposed to do. Do you have any insight as to why 
I would see this behavior?


> Replace remaining JUnit 4 assertions in nifi-commons with JUnit 5 assertions
> ----------------------------------------------------------------------------
>
>                 Key: NIFI-11035
>                 URL: https://issues.apache.org/jira/browse/NIFI-11035
>             Project: Apache NiFi
>          Issue Type: Sub-task
>            Reporter: Daniel Stieglitz
>            Assignee: Daniel Stieglitz
>            Priority: Minor
>
> A quick search nifi-commons for "org.junit.Assert" indicates there are over 
> 50 cases where JUnit 4 assertions are still being used. These should be 
> replaced with JUnit 5 assertions.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to