Search

Chapter 3. Using the Test Scenario designer in Business Central

download PDF

Red Hat Decision Manager ships with two designers for you to create and run test scenarios to validate your business rules and data. The difference between them is that by using the Test Scenario designer you can create and run both DMN-based test scenarios as well as rules-based test scenarios whereas by using the Test Scenario (Legacy) designer you can create and run only rules-based test scenarios. Both are supported by Red Hat for production use. The sections covered in this chapter will help you understand how to use the Test Scenario designer to create and run test scenarios.

Note

Currently, the Test Scenario designer can only use the default KIE session.

3.1. Test Scenario designer

Red Hat Decision Manager now comes with a new Test Scenario designer that fully supports DMN model testing. This designer provides a new and enhanced user experience when you test or validate DMN-based test scenarios. The aim of the new designer is to help the user test the proper functioning of the created rules and knowledge bases.

3.1.1. Test Scenario designer layout

The designer introduces a tabular layout which helps you in defining a scenario template and all the associated test cases. The designer layout consists of a table which has a header and the individual rows. The header consists of three parts, the GIVEN and EXPECT row, a row with instances, and a row with corresponding fields. The header is also known as test scenario template and the individual rows are called test scenarios definitions.

The test scenario template or header has the following two parts:

  • GIVEN data objects and their fields - represents the input information
  • EXPECT data objects and their fields - represents the objects and their fields whose exact values are checked based on the given information and which also constitutes the expected result.

The test scenarios definitions represent the separate test cases of a template.

You can access the Project Explorer from the left panel of the designer whereas from the right panel you can access the Test Tools and the Test Report. You can use the Test Tools from the right panel to configure the data object mappings (Test Editor) or for accessing the cheat sheet (Scenario Cheatsheet) that contain notes which you can use as reference.

3.1.2. Importing data objects

Test Scenario designer loads all data objects that are located in the same package as the test scenario. You can view all the data objects from the Data Objects tab in the designer. The loaded data objects are also displayed in the Test Editor tab in the Test Tools panel.

You need to close and reopen the designer in case the data objects change (for example, when a new data object is created or when an existing one is deleted). Select a data object from the list to display its fields and the field types.

In case you want to use a data object located in a different package than the test scenario, you need to import the data object first. Follow the procedure below to import a data object for rules-based test scenarios.

Note

You cannot import any data objects while creating DMN-based test scenarios. DMN-based test scenarios does not use any data objects from the project but uses the custom data types defined in the DMN file.

Procedure

  1. Go to Project Explorer panel in the Test Scenario designer.
  2. From Test Scenario, select a test scenario.
  3. Select Data Objects tab and click New Item.
  4. In the Add import window, choose the data object from the drop-down list.
  5. Click Ok and then Save.
  6. Close and reopen the Test Scenario designer to view the new data object from the data objects list.

3.1.3. Importing a test scenario

You can import an existing test scenario using the Import Asset button in the Asset tab from the project view.

Procedure

  1. In Business Central, go to Menu Design Projects and click the project name.
  2. From the project’s Asset tab, click Import Asset.
  3. In the Create new Import Asset window,

    • Enter the name of the import asset.
    • Select the package from the Package drop-down list.
    • From Please select a file to upload, click Choose File…​ to browse to test scenario file.
  4. Select the file and click Open.
  5. Click Ok and the test scenario opens in the review designer.

3.2. Basic operations using the Test Scenario designer

You can perform the following operations using the Test Scenario designer:

  • Save a test scenario
  • Delete a test scenario
  • Rename a test scenario
  • Copy a test scenario
  • Run a test scenario
  • Download a test scenario
  • Switch between different versions of a test scenario
  • View or Hide Alerts

3.2.1. Saving a test scenario

You can save a test scenario at any time while creating a test scenario template or defining the test scenarios.

Procedure

  1. From the Test Scenario designer toolbar on the upper-right, click Save.
  2. On the Confirm Save window,

    1. If you wish to add a comment regarding the test scenario, click add a comment.
    2. Click Save again.

A message stating that the test scenario was saved successfully appears on the screen.

3.2.2. Deleting a test scenario

You can delete existing test scenarios that were created using the Test Scenario designer.

Procedure

  1. From the Test Scenario designer toolbar on the upper-right, click Delete.
  2. In the Confirm Delete window,

    • To add a comment regarding the deletion of the test scenario, click add a comment.
    • Click Delete.

A message stating that the test scenario was deleted successfully appears on the screen.

3.2.3. Renaming a test scenario

You can rename existing test scenarios by using the Rename button from the upper-right toolbar in the designer.

Procedure

  1. From the Test Scenario designer toolbar on the upper-right, click Rename.
  2. In the Rename Asset window,

    1. Enter a name in the Asset Name field.
    2. If you wish to add a comment, click add a comment.
    3. Click Rename.

      Note

      Clicking on Rename simply renames the test scenario file.

    4. From the Test Scenario designer toolbar on the upper-right, click Save.
    5. In the Confirm Save window,

      1. If you wish to add a comment, click add a comment.
      2. Click Save again.
    6. Alternately, you could click Save and Rename to save and rename the scenario at the same time.

A message stating that the test scenario was renamed successfully appears on the screen.

3.2.4. Copying a test scenario

You can copy an existing test scenario to the same package or to some other package by using the Copy button from the upper-right toolbar.

Procedure

  1. From the Test Scenario designer toolbar on the upper-right, click Copy.
  2. In the Make a Copy window,

    1. Enter a name in the New Name field.
    2. Select the package you want to copy the test scenario to.
    3. Optionally, to add a comment, click add a comment.
    4. Click Make a Copy.

A message stating that the test scenario was copied successfully appears on the screen.

3.2.5. Downloading a test scenario

You can download a copy of the test scenario to your local machine for future reference or as backup.

Procedure

  1. From the Test Scenario designer toolbar on the upper-right, click Download.

The .scesim file is downloaded to your local machine.

3.2.6. Switching between versions of a test scenario

Business Central provides you the ability to switch between the various versions of a test scenario. Every time you save the scenario, a new version of the scenario is listed under Latest Versions. To use this feature, you must save the test scenario file at least once.

Procedure

  1. From the Test Scenario designer toolbar on the upper-right, click Latest Version. All the versions of the file are listed under Latest Version, if they exist.
  2. Click the version you want to work on.

    The selected version of the test scenario opens in the Test Scenario designer.

  3. From the designer toolbar, click Restore.
  4. In the Confirm Restore,

    1. To add a comment, click add a comment.
    2. Click Restore to confirm.

A message stating that the selected version has been reloaded successfully in the designer appears on the screen.

3.2.7. View/hide the alerts panel

In the Test Scenario designer, the message panel appears at the bottom of the designer with the test results and the Alert messages. From the designer’s toolbar on the upper-right, click Hide Alerts/View Alerts to enable or disable the reporting panel.

3.3. Contextual menu options

The Test Scenario designer provides contextual menu options, which enables you to perform basic operations on the table such as adding, deleting, and, duplicating rows and columns. To use the contextual menus, you need to right-click a table element. Menu options differ based on the table element you select.

Table 3.1. Contextual menu options
Table elementCell labelAvailable context menu options

Header

# & Scenario description

Insert row below

GIVEN & EXPECT

Insert leftmost column, Insert rightmost column, Insert row below

INSTANCE 1, INSTANCE 2 & PROPERTY 1, PROPERTY 2

Insert column left, Insert column right, Delete column, Insert row below

Rows

 

Insert column left, Insert column right, Delete column, Insert row above, Insert row below, Duplicate row, Delete row

Table 3.2. Description of table interactions
Table interactionDescription

Insert leftmost column

Inserts a new leftmost column (in either the GIVEN or EXPECT section of the table based on user selection).

Insert rightmost column

Inserts a new rightmost column (in either the GIVEN or EXPECT section of the table based on user selection).

Insert column left

Inserts a new column to the left of the selected column. The new column is of the same type as the selected column (in either the GIVEN or EXPECT section of the table based on user selection).

Insert column right

Inserts a new column to the right of the selected column. The new column is of the same type as the selected column (in either the GIVEN or EXPECT section of the table based on user selection).

Delete column

Deletes the selected column.

Insert row above

Inserts a new row above the selected row.

Insert row below

Inserts a new row below the selected row. If invoked from a header cell, inserts a new row with index 1.

Duplicate row

Duplicates the selected row.

Delete row

Deletes the selected row.

The Insert column right or Insert column left context menu options behave differently,

  • if the selected column does not have a type defined, a new column without a type is added.
  • if the selected column has a type defined, either a new empty column or a column with the parent instance type is created.
  • if the action is performed from an instance header, a new column without a type is created.
  • if the action is performed from a property header, a new column with the parent instance type is created.

3.4. Test scenario template

Before specifying test scenario definitions, you need to create a test scenario template. The header of the test scenario table defines the template for each scenario. You need to set the types of the instance and property headers for both the GIVEN and EXPECT sections. Instance headers map to a particular data object (a fact), whereas the property headers map to a particular field of the corresponding data object.

Using the Test Scenario designer, you can create test scenario templates for both rule-based scenarios as well as DMN-based scenarios.

3.4.1. Creating a test scenario template for rule-based test scenarios

Create a test scenario template for rule-based scenarios by following the procedure below to validate your rules and data.

Procedure

  1. In Business Central, go to Menu Design Projects and click the project for which you want to create the test scenario.
  2. Click Add Asset Test Scenario.
  3. Enter a Test Scenario name and select the appropriate Package. The package you select must contain all the required data objects and rule assets have been assigned or will be assigned.
  4. Select RULE as the Source type.
  5. Click Ok to create and open the test scenario in the Test Scenario designer.
  6. To map the GIVEN column header to a data object,

    1. Click an instance header in the GIVEN section.
    2. Select the data object from the Test Editor tab.
    3. Click Add.
  7. To insert more properties of the data object, right-click the property header and select Insert column right or Insert column left as required.
  8. To map a data object field to a property cell,

    1. Click a property cell.
    2. Select the data object field from the Test Editor tab.
    3. Click Add.
  9. To map the EXPECT column header to a data object,

    1. Click an instance header in the EXPECT section.
    2. Select the data object from the Test Editor tab.
    3. Click Add.
  10. To insert more properties of the data object, right-click the property header and select Insert column right or Insert column left as required.
  11. To map a data object field to a property cell,

    1. Click a property cell.
    2. Select the data object field from the Test Editor tab.
    3. Click Add.

Use the contextual menu to add or remove columns as needed.

After you have created and mapped both the GIVEN & EXPECT columns to a data object & its properties, you have to define the test scenario which comes next.

3.4.2. Concept of aliases (for rule-based scenarios only)

In the Test Scenario designer, once you map a header cell with a data object, the data object is removed from the Test Editor tab in the Test Tools panel. You can re-map a data object to another header cell by using the concept of Alias. Aliases enable you to specify multiple instances of the same data object. Ensure that the aliases are uniquely named. By doing so, the data object again becomes available in the Test Editor tab for remapping. To introduce an alias, double click on a corresponding header cell and manually change the name. You can create property aliases as well. This allows you to rename the used properties directly in the table.

3.5. Test template for DMN-based test scenarios

Business Central automatically generates the template for every DMN-based test scenario asset and it contains all the specified inputs and decisions of the related DMN model. For each input node in the DMN model, a GIVEN column is added, whereas each decision node is represented by an EXPECT column. You can modify the default template at any time as per your needs. Also, to test only a specific part of the whole DMN model, its possible to remove the generated columns as well as move decision nodes from the EXPECT to the GIVEN section.

3.5.1. Creating a test scenario template for DMN-based test scenarios

Create a test scenario template for DMN-based scenarios by following the procedure below to validate your DMN models.

Procedure

  1. In Business Central, go to Menu Design Projects and click the project that you want to create the test scenario for.
  2. Click Add Asset Test Scenario.
  3. Enter a Test Scenario name and select the appropriate Package.
  4. Select DMN as the Source type.
  5. Select an existing DMN asset using the Choose DMN asset option.
  6. Click Ok to create and open the test scenario in the Test Scenario designer.

The template is automatically generated and you can modify it as per your needs.

3.6. Defining a test scenario

After creating a test scenario template you have to define the test scenario next. The rows of the test scenario table define the individual test scenarios. A test scenario has a unique index number, description, set of input values (the Given values), and a set of output values (the Expect values).

Prerequisite

Ensure that the test scenario template exists for the selected test scenario.

Procedure

  1. Open the test scenario in the Test Scenario designer.
  2. Enter a description of the test scenario and fill in required values in each cell of the row.
  3. Use the contextual menu to add or remove rows as required.

    Double click a cell to start inline editing. To skip a particular cell from test evaluation, leave it empty.

After defining the test scenario, you can run the test next.

3.7. List and map collections in Test Scenario designer

Test Scenario designer supports list and map collections for both DMN-based as well as rules-based test scenarios. You can define a collection like a list or a map ​as the value of a particular cell in both GIVEN and EXPECT columns.

Procedure

  1. Set the column type first (use a field whose type is a list or a map).
  2. Double click a cell in the column to input a value.
  3. In the collection editor popup, click Add new item.
  4. Enter the required value and click the check icon dmn datatype constraints tickmark to save each collection item that you add.
  5. Click Save.

    To delete an item from the collection, click the bin icon in the collection popup editor. Click Remove to delete the collection itself.

3.8. Expressions syntax

The test scenario designer supports different expression languages for both rule-based and DMN-based test scenarios. While rule-based test scenarios support a basic expression language, DMN-based test scenarios support the FEEL expression language.

3.8.1. Expression syntax in rule-based scenarios

The following rule-based test scenario definition expressions are supported by Test Scenario designer:

Table 3.3. Description of expressions syntax
OperatorDescription

=

Specifies equal to a value. This is default for all columns and is the only operator supported by the GIVEN column.

=, =!, <>

Specifies inequality of a value. This operator can be combined with other operators.

<, >, <=, >=

Specifies a comparison: less than, greater than, less or equals than, and greater or equals than.

[value1, value2, value3]

Specifies a list of values. If one or more values are valid, the scenario definition is evaluated as true.

expression1; expression2; expression3

Specifies a list of expressions. If all expressions are valid, the scenario definition is evaluated as true.

Note

An empty cell is skipped from evaluation. To define an empty string, use =,[], or ;. To define a null value, use null.

Table 3.4. Example expressions
ExpressionDescription

-1

The actual value is equal to -1.

< 0

The actual value is less than 0.

! > 0

The actual value is not greater than 0.

[-1, 0, 1]

The actual value is equal to either -1 or 0 or 1.

<> [1, -1]

The actual value is neither equal to 1 nor -1.

! 100; 0

The actual value is not equal to 100 but is equal to 0.

!= < 0; <> > 1

The actual value is neither less than 0 nor greater than 1.

<> <= 0; >= 1

The actual value is neither less than 0 nor equal to 0 but is greater than or equal to 1.

Note

You can refer to the supported commands and syntax in the Scenario Cheatsheet tab on the Test Tools panel on the right of the Test Scenario designer.

3.8.2. Expression syntax in DMN-based scenarios

The following data types are supported by the DMN-based test scenarios in the Test Scenario designer:

Table 3.5. Data types supported by DMN-based scenarios
Supported data typesDescription

numbers & strings

Strings must be delimited by quotation marks, for example, "John Doe", "Brno" or "".

boolean values

true, false, and null.

dates and time

For example, date("2019-05-13") or time("14:10:00+02:00").

functions

 

contexts

For example, {x : 5, y : 3}.

ranges and lists

For example, [1 .. 10] or [2, 3, 4, 5].

Note

You can refer to the supported commands and syntax in the Scenario Cheatsheet tab on the Test Tools panel on the right side of the Test Scenario designer.

3.9. Running a test scenario

After creating a test scenario template and defining the test scenarios, you can run the tests to validate your business rules and data.

Procedure

  1. At the top of the Test Scenario designer, click Run Test Run Test icon icon.
  2. The Test Report panel pops out from the right of the designer and displays the test result overview and the scenario status.
  3. After the tests are executed, click View Alerts to open the Alerts panel at the bottom of the designer for the error messages.
  4. In case the tests fails, review the error messages. Messages with a red cross indicate test failures where as those with a green check mark indicate successful tests.

    In the designer, erroneous rows or cells are highlighted in red.

  5. Make the necessary changes and run the test again till the scenario passes.

3.10. Running a test scenario locally

In Red Hat Decision Manager, you can run tests in two ways. One way is click the Run Test Run Test icon icon at the top of the Test Scenarios designer. The other way is to run the tests locally using the command line.

Procedure

  1. In Business Central, go to Menu Design Projects and click the project name.
  2. On the Project’s home page, select the Settings tab.
  3. Select git URL and click the Clipboard Copy to clipboard icon to copy the git url.
  4. Open a command terminal and navigate to the directory where you want to clone the git project.
  5. From your project’s directory run the following command:

    git clone your_git_project_url

    Replace your_git_project_url with relevant data like git://localhost:9418/MySpace/ProjectTestScenarios.

  6. Once the project is successfully cloned, navigate to the git project directory and execute the following command:

    mvn clean test

    Your project’s build information and the test results (such as, the number of tests run and whether the test run was a success or not) are displayed in the command terminal. In case of errors, correct them and run the command again.

3.11. Creating test scenario using the sample Mortgages project

This chapter illustrates creating and executing a test scenario from the sample Mortgages project shipped with Business Central using the Test Scenario designer. The test scenario example in this chapter is based on the Pricing loans guided decision table from the Mortgages project.

Procedure

  1. In Business Central, go to Menu Design Projects and click Mortgages.
  2. If the project is not listed under Projects, from MySpace, click the three dots ( dotdotdotbutton ) in the upper-right corner of the page.
  3. Click Try Samples Mortgages OK.

    The Assets window appears.

  4. Click Add Asset Test Scenario.
  5. Enter scenario_pricing_loans as the Test Scenario name and select the default mortgages.mortgages package from the Package drop-down list.

    The package you select must contain all the required rule assets.

  6. Click Ok to create and open the test scenario in the Test Scenario designer.
  7. Expand Project Explorer and verify the following:

    • Applicant, Bankruptcy, IncomeSource, and LoanApplication data objects exist.
    • Pricing loans guide decision table exists.
    • Verify that the new test scenario is listed under Test Scenario
  8. After verifying that everything is in place, return to the Model tab of the test scenarios designer and define the GIVEN and EXPECT data for the scenario, based on the available data objects.

    Figure 3.1. A blank Test Scenario designer

    test scenarios preview editor
  9. Define the GIVEN column details,

    1. Click the cell named INSTANCE 1 under the GIVEN column header.
    2. From Test Tools Test Editor, select LoanApplication data object.
    3. Click Add.
  10. To create properties of the data object, right-click the property cell and select Insert column right or Insert column left as required. For this example, you need to create two more property cells under the GIVEN column.
  11. Click the first property cell,

    1. From Test Tools Test Editor, select and expand the LoanApplication data object.
    2. Click amount and then Add to map the data object field to the property cell.
  12. Click the second property cell,

    1. From Test Tools Test Editor, select and expand the LoanApplication data object.
    2. Click deposit and then Add.
  13. Click the third property cell,

    1. From Test Tools Test Editor, select and expand the LoanApplication data object.
    2. Click lengthYears and then Add.
  14. Right-click LoanApplication header cell and select Insert column right. A new GIVEN column to the right is created.
  15. Click the new header cell,

    1. From Test Tools Test Editor, select the IncomeSource data object.
    2. Click Add to map the data object to the header cell.
  16. Click the property cell below IncomeSource,

    1. From Test Tools Test Editor, select and expand the IncomeSource data object.
    2. Click type and then Add to map the data object field to the property cell.

      You have now defined all the GIVEN column cells.

  17. Next, define the EXPECT column details,

    1. Click the cell named INSTANCE 2 under the EXPECT column header.
    2. From Test Tools Test Editor, select LoanApplication data object.
    3. Click Add.
  18. To create properties of the data object, right-click the property cell and select Insert column right or Insert column left as required. Create two more property cells under the EXPECT column.
  19. Click the first property cell,

    1. From Test Tools Test Editor, select and expand the LoanApplication data object.
    2. Click approved and then Add to map the data object field to the property cell.
  20. Click the second property cell,

    1. From Test Tools Test Editor, select and expand the LoanApplication data object.
    2. Click insuranceCost and then Add.
  21. Click the third property cell,

    1. From Test Tools Test Editor, select and expand the LoanApplication data object.
    2. Click approvedRate and then Add.
  22. Now for defining the test scenario, enter the following data in the first row:

    • Enter Row 1 test scenario as the Scenario Description, 150000 as the amount, 19000 as the deposit, 30 as the lenghtYears, and Asset as the type for the GIVEN column values.
    • Enter true as approved and 0 as the insuranceCost for the EXPECT column values.
  23. Next enter the following data in the second row:

    • Enter Row 2 test scenario as the Scenario Description, 100002 as the amount, 2999 as the deposit, 20 as the lenghtYears, and Job as the type for the GIVEN column values.
    • Enter true as approved and 10 as the insuranceCost for the EXPECT column values.
  24. After you have defined all GIVEN, EXPECT, and other data for the scenario, click Save in the test scenarios designer to save your work.
  25. Click Run Test in the upper-right corner to run the .scesim file.

    The test result is displayed in the Test Report panel. Click View Alerts to display messages from the Alerts section. If a test fails, refer to the messages in the Alerts section at the bottom of the window, review and correct all components in the scenario, and try again to validate the scenario until the scenario passes.

  26. Click Save in the test scenarios designer to save your work after you have made all necessary changes.
Red Hat logoGithubRedditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

© 2024 Red Hat, Inc.