---
- include_tasks: reset_config.yml

- set_fact:
    config:
      - name: Ethernet1
        enabled: True
      - name: Ethernet2
        description: 'Configured by Ansible'
        speed: '10'
        duplex: full
        enabled: False

- eos_facts:
    gather_network_resources: interfaces
  become: yes

- name: Merge provided configuration with device configuration
  eos_interfaces:
    config: "{{ config }}"
    state: merged
  register: result
  become: yes

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

- eos_facts:
    gather_network_resources: interfaces
  become: yes

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

- set_fact:
    expected_config:
      - name: Ethernet1
        description: Interface 1
        speed: 40g
        duplex: full
        enabled: True
      - name: Ethernet2
        description: 'Configured by Ansible'
        speed: '10'
        duplex: full
        enabled: False
        mtu: "3000"

- assert:
    that:
      - "expected_config|difference(ansible_facts.network_resources.interfaces)|length == 0"
