- hosts: localhost
  gather_facts: false
  tasks:
    - name: does nothing but an empty assign, should fail only if lookup gets invalid options
      set_fact: whatever={{ lookup('bogus', 1, test_list=['Dan', 'Manuela']) }}

    - name: now pass invalid option and fail!
      set_fact: whatever={{ lookup('bogus', 1, test_list=['Dan', 'Manuela', 'Yoko']) }}
      register: bad_input
      ignore_errors: true

    - name: ensure it fails as expected
      assert:
        that:
          - bad_input is failed
          - '"Invalid value " in bad_input.msg'
          - '"valid values are:" in bad_input.msg'

    - name: test config option casting
      set_fact:
        direct: "{{ lookup('casting', 1, test_list=[1,2,3], test_int=1, test_bool=True, test_str='lola') }}"
        from_strings: "{{ lookup('casting', 1, test_list='1,2,3', test_int='1', test_bool='true', test_str='lola') }}"
        direct_individual: "{{ lookup('casting_individual', 1, test_list='1,2,3', test_int='1', test_bool='true', test_str='lola') }}"
        from_strings_individual: "{{ lookup('casting_individual', 1, test_list='1,2,3', test_int='1', test_bool='true', test_str='lola') }}"
