---
  - name: Setup test fixture
    copy:
      src: fixtures/ansible-xml-beers.xml
      dest: /tmp/ansible-xml-beers.xml


  - name: Get element attributes
    xml:
      path: /tmp/ansible-xml-beers.xml
      xpath: /business/rating
      content: attribute
    register: get_element_attribute

  - name: Test expected result
    assert:
      that:
      - get_element_attribute.changed == false
      - get_element_attribute.matches[0]['rating'] is defined
      - get_element_attribute.matches[0]['rating']['subjective'] == 'true'

  # TODO: Remove this in Ansible v2.12 when this incorrect use of attribute is deprecated
  - name: Get element attributes
    xml:
      path: /tmp/ansible-xml-beers.xml
      xpath: /business/rating
      content: attribute
      attribute: subjective
    register: get_element_attribute_wrong

  - name: Test expected result
    assert:
      that:
      - get_element_attribute_wrong.changed == false
      - get_element_attribute_wrong.matches[0]['rating'] is defined
      - get_element_attribute_wrong.matches[0]['rating']['subjective'] == 'true'
      - get_element_attribute_wrong.deprecations is defined
      - get_element_attribute_wrong.deprecations[0].msg == "Parameter 'attribute=subjective' is ignored when using 'content=attribute' only 'xpath' is used. Please remove entry."
      - get_element_attribute_wrong.deprecations[0].version == '2.12'

  - name: Get element text
    xml:
      path: /tmp/ansible-xml-beers.xml
      xpath: /business/rating
      content: text
    register: get_element_text

  - name: Test expected result
    assert:
      that:
      - get_element_text.changed == false
      - get_element_text.matches[0]['rating'] == '10'
