---
# Copyright (c) Ansible Project
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later

- name: Delete realm
  community.general.keycloak_realm: "{{ auth_args | combine(call_args) }}"
  vars:
    call_args:
      id: "{{ realm }}"
      realm: "{{ realm }}"
      state: absent

- name: Create realm
  community.general.keycloak_realm: "{{ auth_args | combine(call_args) }}"
  vars:
    call_args:
      id: "{{ realm }}"
      realm: "{{ realm }}"
      state: present

- name: Desire client
  community.general.keycloak_client: "{{ auth_args | combine(call_args) }}"
  vars:
    call_args:
      realm: "{{ realm }}"
      client_id: "{{ client_id }}"
      state: present
      redirect_uris: '{{redirect_uris1}}'
      attributes: '{{client_attributes1}}'
      protocol_mappers: '{{protocol_mappers1}}'
  register: desire_client_not_present

- name: Desire client again with same props
  community.general.keycloak_client: "{{ auth_args | combine(call_args) }}"
  vars:
    call_args:
      realm: "{{ realm }}"
      client_id: "{{ client_id }}"
      state: present
      redirect_uris: '{{redirect_uris1}}'
      attributes: '{{client_attributes1}}'
      protocol_mappers: '{{protocol_mappers1}}'
  register: desire_client_when_present_and_same

- name: Check client again with same props
  community.general.keycloak_client: "{{ auth_args | combine(call_args) }}"
  check_mode: true
  vars:
    call_args:
      realm: "{{ realm }}"
      client_id: "{{ client_id }}"
      state: present
      redirect_uris: '{{redirect_uris1}}'
      attributes: '{{client_attributes1}}'
      protocol_mappers: '{{protocol_mappers1}}'
  register: check_client_when_present_and_same

- name: Assert changes not detected in last two tasks (desire when same, and check)
  assert:
    that:
      - desire_client_when_present_and_same is not changed
      - check_client_when_present_and_same is not changed
