info:
  testName: 'ATM Tests'
  version: 2
configs:
  globalVariables:
    base_url: url.com
    api_key: "abcd"
    value: 2
    map1: 
      path1: branches1
      path: branches2
    boolean: true
    array:
      - array1
      - array4
      - array3
  inputs: 
    - default:
        X-IBM-Client-Id: X-IBM-Client-Id
        orderNumber: "3"
    - second:
        X-IBM-Client-Id: X-IBM-Client-Id
        orderNumber: "2"
steps:
  - type: request
    method: get
    url: "{{ base_url }}/bank/{{map1.path}}"
    headers:
      Authorization: "Bearer {{ api_key }}"
    var: branches
    mode: json
  - type: assert-is
    expression: branches
    value: array
  - type: assert-exists 
    expression: branches.[1]
    stoponfail: "{{ boolean }}"
  - type: assert-equals 
    expression: branches.[0].type
    value: string
    stoponfail: true    
  - type: assert-compares
    expression1: branches.[0].type
    expression2: branches.[1].type
    value: string
    stoponfail: true    
  - type: request
    method: get
    url: https://sample-api.us-east-a.apiconnect.automation.ibm.com/orders/order/AB1234
    var: "payload"
    mode: json
  - type: assert-greater 
    expression: payload_response_statusCode
    value: "{{ value }}"
    ifexists: false
    stoponfail: false
  - type: assert-less 
    expression: payload_response_statusCode
    value: "{{ value }}"
    ifexists: false
    stoponfail: false
  - type: assert-equals 
    expression: payload_response_header_Content-Type
    value: application/json
  - type: assert-in 
    expression: payload_response_header_Content-Type
    values: 
      - application/json
      - "{{ array.[2] }}"
  - type: assert-contains 
    expression: payload_response_header_Content-Type
    value: app
  - type: assert-matches 
    expression: payload_response_header_Content-Type
    value: ^[a-z]+/json
  - type: assert-exists 
    expression: "payload"  
    stoponfail: false
  - type: assert-is 
    expression: "payload.tracking_reference"
    value: "string"
    ifexists: "false" 
    stoponfail: false
  - type: assert-exists 
    expression: payload.shipped_at
    stoponfail: false
