---
- debug:
    msg: "Start nxos_interfaces replaced integration tests connection={{ ansible_connection }}"

- block:
  - set_fact: test_int1="{{ nxos_int1 }}"
  - name: setup1
    cli_config: &cleanup
      config: |
        default interface {{ test_int1 }}

  - block:
    - name: setup2
      cli_config:
        config: |
          interface {{ test_int1 }}
            description Ansible setup

    - name: Gather interfaces facts
      nxos_facts: &facts
        gather_subset:
          - '!all'
          - '!min'
        gather_network_resources: interfaces

    - name: Replaced
      nxos_interfaces: &replaced
        config:
          - name: "{{ test_int1 }}"
            description: 'Configured by Ansible'
            enabled: True
        state: replaced
      register: result

    - assert:
        that:
          - "ansible_facts.network_resources.interfaces|symmetric_difference(result.before)|length == 0"
          - "result.changed == true"
          - "'interface {{ test_int1 }}' in result.commands"
          - "'description Configured by Ansible' in result.commands"
          - "'no shutdown' in result.commands"

    - name: Gather interfaces post facts
      nxos_facts: *facts

    - assert:
        that:
          - "ansible_facts.network_resources.interfaces|symmetric_difference(result.after)|length == 0"

    - name: Idempotence - Replaced
      nxos_interfaces: *replaced
      register: result

    - assert:
        that:
          - "result.changed == false"
          - "result.commands|length == 0"

    always:
    - name: teardown
      cli_config: *cleanup

  when: platform is not search('N3[5KL]|N[56]K|titanium')
