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

- assert:
    that:
      - command.stdout_lines | length == 12
      - >-
        'Starting galaxy collection install process'
        in command.stdout_lines
      - >-
        'Starting collection install process'
        in command.stdout_lines
      - >-
        "Installing 'namespace_1.collection_1:1.0.0' to
        '" ~ install_path ~ "/namespace_1/collection_1'"
        in command.stdout_lines
      - >-
        'Created collection for namespace_1.collection_1:1.0.0 at
        ' ~ install_path ~ '/namespace_1/collection_1'
        in command.stdout_lines
      - >-
        'namespace_1.collection_1:1.0.0 was installed successfully'
        in command.stdout_lines
      - >-
        "Installing 'namespace_2.collection_2:1.0.0' to
        '" ~ install_path ~ "/namespace_2/collection_2'"
        in command.stdout_lines
      - >-
        'Created collection for namespace_2.collection_2:1.0.0 at
        ' ~ install_path ~ '/namespace_2/collection_2'
        in command.stdout_lines
      - >-
        'namespace_2.collection_2:1.0.0 was installed successfully'
        in command.stdout_lines

- 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://{{ scm_path }}/namespace_1/.git#/collection_1/ --force-with-deps'
  register: command

- assert:
    that:
      - command.stdout_lines | length == 12
      - >-
        'Starting galaxy collection install process'
        in command.stdout_lines
      - >-
        'Starting collection install process'
        in command.stdout_lines
      - >-
        "Installing 'namespace_1.collection_1:1.0.0' to
        '" ~ install_path ~ "/namespace_1/collection_1'"
        in command.stdout_lines
      - >-
        'Created collection for namespace_1.collection_1:1.0.0 at
        ' ~ install_path ~ '/namespace_1/collection_1'
        in command.stdout_lines
      - >-
        'namespace_1.collection_1:1.0.0 was installed successfully'
        in command.stdout_lines
      - >-
        "Installing 'namespace_2.collection_2:1.0.0' to
        '" ~ install_path ~ "/namespace_2/collection_2'"
        in command.stdout_lines
      - >-
        'Created collection for namespace_2.collection_2:1.0.0 at
        ' ~ install_path ~ '/namespace_2/collection_2'
        in command.stdout_lines
      - >-
        'namespace_2.collection_2:1.0.0 was installed successfully'
        in command.stdout_lines

- 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
