# Each case is followed by mitogen_via= case to test hostvars pass.


# No become-pass set, defaults to "root"
- name: integration/transport_config/become-pass.yml
  hosts: tc-become-pass-unset
  become: true
  tasks:
  - include: ../_mitogen_only.yml
  - {mitogen_get_stack: {}, register: out}
  - assert:
      that:
      - out.result|length == 2
      - out.result[0].method == "ssh"
      - out.result[1].method == "sudo"
      - out.result[1].kwargs.password == None

# Not set, unbecoming mitogen_via=
- hosts: tc-become-pass-unset
  become: true
  vars: {mitogen_via: tc-become-pass-password}
  tasks:
  - include: ../_mitogen_only.yml
  - {mitogen_get_stack: {}, register: out}
  - assert:
      that:
      - out.result|length == 3
      - out.result[0].method == "ssh"
      - out.result[1].method == "ssh"
      - out.result[2].method == "sudo"
      - out.result[2].kwargs.password == None

# Not set, becoming mitogen_via=
- hosts: tc-become-pass-unset
  become: true
  vars: {mitogen_via: viapass@tc-become-pass-password}
  tasks:
  - include: ../_mitogen_only.yml
  - {mitogen_get_stack: {}, register: out}
  - assert:
      that:
      - out.result|length == 4
      - out.result[0].method == "ssh"
      - out.result[1].method == "sudo"
      - out.result[1].kwargs.password == "apassword"
      - out.result[2].method == "ssh"
      - out.result[3].method == "sudo"
      - out.result[3].kwargs.password == None


# ansible_become_password= set.
- hosts: tc-become-pass-password
  become: true
  tasks:
  - include: ../_mitogen_only.yml
  - {mitogen_get_stack: {}, register: out}
  - assert:
      that:
      - out.result|length == 2
      - out.result[0].method == "ssh"
      - out.result[1].method == "sudo"
      - out.result[1].kwargs.password == "apassword"


# ansible_become_password=, via=
- hosts: tc-become-pass-password
  vars: {mitogen_via: root@tc-become-pass-pass}
  become: true
  tasks:
  - include: ../_mitogen_only.yml
  - {mitogen_get_stack: {}, register: out}
  - assert:
      that:
      - out.result|length == 4
      - out.result[0].method == "ssh"
      - out.result[1].method == "sudo"
      - out.result[1].kwargs.password == "apass"
      - out.result[2].method == "ssh"
      - out.result[3].method == "sudo"
      - out.result[3].kwargs.password == "apassword"


# ansible_become_pass=
- hosts: tc-become-pass-pass
  become: true
  tasks:
  - include: ../_mitogen_only.yml
  - {mitogen_get_stack: {}, register: out}
  - assert:
      that:
      - out.result|length == 2
      - out.result[0].method == "ssh"
      - out.result[1].method == "sudo"
      - out.result[1].kwargs.password == "apass"


# ansible_become_pass=, via=
- hosts: tc-become-pass-pass
  vars: {mitogen_via: root@tc-become-pass-password}
  become: true
  tasks:
  - include: ../_mitogen_only.yml
  - {mitogen_get_stack: {}, register: out}
  - assert:
      that:
      - out.result|length == 4
      - out.result[0].method == "ssh"
      - out.result[1].method == "sudo"
      - out.result[1].kwargs.password == "apassword"
      - out.result[2].method == "ssh"
      - out.result[3].method == "sudo"
      - out.result[3].kwargs.password == "apass"



# ansible_become_pass & ansible_become_password set, password takes precedence
- hosts: tc-become-pass-both
  become: true
  tasks:
  - include: ../_mitogen_only.yml
  - {mitogen_get_stack: {}, register: out}
  - assert:
      that:
      - out.result|length == 2
      - out.result[0].method == "ssh"
      - out.result[1].method == "sudo"
      - out.result[1].kwargs.password == "a.b.c"


# both, mitogen_via
- hosts: tc-become-pass-unset
  vars: {mitogen_via: root@tc-become-pass-both}
  tasks:
  - include: ../_mitogen_only.yml
  - {mitogen_get_stack: {}, register: out}
  - assert:
      that:
      - out.result|length == 3
      - out.result[0].method == "ssh"
      - out.result[1].method == "sudo"
      - out.result[1].kwargs.password == "a.b.c"
      - out.result[2].method == "ssh"
