---

- name: Remove previous login banner
  eos_config:
    lines: no banner login
    authorize: yes
    provider: "{{ eapi }}"

- name: Set login
  eos_banner:
    banner: login
    text: |
      this is my login banner
      that has a multiline
      string
    state: present
    authorize: yes
    provider: "{{ eapi }}"
  register: result

- assert:
    that:
      - "result.changed == true"
      - "result.commands.0.cmd == 'banner login'"
      - "result.commands.0.input == 'this is my login banner\nthat has a multiline\nstring'"
      # Ensure sessions contains epoc. Will fail after 18th May 2033
      - "'ansible_1' in result.session_name"

- name: Set login again (idempotent)
  eos_banner:
    banner: login
    text: |
      this is my login banner
      that has a multiline
      string
    state: present
    authorize: yes
    provider: "{{ eapi }}"
  register: result

- assert:
    that:
      - "result.changed == false"
      - "result.commands | length == 0"
      # Ensure sessions contains epoc. Will fail after 18th May 2033
      - "result.session_name is not defined"

- name: Remove login
  eos_banner:
    banner: login
    text: |
      this is my login banner
      that has a multiline
      string
    state: absent
    authorize: yes
    provider: "{{ eapi }}"
  register: result

- assert:
    that:
      - "result.changed == true"
      - "result.commands.0.cmd == 'no banner login'"
      # Ensure sessions contains epoc. Will fail after 18th May 2033
      - "'ansible_1' in result.session_name"

- name: Remove login again (idempotent)
  eos_banner:
    banner: login
    text: |
      this is my login banner
      that has a multiline
      string
    state: absent
    authorize: yes
    provider: "{{ eapi }}"
  register: result

- assert:
    that:
      - "result.changed == false"
      - "result.commands | length == 0"
      # Ensure sessions contains epoc. Will fail after 18th May 2033
      - "result.session_name is not defined"

# FIXME add in tests for everything defined in docs
# FIXME Test state:absent + test:
# FIXME Without powers ensure "privileged mode required"
