Class MapperTestCase

java.lang.Object
org.junit.Assert
org.apache.lucene.util.LuceneTestCase
Direct Known Subclasses:
AbstractNumericFieldMapperTestCase

public abstract class MapperTestCase
extends MapperServiceTestCase
Base class for testing Mappers.
  • Constructor Details

    • MapperTestCase

      public MapperTestCase()
  • Method Details

    • minimalMapping

      protected abstract void minimalMapping​(org.elasticsearch.common.xcontent.XContentBuilder b) throws java.io.IOException
      Throws:
      java.io.IOException
    • writeField

      protected void writeField​(org.elasticsearch.common.xcontent.XContentBuilder builder) throws java.io.IOException
      Writes the field and a sample value for it to the provided XContentBuilder. To be overridden in case the field should not be written at all in documents, like in the case of runtime fields.
      Throws:
      java.io.IOException
    • getSampleValueForDocument

      protected abstract java.lang.Object getSampleValueForDocument()
      Returns a sample value for the field, to be used in a document
    • getSampleValueForQuery

      protected java.lang.Object getSampleValueForQuery()
      Returns a sample value for the field, to be used when querying the field. Normally this is the same format as what is indexed as part of a document, and returned by getSampleValueForDocument(), but there are cases where fields are queried differently frow how they are indexed e.g. token_count or runtime fields
    • testExistsQueryMinimalMapping

      public final void testExistsQueryMinimalMapping() throws java.io.IOException
      This test verifies that the exists query created is the appropriate one, and aligns with the data structures being created for a document with a value for the field. This can only be verified for the minimal mapping. Field types that allow configurable doc_values or norms should write their own tests that creates the different mappings combinations and invoke assertExistsQuery(MapperService) to verify the behaviour.
      Throws:
      java.io.IOException
    • assertExistsQuery

      protected void assertExistsQuery​(org.elasticsearch.index.mapper.MapperService mapperService) throws java.io.IOException
      Throws:
      java.io.IOException
    • assertExistsQuery

      protected void assertExistsQuery​(org.elasticsearch.index.mapper.MappedFieldType fieldType, org.apache.lucene.search.Query query, org.elasticsearch.index.mapper.ParseContext.Document fields)
    • assertNoFieldNamesField

      protected static void assertNoFieldNamesField​(org.elasticsearch.index.mapper.ParseContext.Document fields)
    • assertHasNorms

      protected static void assertHasNorms​(org.elasticsearch.index.mapper.ParseContext.Document doc, java.lang.String field)
    • assertDocValuesField

      protected static void assertDocValuesField​(org.elasticsearch.index.mapper.ParseContext.Document doc, java.lang.String field)
    • assertNoDocValuesField

      protected static void assertNoDocValuesField​(org.elasticsearch.index.mapper.ParseContext.Document doc, java.lang.String field)
    • testEmptyName

      public final void testEmptyName()
    • testMinimalSerializesToItself

      public final void testMinimalSerializesToItself() throws java.io.IOException
      Throws:
      java.io.IOException
    • testMinimalToMaximal

      public void testMinimalToMaximal() throws java.io.IOException
      Throws:
      java.io.IOException
    • assertParseMinimalWarnings

      protected final void assertParseMinimalWarnings()
    • assertParseMaximalWarnings

      protected final void assertParseMaximalWarnings()
    • getParseMinimalWarnings

      protected java.lang.String[] getParseMinimalWarnings()
    • getParseMaximalWarnings

      protected java.lang.String[] getParseMaximalWarnings()
    • supportsMeta

      protected boolean supportsMeta()
      Override to disable testing meta in fields that don't support it.
    • metaMapping

      protected void metaMapping​(org.elasticsearch.common.xcontent.XContentBuilder b) throws java.io.IOException
      Throws:
      java.io.IOException
    • testMeta

      public void testMeta() throws java.io.IOException
      Throws:
      java.io.IOException
    • typeName

      protected java.lang.String typeName() throws java.io.IOException
      Throws:
      java.io.IOException
    • testDeprecatedBoost

      public final void testDeprecatedBoost() throws java.io.IOException
      Throws:
      java.io.IOException
    • fetchFromDocValues

      protected final java.util.List<?> fetchFromDocValues​(org.elasticsearch.index.mapper.MapperService mapperService, org.elasticsearch.index.mapper.MappedFieldType ft, org.elasticsearch.search.DocValueFormat format, java.lang.Object sourceValue) throws java.io.IOException
      Use a ValueFetcher to extract values from doc values.
      Throws:
      java.io.IOException
    • registerParameters

      protected abstract void registerParameters​(MapperTestCase.ParameterChecker checker) throws java.io.IOException
      Throws:
      java.io.IOException
    • testUpdates

      public void testUpdates() throws java.io.IOException
      Throws:
      java.io.IOException
    • testTextSearchInfoConsistency

      public final void testTextSearchInfoConsistency() throws java.io.IOException
      Throws:
      java.io.IOException
    • assertSearchable

      protected void assertSearchable​(org.elasticsearch.index.mapper.MappedFieldType fieldType)
    • assertFetch

      protected void assertFetch​(org.elasticsearch.index.mapper.MapperService mapperService, java.lang.String field, java.lang.Object value, java.lang.String format) throws java.io.IOException
      Assert that fetching a value using MappedFieldType.valueFetcher(org.elasticsearch.index.query.SearchExecutionContext, java.lang.String) produces the same value as fetching using doc values.
      Throws:
      java.io.IOException