---
- name: setup
  cs_affinitygroup:
    name: "{{ cs_resource_prefix }}_ag"
    state: absent
  register: ag
- name: verify setup
  assert:
    that:
    - ag is successful

- name: test fail if missing name
  cs_affinitygroup:
  register: ag
  ignore_errors: true
- name: verify results of fail if missing name
  assert:
    that:
    - ag is failed
    - "ag.msg == 'missing required arguments: name'"

- name: test fail unknown affinity type
  cs_affinitygroup:
    name: "{{ cs_resource_prefix }}_ag"
    affinity_type: unexistent affinity type
  register: ag
  ignore_errors: true
- name: verify test fail unknown affinity type
  assert:
    that:
    - ag is failed
    - "ag.msg == 'affinity group type not found: unexistent affinity type'"

- name: test present affinity group in check mode
  cs_affinitygroup: name={{ cs_resource_prefix }}_ag
  register: ag
  check_mode: true
- name: verify results of create affinity group in check mode
  assert:
    that:
    - ag is successful
    - ag is changed

- name: test present affinity group
  cs_affinitygroup: name={{ cs_resource_prefix }}_ag
  register: ag
- name: verify results of create affinity group
  assert:
    that:
    - ag is successful
    - ag is changed
    - ag.name == "{{ cs_resource_prefix }}_ag"

- name: test present affinity group is idempotence
  cs_affinitygroup: name={{ cs_resource_prefix }}_ag
  register: ag
- name: verify results present affinity group is idempotence
  assert:
    that:
    - ag is successful
    - ag is not changed
    - ag.name == "{{ cs_resource_prefix }}_ag"

- name: test absent affinity group in check mode
  cs_affinitygroup: name={{ cs_resource_prefix }}_ag state=absent
  register: ag
  check_mode: true
- name: verify results of absent affinity group in check mode
  assert:
    that:
    - ag is successful
    - ag is changed
    - ag.name == "{{ cs_resource_prefix }}_ag"

- name: test absent affinity group
  cs_affinitygroup: name={{ cs_resource_prefix }}_ag state=absent
  register: ag
- name: verify results of absent affinity group
  assert:
    that:
    - ag is successful
    - ag is changed
    - ag.name == "{{ cs_resource_prefix }}_ag"

- name: test absent affinity group is idempotence
  cs_affinitygroup: name={{ cs_resource_prefix }}_ag state=absent
  register: ag
- name: verify results of absent affinity group is idempotence
  assert:
    that:
    - ag is successful
    - ag is not changed
    - ag.name is undefined
