How to Test Dynamic Logic

This page describes the process of testing dynamic logic using the Test Dynamic Logic Integration Point. A Unit Under Test (UUT) is the dynamic logic to test. A test case is a dynamic logic that tests the UUT.

Step 1 - Setting up the Unit Under Test

Create a dynamic logic function to test. For example, a function that concatenates the first name and the last name. The UUT uses a NAME FORMAT signature, which accepts a Person entity and returns a character string.

Let the code for this dynamic logic be NAMEFORMAT_SIMPLE.

nf = ""
if (person.initials) nf += person.initials + " "
if (person.name) nf += person.name
return nf

There can be multiple scenarios to consider.

  • both first and last names have a value

  • only last name has a value

You can create a separate test case for each scenario.

Step 2 - Setting up a Test Case

The test case is a dynamic logic that tests the UUT. Our test case tests an existing person, say 12345, with first name Bill and last name Johnson. The test case checks for the successful execution of the UUT. It adds a message No results in the logs when the UUT does not return any value.

The code for this dynamic logic is: NAMEFORMAT_SIMPLE_TEST01.

// Assuming that there is a person with code 12345
def testperson = lookUpPerson("12345")

// call the UUT with the test person
def result = test( "NAMEFORMAT_SIMPLE", [
    "person" : testperson
])

if (result) {
    log.info("Result=" + result)
    return "Bill Johnson".equals(result)
}
else {
// if result is null, the test case has failed
    log.error("No result")
    return false
}

Step 3 - Call the Test Dynamic Logic API

The following web service executes the test case.

HTTP Method

POST

Base URL

http://<host>:<port>/<context-root>/testdynamiclogic/NAMEFORMAT_SIMPLE_TEST01

Response

Error Code

Description

200

The test is successful and the unit under test(NAMEFORMAT_SIMPLE) executes successfully.

400

The test failed, and the UUT does not return any value.