---
- debug:
    msg: "START cli/cli_command.yaml on connection={{ ansible_connection }}"

- block:
  - name: get output for single command
    cli_command:
      command: show version
    register: result

  - assert:
      that:
        - "result.changed == false"
        - "result.stdout is defined"

  - name: send invalid command
    cli_command:
      command: 'show foo'
    register: result
    ignore_errors: yes

  - assert:
      that:
        - "result.failed == true"
        - "result.msg is defined"

  - name: get output in JSON format
    cli_command:
      command: show version | json
    register: result

  - assert:
      that:
        - "result.changed == false"
        - "result.stdout is defined"
        - "result.json is defined"

  - name: command that does require become (should fail)
    cli_command:
      command: show running-config
    become: no
    ignore_errors: yes
    register: result

  - assert:
      that:
        - 'result.failed == true'
        - '"privileged mode required" in result.msg'
  when: "ansible_connection == 'network_cli'"

- block:
  - name: test failure for local connection
    cli_command:
      command: show version
    register: result

  - assert:
      that:
        - 'result.failed == true'
        - "'Connection type local is not valid for this module' in result.msg"
  when: "ansible_connection == 'local'"

- debug: msg="END cli/cli_command.yaml on connection={{ ansible_connection }}"
