# simple test of lookup plugins in with_*
---
- hosts: all
  connection: local
  vars:
    empty_list: []
  tasks:
  - name: test with_items
    action: command true
    with_items:
    - 1
    - 2
    - 3
  - name: test with_items with empty list
    action: command true
    with_items: $empty_list

  - name: test with_file and FILE
    action: command test "$item" = "$FILE(sample.j2)"
    with_file: sample.j2

  - name: test with_pipe
    action: command test "$item" = "$PIPE(cat sample.j2)"
    with_pipe: cat sample.j2

  - name: test LOOKUP and PIPE
    action: command test "$LOOKUP(pipe, cat sample.j2)" = "$PIPE(cat sample.j2)"

  - name: test with_sequence, generate
    command: touch /tmp/seq-${item}
    with_sequence: 0-16/2:%02x

  - name: test with_sequence, fenceposts 1
    copy: src=/tmp/seq-00 dest=/tmp/seq-10

  - name: test with_sequence, fenceposts 2
    file: dest=/tmp/seq-${item} state=absent
    with_items: [11, 12]

  - name: test with_sequence, missing
    file: dest=/tmp/seq-${item} state=absent
    with_sequence: 0x10/02:%02x

  - name: test with_sequence,remove
    file: dest=/tmp/seq-${item} state=absent
    with_sequence: 0-0x10/02:%02x

  - name: ensure test file doesnt exist
    # command because file will return differently
    action: command rm -f /tmp/ansible-test-with_lines-data
  - name: test with_lines
    action: shell echo "$item" >> /tmp/ansible-test-with_lines-data
    with_lines: cat sample.j2
  - name: verify with_lines
    action: copy src=sample.j2 dest=/tmp/ansible-test-with_lines-data
  - name: cleanup test file
    action: file path=/tmp/ansible-test-with_lines-data state=absent

# password lookup plugin
  - name: ensure test file doesn't exist
    # command because file will return differently
    action: command rm -f /tmp/ansible-test-with_password
  - name: test LOOKUP and PASSWORD with non existing password file
    action: command test "$LOOKUP(password, /tmp/ansible-test-with_password)" = "$PASSWORD(/tmp/ansible-test-with_password)"
  - name: test LOOKUP and PASSWORD with existing password file
    action: command test "$LOOKUP(password, /tmp/ansible-test-with_password)" = "$PASSWORD(/tmp/ansible-test-with_password)"
  - name: now test existing password via $item and with_password
    action: command test "$PASSWORD(/tmp/ansible-test-with_password)" = "$item"
    with_password:
      - /tmp/ansible-test-with_password
  - name: cleanup test file
    action: file path=/tmp/ansible-test-with_password state=absent
  - name: now test a password of non-default length (default=20, but here length=8)
    action: command test "$PASSWORD(/tmp/ansible-test-with_password length=8)" = "$LOOKUP(password, /tmp/ansible-test-with_password)"
  # - name: did we really create a password of length=8?
  #   action: command test "`expr length $PASSWORD(/tmp/ansible-test-with_password)`" = "8"
  - name: cleanup test file, again
    action: file path=/tmp/ansible-test-with_password state=absent

