---
- debug:
    msg: "START junos_lldp_interfaces merged 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_merged_output:
          - name: ge-0/0/1
          - name: ge-0/0/2
            enabled: False

    - name: Merge the provided configuration with the exisiting running configuration
      junos_lldp_interfaces: &merged
        config:
          - name: ge-0/0/1
          - name: ge-0/0/2
            enabled: False
        state: merged
      register: result

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

    - name: Merge the provided configuration with the existing running configuration (IDEMPOTENT)
      junos_lldp_interfaces: *merged
      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 merged integration tests on connection={{ ansible_connection }}"
