Skip to content

Vaue lookup tokens don't work in kakfa JSON value #660

@Tobolov

Description

@Tobolov

Value lookup tokens such as $.stepname.querystr token don't work within a json value field of kafka a kafka record.
This is the case for both the produce and consume operations.

Scenario to replicate:

---
scenarioName: Demonstrate issue 2
steps:
  - name: create_app
    url: "kafka-topic:APP"
    operation: produce
    request:
      recordType: JSON
      records:
        - key: ${RANDOM.NUMBER}
          value:
            appId: $.create_app.request.records[0].key
            userId: ${RANDOM.NUMBER}
    verify:
      status: Ok
  - name: verify_app
    url: "kafka-topic:APP"
    operation: consume
    retry:
      max: 3
      delay: 1000 #ms
    request:
      consumerLocalConfigs:
        recordType: JSON
        commitSync: true
        showRecordsConsumed: true
        maxNoOfRetryPollsOrTimeouts: 3
    verify:
      size: 1
      records:
        - key:  $.create_app.request.records[0].key
          value:
            appId:  $.create_app.request.records[0].key
            userId:  $.create_app.request.records[0].value.userId

Actual record produced to Kafka:
Key: 4712019646354101240
Value:

{
	"appId": "$.create_app.request.records[0].key",
	"userId": "3430825975012614214"
}

Exception thrown:*

java.lang.RuntimeException: Assertion failed for :- 

[Demonstrate issue 2] 
	|
	|
	+---Step --> [verify_app] 

Failures:
--------- 
Assertion jsonPath '$.records[0].value.userId' with actual value '3430825975012614214' did not match the expected value '$.create_app.request.records[0].value.userId'
----------------------------------------------------------------------------------------------------------------------------------
Assertion jsonPath '$.records[0].key' with actual value '4712019646354101240' did not match the expected value '$.create_app.request.records[0].key'


	at org.jsmart.zerocode.core.runner.StepNotificationHandler.handleAssertionFailed(StepNotificationHandler.java:37)
	at org.jsmart.zerocode.core.runner.StepNotificationHandler.handleAssertion(StepNotificationHandler.java:71)
	at org.jsmart.zerocode.core.runner.ZeroCodeMultiStepsScenarioRunnerImpl.executeRetry(ZeroCodeMultiStepsScenarioRunnerImpl.java:316)
	at org.jsmart.zerocode.core.runner.ZeroCodeMultiStepsScenarioRunnerImpl.executeRetryWithSteps(ZeroCodeMultiStepsScenarioRunnerImpl.java:191)
	at org.jsmart.zerocode.core.runner.ZeroCodeMultiStepsScenarioRunnerImpl.executeSteps(ZeroCodeMultiStepsScenarioRunnerImpl.java:173)
	at org.jsmart.zerocode.core.runner.ZeroCodeMultiStepsScenarioRunnerImpl.runScenario(ZeroCodeMultiStepsScenarioRunnerImpl.java:136)
	at org.jsmart.zerocode.core.runner.ZeroCodeUnitRunner.runLeafJsonTest(ZeroCodeUnitRunner.java:223)
	at org.jsmart.zerocode.core.runner.ZeroCodeUnitRunner.runChild(ZeroCodeUnitRunner.java:127)
	at org.jsmart.zerocode.core.runner.ZeroCodeUnitRunner.runChild(ZeroCodeUnitRunner.java:51)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.jsmart.zerocode.core.runner.ZeroCodeUnitRunner.run(ZeroCodeUnitRunner.java:107)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
	at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
	at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)
	at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
	at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232)
	at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions