- name: Create a destination dir
  file:
    path: "{{ remote_tmp_dir }}/test-unarchive-tar-gz"
    state: directory

- name: Create a symlink to the detination dir
  file:
    path: "{{ remote_tmp_dir }}/link-to-unarchive-dir"
    src: "{{ remote_tmp_dir }}/test-unarchive-tar-gz"
    state: "link"

- name: test that unarchive works when dest is a symlink to a dir
  unarchive:
    src: "{{ remote_tmp_dir }}/test-unarchive.tar.gz"
    dest: "{{ remote_tmp_dir }}/link-to-unarchive-dir"
    mode: "u+rwX,go+rX"
    remote_src: yes
  register: unarchive_11

- name: Check that file is really there
  stat:
    path: "{{ remote_tmp_dir }}/test-unarchive-tar-gz/foo-unarchive.txt"
  register: unarchive11_stat0

- name: Assert that unarchive when dest is a symlink to a dir worked
  assert:
    that:
      - "unarchive_11.changed == true"
      - "unarchive11_stat0.stat.exists == true"

- name: remove our tar.gz unarchive destination
  file:
    path: '{{ remote_tmp_dir }}/test-unarchive-tar-gz'
    state: absent

- name: Create a file
  file:
    path: "{{ remote_tmp_dir }}/test-unarchive-tar-gz"
    state: touch

- name: Create a symlink to the file
  file:
    src: "{{ remote_tmp_dir }}/test-unarchive-tar-gz"
    path: "{{ remote_tmp_dir }}/link-to-unarchive-file"
    state: "link"

- name: test that unarchive fails when dest is a link to a file
  unarchive:
    src: "{{ remote_tmp_dir }}/test-unarchive.tar.gz"
    dest: "{{ remote_tmp_dir }}/link-to-unarchive-file"
    mode: "u+rwX,go+rX"
    remote_src: yes
  ignore_errors: True
  register: unarchive_12

- name: Assert that unarchive when dest is a file failed
  assert:
    that:
      - "unarchive_12.failed == true"

- name: remove our tar.gz unarchive destination
  file:
    path: '{{ remote_tmp_dir }}/test-unarchive-tar-gz'
    state: absent
