- name: Install all collections in a repo, one of which has a recursive dependency
  command: 'ansible-galaxy collection install git+file://{{ galaxy_dir }}/development/namespace_1/.git'
  register: command

- assert:
    that:
      - command.stdout_lines | length == 9
      - command.stdout_lines[0] == "Starting galaxy collection install process"
      - command.stdout_lines[1] == "Process install dependency map"
      - command.stdout_lines[2] == "Starting collection install process"
      - "'namespace_1.collection_1' in command.stdout_lines[3]"
      - "'namespace_1.collection_1' in command.stdout_lines[4]"
      - "'namespace_1.collection_1' in command.stdout_lines[5]"
      - "'namespace_2.collection_2' in command.stdout_lines[6]"
      - "'namespace_2.collection_2' in command.stdout_lines[7]"
      - "'namespace_2.collection_2' in command.stdout_lines[8]"

- name: list installed collections
  command: 'ansible-galaxy collection list'
  register: installed_collections

- assert:
    that:
      - "'namespace_1.collection_1' in installed_collections.stdout"
      - "'namespace_2.collection_2' in installed_collections.stdout"

- name: Install a specific collection in a repo with a recursive dependency
  command: 'ansible-galaxy collection install git+file://{{ galaxy_dir }}/development/namespace_1/.git#/collection_1/ --force-with-deps'
  register: command

- assert:
    that:
      - command.stdout_lines | length == 9
      - command.stdout_lines[0] == "Starting galaxy collection install process"
      - command.stdout_lines[1] == "Process install dependency map"
      - command.stdout_lines[2] == "Starting collection install process"
      - "'namespace_1.collection_1' in command.stdout_lines[3]"
      - "'namespace_1.collection_1' in command.stdout_lines[4]"
      - "'namespace_1.collection_1' in command.stdout_lines[5]"
      - "'namespace_2.collection_2' in command.stdout_lines[6]"
      - "'namespace_2.collection_2' in command.stdout_lines[7]"
      - "'namespace_2.collection_2' in command.stdout_lines[8]"

- name: list installed collections
  command: 'ansible-galaxy collection list'
  register: installed_collections

- assert:
    that:
      - "'namespace_1.collection_1' in installed_collections.stdout"
      - "'namespace_2.collection_2' in installed_collections.stdout"

- include_tasks: ./empty_installed_collections.yml
  when: cleanup
