setup:
  - do:
      indices.create:
        index: test_index1
  - do:
      indices.create:
        index: test_index2
  - do:
      indices.create:
        index: foo


---
"put one mapping per index":
  - do:
      indices.put_mapping:
        index: test_index1
        type: test_type
        body:
          test_type:
            properties:
              text:
                type:     text
                analyzer: whitespace
  - do:
      indices.put_mapping:
        index: test_index2
        type: test_type
        body:
          test_type:
            properties:
              text:
                type:     text
                analyzer: whitespace


  - do:
      indices.get_mapping: {}

  - match: {test_index1.mappings.test_type.properties.text.type:     text}
  - match: {test_index1.mappings.test_type.properties.text.analyzer: whitespace}

  - match: {test_index2.mappings.test_type.properties.text.type:     text}
  - match: {test_index2.mappings.test_type.properties.text.analyzer: whitespace}

  - match: { foo.mappings: {} }

---
"put mapping in _all index":

  - do:
      indices.put_mapping:
        index: _all
        type: test_type
        body:
          test_type:
            properties:
              text:
                type:     text
                analyzer: whitespace

  - do:
      indices.get_mapping: {}

  - match: {test_index1.mappings.test_type.properties.text.type:     text}
  - match: {test_index1.mappings.test_type.properties.text.analyzer: whitespace}

  - match: {test_index2.mappings.test_type.properties.text.type:     text}
  - match: {test_index2.mappings.test_type.properties.text.analyzer: whitespace}

  - match: {foo.mappings.test_type.properties.text.type:     text}
  - match: {foo.mappings.test_type.properties.text.analyzer: whitespace}

---
"put mapping in * index":
  - do:
      indices.put_mapping:
        index: "*"
        type: test_type
        body:
          test_type:
            properties:
              text:
                type:     text
                analyzer: whitespace

  - do:
      indices.get_mapping: {}

  - match: {test_index1.mappings.test_type.properties.text.type:     text}
  - match: {test_index1.mappings.test_type.properties.text.analyzer: whitespace}

  - match: {test_index2.mappings.test_type.properties.text.type:     text}
  - match: {test_index2.mappings.test_type.properties.text.analyzer: whitespace}

  - match: {foo.mappings.test_type.properties.text.type:     text}
  - match: {foo.mappings.test_type.properties.text.analyzer: whitespace}

---
"put mapping in prefix* index":
  - do:
      indices.put_mapping:
        index: "test_index*"
        type: test_type
        body:
          test_type:
            properties:
              text:
                type:     text
                analyzer: whitespace

  - do:
      indices.get_mapping: {}

  - match: {test_index1.mappings.test_type.properties.text.type:     text}
  - match: {test_index1.mappings.test_type.properties.text.analyzer: whitespace}

  - match: {test_index2.mappings.test_type.properties.text.type:     text}
  - match: {test_index2.mappings.test_type.properties.text.analyzer: whitespace}

  - match: { foo.mappings: {} }

---
"put mapping in list of indices":
  - do:
      indices.put_mapping:
        index: [test_index1, test_index2]
        type: test_type
        body:
          test_type:
            properties:
              text:
                type:     text
                analyzer: whitespace

  - do:
      indices.get_mapping: {}

  - match: {test_index1.mappings.test_type.properties.text.type:     text}
  - match: {test_index1.mappings.test_type.properties.text.analyzer: whitespace}

  - match: {test_index2.mappings.test_type.properties.text.type:     text}
  - match: {test_index2.mappings.test_type.properties.text.analyzer: whitespace}

  - match: { foo.mappings: {} }

---
"put mapping with blank index":
  - do:
      indices.put_mapping:
        type: test_type
        body:
          test_type:
            properties:
              text:
                type:     text
                analyzer: whitespace

  - do:
      indices.get_mapping: {}

  - match: {test_index1.mappings.test_type.properties.text.type:     text}
  - match: {test_index1.mappings.test_type.properties.text.analyzer: whitespace}

  - match: {test_index2.mappings.test_type.properties.text.type:     text}
  - match: {test_index2.mappings.test_type.properties.text.analyzer: whitespace}

  - match: {foo.mappings.test_type.properties.text.type:     text}
  - match: {foo.mappings.test_type.properties.text.analyzer: whitespace}

---
"put mapping with missing type":


  - do:
      catch: param
      indices.put_mapping: {}

---
"post a mapping with default analyzer twice":

  - do:
      indices.put_mapping:
        index: test_index1
        type: test_type
        body:
          test_type:
            dynamic: false
            properties:
              text:
                analyzer: default
                type:     text

  - do:
      indices.put_mapping:
        index: test_index1
        type: test_type
        body:
          test_type:
            dynamic: false
            properties:
              text:
                analyzer: default
                type:     text

  - do:
      indices.get_mapping: {}

  - match: {test_index1.mappings.test_type.properties.text.type:     text}
 
