# extremely simple test of the most basic of playbook engine/functions
---
- hosts: all
  connection: local

# the 'weasels' string should show up in the output

  vars:
    answer: "Wuh, I think so, Brain, but if we didn't have ears, we'd look like weasels."
    port: 5150

# we should have import events for common_vars and CentOS.yml (if run on CentOS)
# sorry, tests are a bit platform specific just for now

  vars_files:
    - common_vars.yml
    - [ '$facter_operatingsystem.yml', 'default_os.yml' ]

  tasks:

  - name: test basic success command
    action: command true

  - name: test basic success command 2
    action: command true

  - name: test basic shell, plus two ways to dereference a variable
    action: shell echo $HOME $port

  - name: test vars_files imports
    action: shell echo $duck $cow $testing

# in the command below, the test file should contain a valid template
# and trigger the change handler

  - name: test copy
    action: copy src=sample.j2 dest=/tmp/ansible_test_data_copy.out
    notify:
    - on change 1

# this should trigger two change handlers, but the 2nd should
# not be triggered twice because it's already triggered

  - name: test template
    action: template src=$item dest=/tmp/ansible_test_data_template.out
    first_available_file:
    - nonexistantfile
    - sample.j2
    notify:
    - on change 1
    - on change 2

# there should be various poll events within the range

  - name: async poll test
    action: shell sleep 5
    async: 10
    poll: 3

# the following command should be skipped

  - name: this should be skipped
    action: shell echo 'if you see this, this is wrong ($facter_operatingsystem)'
    only_if: "'$facter_operatingsystem' == 'Imaginary'"

  handlers:

# in the above test example, this should fire ONCE (at the end)
  - name: on change 1
    action: shell echo 'this should fire once'

# in the above test example, this should fire ONCE (at the end)

  - name: on change 2
    action: shell echo 'this should fire once also'

# in the above test example, this should NOT FIRE

  - name: on change 3
    action: shell echo 'if you see this, this is wrong'