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

- 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|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|success
    - sg|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|success
    - sg|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|success
    - not sg|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|success
    - sg|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|success
    - sg|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|success
    - not sg|changed
    - sg.name is undefined
