---
- name: setup
  cs_securitygroup: name={{ cs_resource_prefix }}_sg state=absent
  register: sg
- name: verify setup
  assert:
    that:
    - sg is successful

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

- name: test present security group in check mode
  cs_securitygroup: name={{ cs_resource_prefix }}_sg
  register: sg
  check_mode: true
- name: verify results of create security group in check mode
  assert:
    that:
    - sg is successful
    - sg is changed

- name: test present security group
  cs_securitygroup: name={{ cs_resource_prefix }}_sg
  register: sg
- name: verify results of create security group
  assert:
    that:
    - sg is successful
    - sg is changed
    - sg.name == "{{ cs_resource_prefix }}_sg"

- name: test present security group is idempotence
  cs_securitygroup: name={{ cs_resource_prefix }}_sg
  register: sg
- name: verify results present security group is idempotence
  assert:
    that:
    - sg is successful
    - sg is not changed
    - sg.name == "{{ cs_resource_prefix }}_sg"

- name: test absent security group in check mode
  cs_securitygroup: name={{ cs_resource_prefix }}_sg state=absent
  register: sg
  check_mode: true
- name: verify results of absent security group in check mode
  assert:
    that:
    - sg is successful
    - sg is changed
    - sg.name == "{{ cs_resource_prefix }}_sg"

- name: test absent security group
  cs_securitygroup: name={{ cs_resource_prefix }}_sg state=absent
  register: sg
- name: verify results of absent security group
  assert:
    that:
    - sg is successful
    - sg is changed
    - sg.name == "{{ cs_resource_prefix }}_sg"

- name: test absent security group is idempotence
  cs_securitygroup: name={{ cs_resource_prefix }}_sg state=absent
  register: sg
- name: verify results of absent security group is idempotence
  assert:
    that:
    - sg is successful
    - sg is not changed
    - sg.name is undefined
