---
- debug:
    msg: "START junos_lldp_interfaces deleted integration tests on connection={{ ansible_connection }}"

- name: get supported protocols
  junos_command:
    commands: show lldp
  register: result
  ignore_errors: yes

- name: lldp supported
  set_fact:
    lldp_supported: True
  when: not result.failed

- name: lldp not supported
  set_fact:
    lldp_supported: False
  when: result.failed

- block:
    - include_tasks: _remove_config.yaml

    - set_fact:
        expected_deleted_output:
          - name: ge-0/0/1

    - name: Configure initial state for lldp interfaces
      junos_lldp_interfaces: &initial
        config:
          - name: ge-0/0/1
          - name: ge-0/0/2
            enabled: False
        state: merged
      register: result

    - name: Delete the provided lldp interface configuration from running configuration
      junos_lldp_interfaces: &deleted
        config:
        - name: ge-0/0/2
        state: deleted
      register: result

    - name: Assert the configuration is reflected on host
      assert:
        that:
          - "{{ expected_deleted_output | symmetric_difference(result['after']) |length == 0 }}"

    - name: Delete the provided lldp interface configuration from running configuration (IDEMPOTENT)
      junos_lldp_interfaces: *deleted
      register: result

    - name: Assert that the previous task was idempotent
      assert:
        that:
          - "result['changed'] == false"

    - name: Configure initial state for interface
      junos_lldp_interfaces: *initial
      register: result

    - name: Delete the all lldp interface configuration from running configuration
      junos_lldp_interfaces:
        state: deleted
      register: result

    - name: Assert the configuration is reflected on host
      assert:
        that:
          - "{{ result['after'] == []}}"

    - name: Delete the all lldp interface configuration from running configuration (IDEMPOTENT)
      junos_lldp_interfaces:
        state: deleted
      register: result

    - name: Assert that the previous task was idempotent
      assert:
        that:
          - "result['changed'] == false"

  always:
    - include_tasks: _remove_config.yaml
  when: lldp_supported

- debug:
    msg: "END junos_lldp_interfaces deleted integration tests on connection={{ ansible_connection }}"
