---
  name: "Demo17"
  description: "A demo showing the condition handler in action."
  tasks:
    A Fake Task:
      description: "An example Task with made up data to test the condition handler. Notice the absence of a handler."
      blocking: true
      parameters:
        null value: null
        number: 42
        string: "hello, world"
        objectA:
          description: "there's another object just like me"
        objectB:
          description: "there's another object just like me"
    Test Condition Handler:
      description: "Task to reference the previous task and test the condition handler"
      blocking: true
      handler: "../taskhandlers/conditionHandler"
      parameters:
        conditions:
          is the null value null?:
            valueA: "$[tasks.A Fake Task.parameters.null value]"
            operator: "IS"
            valueB: null
          is the null value not null?:
            valueA: "$[tasks.A Fake Task.parameters.null value]"
            operator: "IS NOT"
            valueB: null
          is number 42?:
            valueA: "$[tasks.A Fake Task.parameters.number]"
            operator: "IS"
            valueB: 42
          is number not 42?:
            valueA: "$[tasks.A Fake Task.parameters.number]"
            operator: "IS NOT"
            valueB: 42
          is number greater than 42?:
            valueA: "$[tasks.A Fake Task.parameters.number]"
            operator: "greater than"
            valueB: 42
          is number greater than or equals 42?:
            valueA: "$[tasks.A Fake Task.parameters.number]"
            operator: "greater or equals"
            valueB: 42
          is number less than 42?:
            valueA: "$[tasks.A Fake Task.parameters.number]"
            operator: "less than"
            valueB: 42
          is number less than or equals 42?:
            valueA: "$[tasks.A Fake Task.parameters.number]"
            operator: "less or equals"
            valueB: 42
          is the string hello, world?:
            valueA: "$[tasks.A Fake Task.parameters.string]"
            operator: "equals"
            valueB: "hello, world"
          is the string not hello, world?:
            valueA: "$[tasks.A Fake Task.parameters.string]"
            operator: "not equals"
            valueB: "hello, world"
          does the objectA match objectB?:
            valueA: "$[tasks.A Fake Task.parameters.objectA]"
            operator: "match"
            valueB: "$[tasks.A Fake Task.parameters.objectB]"
          does the objectA not match objectB?:
            valueA: "$[tasks.A Fake Task.parameters.objectA]"
            operator: "!="
            valueB: "$[tasks.A Fake Task.parameters.objectB]"
          does the objectA match valueB?:
            valueA: "$[tasks.A Fake Task.parameters.objectA]"
            operator: "match"
            valueB:
              description: "there's another object just like me"
          is the non existing property null?:
            valueA: "$[tasks.A Fake Task.parameters.invalid property of data]"
            operator: "match"
            valueB: null
    is the null value null?:
      blocking: true
      handler: "../taskhandlers/logHandler"
      skipIf: "$[tasks.Test Condition Handler.parameters.conditions.is the null value null?.invalid]"
      parameters:
        level: "info"
        log: "\n\nis the null value null? if you see this, the answer's YES\n"
    is the null value not null?:
      blocking: true
      handler: "../taskhandlers/logHandler"
      skipIf: "$[tasks.Test Condition Handler.parameters.conditions.is the null value not null?.invalid]"
      parameters:
        level: "info"
        log: "\n\nis the null value not null? if you see this, the answer's YES\n"
    is number 42?:
      blocking: true
      handler: "../taskhandlers/logHandler"
      skipIf: "$[tasks.Test Condition Handler.parameters.conditions.is number 42?.invalid]"
      parameters:
        level: "info"
        log: "\n\nis number 42? if you see this, the answer's YES\n"
    is number not 42?:
      blocking: true
      handler: "../taskhandlers/logHandler"
      skipIf: "$[tasks.Test Condition Handler.parameters.conditions.is number not 42?.invalid]"
      parameters:
        level: "info"
        log: "\n\nis number not 42? if you see this, the answer's YES\n"
    is number greater than 42?:
      blocking: true
      handler: "../taskhandlers/logHandler"
      skipIf: "$[tasks.Test Condition Handler.parameters.conditions.is number greater than 42?.invalid]"
      parameters:
        level: "info"
        log: "\n\nis number greater than 42? if you see this, the answer's YES\n"
    is number greater than or equals 42?:
      blocking: true
      handler: "../taskhandlers/logHandler"
      skipIf: "$[tasks.Test Condition Handler.parameters.conditions.is number greater than or equals 42?.invalid]"
      parameters:
        level: "info"
        log: "\n\nis number greater than or equals 42? if you see this, the answer's YES\n"
    is number less than 42?:
      blocking: true
      handler: "../taskhandlers/logHandler"
      skipIf: "$[tasks.Test Condition Handler.parameters.conditions.is number less than 42?.invalid]"
      parameters:
        level: "info"
        log: "\n\nis number less than 42? if you see this, the answer's YES\n"
    is number less than or equals 42?:
      blocking: true
      handler: "../taskhandlers/logHandler"
      skipIf: "$[tasks.Test Condition Handler.parameters.conditions.is number less than or equals 42?.invalid]"
      parameters:
        level: "info"
        log: "\n\nis number less than or equals 42? if you see this, the answer's YES\n"
    is the string hello, world?:
      blocking: true
      handler: "../taskhandlers/logHandler"
      skipIf: "$[tasks.Test Condition Handler.parameters.conditions.is the string hello, world?.invalid]"
      parameters:
        level: "info"
        log: "\n\nis the string hello, world? if you see this, the answer's YES\n"
    is the string not hello, world?:
      blocking: true
      handler: "../taskhandlers/logHandler"
      skipIf: "$[tasks.Test Condition Handler.parameters.conditions.is the string not hello, world?.invalid]"
      parameters:
        level: "info"
        log: "\n\nis the string not hello, world? if you see this, the answer's YES\n"
    does the objectA match objectB?:
      blocking: true
      handler: "../taskhandlers/logHandler"
      skipIf: "$[tasks.Test Condition Handler.parameters.conditions.does the objectA match objectB?.invalid]"
      parameters:
        level: "info"
        log: "\n\ndoes the objectA match objectB? if you see this, the answer's YES\n"
    does the objectA not match objectB?:
      blocking: true
      handler: "../taskhandlers/logHandler"
      skipIf: "$[tasks.Test Condition Handler.parameters.conditions.does the objectA not match objectB?.invalid]"
      parameters:
        level: "info"
        log: "\n\ndoes the objectA not match objectB? if you see this, the answer's YES\n"
    does the objectA match valueB?:
      blocking: true
      handler: "../taskhandlers/logHandler"
      skipIf: "$[tasks.Test Condition Handler.parameters.conditions.does the objectA match valueB?.invalid]"
      parameters:
        level: "info"
        log: "\n\ndoes the objectA match valueB? if you see this, the answer's YES\n"
    is the non existing property null?:
      blocking: true
      handler: "../taskhandlers/logHandler"
      skipIf: "$[tasks.Test Condition Handler.parameters.conditions.is the non existing property null?.invalid]"
      parameters:
        level: "info"
        log: "\n\nis the non existing property null? if you see this, the answer's YES\n"
