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

- name: invalid configuration in check mode
  eos_config:
     lines:
         - ip address 119.31.1.1 255.255.255.256
     parents: interface Loopback911
  become: yes
  check_mode: 1
  vars:
    ansible_eos_use_sessions: 1
  register: result
  ignore_errors: yes

- assert:
   that:
   - "result.msg is defined"
   - "result.failed == true"
   - "'Invalid input' in result.msg"

- name: valid configuration in check mode
  eos_config:
    before:
      - "no ip access-list test"
    src: basic/cmds.j2
  become: yes
  check_mode: yes
  register: config

- name: check if session is removed
  eos_command:
    commands:
      - show configuration sessions | json
  become: yes
  register: result

- assert:
   that:
     - "config.session not in result.stdout[0].sessions"

- name: configuration in check mode + no config session
  eos_config:
     lines:
         - ip address 119.31.1.1 255.255.255.254
     parents: interface Loopback911
  become: yes
  check_mode: 1
  vars:
    ansible_eos_use_sessions: 0
  register: result
  ignore_errors: yes

- assert:
   that:
   - "result.failed == true"

- name: invalid configuration in check mode + no config session
  eos_config:
     lines:
         - ip address 119.31.1.1 255.255.255.256
     parents: interface Loopback911
     diff_against: running
  become: yes
  check_mode: 1
  vars:
    ansible_eos_use_sessions: 0
  register: result
  ignore_errors: yes

- assert:
   that:
   - "result.changed == true"

- name: valid configuration in check mode + no config session
  eos_config:
     lines:
         - ip address 119.31.1.1 255.255.255.255
     parents: interface Loopback911
     diff_against: running
  become: yes
  check_mode: yes
  register: result
  vars:
    ansible_eos_use_sessions: 0

- assert:
   that:
   - "result.changed == true"
   - "'session' not in result"

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