---
- include_tasks: reset_config.yml

- set_fact:
    config:
      - name: Ethernet2
        ipv4:
          - address: 203.0.113.205/31
    other_config:
      - name: Ethernet1
        ipv4:
          - address: 192.0.2.12/24
          - address: 203.0.113.27/31
            secondary: true
      - name: Management1
        ipv4:
          - address: dhcp

- eos_facts:
    gather_network_resources: l3_interfaces
  become: yes

- name: Replace device configuration of specified L3 interfaces with provided configuration.
  eos_l3_interfaces:
    config: "{{ config }}"
    state: replaced
  register: result
  become: yes

- assert:
    that:
      - "ansible_facts.network_resources.l3_interfaces|symmetric_difference(result.before) == []"

- eos_facts:
    gather_network_resources: l3_interfaces
  become: yes

- assert:
    that:
      - "ansible_facts.network_resources.l3_interfaces|symmetric_difference(result.after) == []"
  become: yes

- set_fact:
    expected_config: "{{ config }} + {{ other_config }}"

- assert:
    that:
      - "ansible_facts.network_resources.l3_interfaces|symmetric_difference(expected_config) == []"
