Package org.elasticsearch.test
Class InternalAggregationTestCase<T extends org.elasticsearch.search.aggregations.InternalAggregation>
java.lang.Object
org.junit.Assert
org.apache.lucene.util.LuceneTestCase
org.elasticsearch.test.ESTestCase
org.elasticsearch.test.AbstractWireTestCase<T>
org.elasticsearch.test.AbstractNamedWriteableTestCase<T>
org.elasticsearch.test.InternalAggregationTestCase<T>
- Direct Known Subclasses:
InternalMultiBucketAggregationTestCase,InternalSingleBucketAggregationTestCase
public abstract class InternalAggregationTestCase<T extends org.elasticsearch.search.aggregations.InternalAggregation> extends AbstractNamedWriteableTestCase<T>
Implementors of this test case should be aware that the aggregation under test needs to be registered
in the test's namedWriteableRegistry. Core aggregations are registered already, but non-core
aggs should override
registerPlugin() so that the NamedWriteables
can be extracted from the AggregatorSpecs in the plugin (as well as any other custom NamedWriteables)-
Nested Class Summary
Nested classes/interfaces inherited from class org.elasticsearch.test.ESTestCase
ESTestCase.GeohashGenerator, ESTestCase.TestAnalysisNested classes/interfaces inherited from class org.apache.lucene.util.LuceneTestCase
org.apache.lucene.util.LuceneTestCase.AwaitsFix, org.apache.lucene.util.LuceneTestCase.BadApple, org.apache.lucene.util.LuceneTestCase.Monster, org.apache.lucene.util.LuceneTestCase.Nightly, org.apache.lucene.util.LuceneTestCase.Slow, org.apache.lucene.util.LuceneTestCase.SuppressCodecs, org.apache.lucene.util.LuceneTestCase.SuppressFileSystems, org.apache.lucene.util.LuceneTestCase.SuppressFsync, org.apache.lucene.util.LuceneTestCase.SuppressReproduceLine, org.apache.lucene.util.LuceneTestCase.SuppressSysoutChecks, org.apache.lucene.util.LuceneTestCase.SuppressTempFileChecks, org.apache.lucene.util.LuceneTestCase.ThrowingRunnable, org.apache.lucene.util.LuceneTestCase.Weekly -
Field Summary
Fields Modifier and Type Field Description static intDEFAULT_MAX_BUCKETSprotected static doubleTOLERANCEFields inherited from class org.elasticsearch.test.ESTestCase
checkIndexFailures, DEFAULT_TEST_WORKER_ID, failureAndSuccessEvents, FIPS_SYSPROP, JAVA_TIMEZONE_IDS, JAVA_ZONE_IDS, JODA_TIMEZONE_IDS, logger, TEST_WORKER_SYS_PROPERTY, TEST_WORKER_VM_IDFields inherited from class org.apache.lucene.util.LuceneTestCase
assertsAreEnabled, classRules, DEFAULT_LINE_DOCS_FILE, INFOSTREAM, JENKINS_LARGE_LINE_DOCS_FILE, LEAVE_TEMPORARY, MAYBE_CACHE_POLICY, RANDOM_MULTIPLIER, ruleChain, suiteFailureMarker, SYSPROP_AWAITSFIX, SYSPROP_BADAPPLES, SYSPROP_FAILFAST, SYSPROP_MAXFAILURES, SYSPROP_MONSTER, SYSPROP_NIGHTLY, SYSPROP_SLOW, SYSPROP_WEEKLY, TEST_ASSERTS_ENABLED, TEST_AWAITSFIX, TEST_BADAPPLES, TEST_CODEC, TEST_DIRECTORY, TEST_DOCVALUESFORMAT, TEST_LINE_DOCS_FILE, TEST_MONSTER, TEST_NIGHTLY, TEST_POSTINGSFORMAT, TEST_SLOW, TEST_THROTTLING, TEST_WEEKLY, VERBOSE -
Constructor Summary
Constructors Constructor Description InternalAggregationTestCase() -
Method Summary
Modifier and Type Method Description protected abstract voidassertFromXContent(T aggregation, org.elasticsearch.search.aggregations.ParsedAggregation parsedAggregation)static voidassertMultiBucketConsumer(org.elasticsearch.search.aggregations.Aggregation agg, org.elasticsearch.search.aggregations.MultiBucketConsumerService.MultiBucketConsumer bucketConsumer)protected abstract voidassertReduced(T reduced, java.util.List<T> inputs)protected java.lang.Class<T>categoryClass()The type ofNamedWriteableto read.TcreateTestInstance()Creates a random test instance to use in the tests.protected abstract TcreateTestInstance(java.lang.String name, java.util.Map<java.lang.String,java.lang.Object> metadata)protected TcreateUnmappedInstance(java.lang.String name)Return an instance on an unmapped field.protected TcreateUnmappedInstance(java.lang.String name, java.util.Map<java.lang.String,java.lang.Object> metadata)Return an instance on an unmapped field.static org.elasticsearch.search.aggregations.InternalAggregation.ReduceContextBuilderemptyReduceContextBuilder()Builds anInternalAggregation.ReduceContextBuilderthat is valid but empty.static org.elasticsearch.search.aggregations.InternalAggregation.ReduceContextBuilderemptyReduceContextBuilder(org.elasticsearch.search.aggregations.pipeline.PipelineAggregator.PipelineTree pipelineTree)Builds anInternalAggregation.ReduceContextBuilderthat is valid and nearly empty except that it containPipelineAggregators.protected java.util.function.Predicate<java.lang.String>excludePathsFromXContentInsertion()Overwrite this in your test if other than the basic xContent paths should be excluded during insertion of random fieldsstatic java.util.List<org.elasticsearch.common.xcontent.NamedXContentRegistry.Entry>getDefaultNamedXContents()protected org.elasticsearch.common.io.stream.NamedWriteableRegistrygetNamedWriteableRegistry()Get theNamedWriteableRegistryto use when de-serializing the object.protected java.util.List<org.elasticsearch.common.io.stream.NamedWriteableRegistry.Entry>getNamedWriteables()Implementors can override this if they want to provide a custom list of namedWriteables.protected java.util.List<org.elasticsearch.common.xcontent.NamedXContentRegistry.Entry>getNamedXContents()protected org.elasticsearch.script.ScriptServicemockScriptService()overwrite in tests that need itprotected <P extends org.elasticsearch.search.aggregations.ParsedAggregation>
PparseAndAssert(org.elasticsearch.search.aggregations.InternalAggregation aggregation, boolean shuffled, boolean addRandomFields)protected static org.elasticsearch.search.DocValueFormatrandomNumericDocValueFormat()static java.util.List<org.elasticsearch.search.aggregations.pipeline.PipelineAggregator>randomPipelineAggregators()static org.elasticsearch.search.aggregations.pipeline.PipelineAggregator.PipelineTreerandomPipelineTree(org.elasticsearch.search.aggregations.InternalAggregation aggregation)protected java.util.List<T>randomResultsToReduce(java.lang.String name, int size)Generate a list of inputs to reduce.protected org.elasticsearch.plugins.SearchPluginregisterPlugin()If a test needs to register additional aggregation specs for namedWriteable, etc, this method can be overridden by the implementor.voidtestFromXContent()voidtestFromXContentWithRandomFields()voidtestMergePipelineTreeForBWCSerialization()voidtestReduceRandom()protected org.elasticsearch.common.xcontent.NamedXContentRegistryxContentRegistry()TheNamedXContentRegistryto use for this test.Methods inherited from class org.elasticsearch.test.AbstractWireTestCase
assertEqualInstances, assertSerialization, assertSerialization, copyInstance, mutateInstance, testEqualsAndHashcode, testSerializationMethods inherited from class org.elasticsearch.test.ESTestCase
after, afterIfFailed, afterIfSuccessful, allowedWarnings, assertArrayEquals, assertBusy, assertBusy, assertEquals, assertSettingDeprecationsAndWarnings, assertSettingDeprecationsAndWarnings, assertWarnings, assertWarnings, before, between, buildEnvSettings, buildNewFakeTransportAddress, checkStaticState, clearPossibleRoles, copyInstance, copyNamedWriteable, copyNamedWriteable, copyWriteable, copyWriteable, createParser, createParser, createParser, createParser, createParser, createParser, createTestAnalysis, createTestAnalysis, createTestAnalysis, enableJodaDeprecationWarningsCheck, enableWarningsCheck, ensureAllSearchContextsReleased, ensureCheckIndexPassed, ensureSupportedLocale, frequently, generateRandomStringArray, generateRandomStringArray, getBasePort, getDataPath, getPortRange, getSuiteFailureMarker, getTestTransportPlugin, getTestTransportType, inFipsJvm, iterations, maybeSet, mockScript, newNodeEnvironment, newNodeEnvironment, randomAlphaOfLength, randomAlphaOfLengthBetween, randomArray, randomArray, randomBoolean, randomByte, randomByteArrayOfLength, randomDateTimeZone, randomDouble, randomDoubleBetween, randomFloat, randomFrom, randomFrom, randomFrom, randomFrom, randomFrom, randomGeohash, randomInt, randomInt, randomIntBetween, randomIp, randomList, randomList, randomLong, randomLongBetween, randomNonNegativeLong, randomPositiveTimeValue, randomRealisticUnicodeOfCodepointLength, randomRealisticUnicodeOfCodepointLengthBetween, randomRealisticUnicodeOfLength, randomRealisticUnicodeOfLengthBetween, randomShort, randomSubsetOf, randomSubsetOf, randomSubsetOf, randomTimeValue, randomTimeValue, randomTimeValue, randomTimeZone, randomUnicodeOfCodepointLength, randomUnicodeOfCodepointLengthBetween, randomUnicodeOfLength, randomUnicodeOfLengthBetween, randomUnique, randomValueOtherThan, randomValueOtherThanMany, randomZone, resetCheckIndexStatus, resetPortCounter, restoreContentType, restoreFileSystem, scaledRandomIntBetween, setContentType, setFileSystem, setPossibleRoles, settings, shuffleMap, shuffleXContent, shuffleXContent, spinForAtLeastNMilliseconds, spinForAtLeastOneMillisecond, terminate, terminate, tmpPaths, toShuffledXContent, waitUntil, waitUntil, writableRegistryMethods inherited from class org.apache.lucene.util.LuceneTestCase
addVirusChecker, assertDeletedDocsEquals, assertDocsAndPositionsEnumEquals, assertDocsEnumEquals, assertDocsSkippingEquals, assertDocValuesEquals, assertDocValuesEquals, assertFieldInfosEquals, assertNormsEquals, assertPointsEquals, assertPositionsSkippingEquals, assertReaderEquals, assertReaderStatisticsEquals, assertStoredFieldEquals, assertStoredFieldsEquals, assertTermsEnumEquals, assertTermsEquals, assertTermsEquals, assertTermsStatisticsEquals, assertTermStatsEquals, assertTermVectorsEquals, asSet, assumeFalse, assumeNoException, assumeTrue, assumeWorkingMMapOnWindows, atLeast, atLeast, callStackContains, callStackContains, callStackContainsAnyOf, closeAfterSuite, closeAfterTest, collate, createTempDir, createTempDir, createTempFile, createTempFile, dumpArray, dumpIterator, expectThrows, expectThrows, expectThrows, expectThrowsAnyOf, expectThrowsAnyOf, getBaseTempDirForTestClass, getDataInputStream, getOnlyLeafReader, getTestClass, getTestName, hasWorkingMMapOnWindows, isTestThread, localeForLanguageTag, maybeChangeLiveIndexWriterConfig, maybeWrapReader, newAlcoholicMergePolicy, newAlcoholicMergePolicy, newDirectory, newDirectory, newDirectory, newDirectory, newDirectory, newField, newField, newFSDirectory, newFSDirectory, newIndexWriterConfig, newIndexWriterConfig, newIndexWriterConfig, newIOContext, newIOContext, newLogMergePolicy, newLogMergePolicy, newLogMergePolicy, newLogMergePolicy, newLogMergePolicy, newMaybeVirusCheckingDirectory, newMaybeVirusCheckingFSDirectory, newMergePolicy, newMergePolicy, newMergePolicy, newMockDirectory, newMockDirectory, newMockDirectory, newMockFSDirectory, newMockFSDirectory, newSearcher, newSearcher, newSearcher, newStringField, newStringField, newStringField, newStringField, newTextField, newTextField, newTieredMergePolicy, newTieredMergePolicy, overrideDefaultQueryCache, overrideTestDefaultQueryCache, random, randomLocale, randomTimeZone, rarely, rarely, replaceMaxFailureRule, resetDefaultQueryCache, restoreCPUCoreCount, restoreIndexWriterMaxDocs, restoreSpins, runWithRestrictedPermissions, setIndexWriterMaxDocs, setUp, setupCPUCoreCount, setupSpins, slowFileExists, tearDown, usually, usually, wrapReaderMethods inherited from class org.junit.Assert
assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertThat, assertThat, assertTrue, assertTrue, fail, fail
-
Field Details
-
DEFAULT_MAX_BUCKETS
public static final int DEFAULT_MAX_BUCKETS- See Also:
- Constant Field Values
-
TOLERANCE
protected static final double TOLERANCE- See Also:
- Constant Field Values
-
-
Constructor Details
-
InternalAggregationTestCase
public InternalAggregationTestCase()
-
-
Method Details
-
emptyReduceContextBuilder
public static org.elasticsearch.search.aggregations.InternalAggregation.ReduceContextBuilder emptyReduceContextBuilder()Builds anInternalAggregation.ReduceContextBuilderthat is valid but empty. -
emptyReduceContextBuilder
public static org.elasticsearch.search.aggregations.InternalAggregation.ReduceContextBuilder emptyReduceContextBuilder(org.elasticsearch.search.aggregations.pipeline.PipelineAggregator.PipelineTree pipelineTree)Builds anInternalAggregation.ReduceContextBuilderthat is valid and nearly empty except that it containPipelineAggregators. -
getDefaultNamedXContents
public static java.util.List<org.elasticsearch.common.xcontent.NamedXContentRegistry.Entry> getDefaultNamedXContents() -
getNamedXContents
protected java.util.List<org.elasticsearch.common.xcontent.NamedXContentRegistry.Entry> getNamedXContents() -
xContentRegistry
protected org.elasticsearch.common.xcontent.NamedXContentRegistry xContentRegistry()Description copied from class:ESTestCaseTheNamedXContentRegistryto use for this test. Subclasses should override and use liberally.- Overrides:
xContentRegistryin classESTestCase
-
getNamedWriteableRegistry
protected final org.elasticsearch.common.io.stream.NamedWriteableRegistry getNamedWriteableRegistry()Description copied from class:AbstractWireTestCaseGet theNamedWriteableRegistryto use when de-serializing the object. Override this method if you need to registerNamedWriteables for the test object to de-serialize. By default this will return aNamedWriteableRegistrywith no registeredNamedWriteables- Specified by:
getNamedWriteableRegistryin classAbstractNamedWriteableTestCase<T extends org.elasticsearch.search.aggregations.InternalAggregation>
-
getNamedWriteables
protected java.util.List<org.elasticsearch.common.io.stream.NamedWriteableRegistry.Entry> getNamedWriteables()Implementors can override this if they want to provide a custom list of namedWriteables. If the implementor _just_ wants to register in namedWriteables provided by a plugin, prefer overridingregisterPlugin()instead because that route handles the automatic conversion of AggSpecs into namedWriteables. -
registerPlugin
protected org.elasticsearch.plugins.SearchPlugin registerPlugin()If a test needs to register additional aggregation specs for namedWriteable, etc, this method can be overridden by the implementor. -
createTestInstance
protected abstract T createTestInstance(java.lang.String name, java.util.Map<java.lang.String,java.lang.Object> metadata) -
createUnmappedInstance
protected T createUnmappedInstance(java.lang.String name, java.util.Map<java.lang.String,java.lang.Object> metadata)Return an instance on an unmapped field. -
categoryClass
Description copied from class:AbstractNamedWriteableTestCaseThe type ofNamedWriteableto read.- Specified by:
categoryClassin classAbstractNamedWriteableTestCase<T extends org.elasticsearch.search.aggregations.InternalAggregation>
-
randomResultsToReduce
Generate a list of inputs to reduce. Defaults to callingcreateTestInstance(String)andcreateUnmappedInstance(String)but should be overridden if it isn't realistic to reduce test instances. -
testReduceRandom
public void testReduceRandom() throws java.io.IOException- Throws:
java.io.IOException
-
mockScriptService
protected org.elasticsearch.script.ScriptService mockScriptService()overwrite in tests that need it -
assertReduced
-
createTestInstance
Description copied from class:AbstractWireTestCaseCreates a random test instance to use in the tests. This method will be called multiple times during test execution and should return a different random instance each time it is called.- Specified by:
createTestInstancein classAbstractWireTestCase<T extends org.elasticsearch.search.aggregations.InternalAggregation>
-
createUnmappedInstance
Return an instance on an unmapped field. -
testFromXContent
public final void testFromXContent() throws java.io.IOException- Throws:
java.io.IOException
-
testFromXContentWithRandomFields
public final void testFromXContentWithRandomFields() throws java.io.IOException- Throws:
java.io.IOException
-
testMergePipelineTreeForBWCSerialization
public void testMergePipelineTreeForBWCSerialization() -
randomPipelineTree
public static org.elasticsearch.search.aggregations.pipeline.PipelineAggregator.PipelineTree randomPipelineTree(org.elasticsearch.search.aggregations.InternalAggregation aggregation) -
randomPipelineAggregators
public static java.util.List<org.elasticsearch.search.aggregations.pipeline.PipelineAggregator> randomPipelineAggregators() -
assertFromXContent
protected abstract void assertFromXContent(T aggregation, org.elasticsearch.search.aggregations.ParsedAggregation parsedAggregation) throws java.io.IOException- Throws:
java.io.IOException
-
parseAndAssert
protected <P extends org.elasticsearch.search.aggregations.ParsedAggregation> P parseAndAssert(org.elasticsearch.search.aggregations.InternalAggregation aggregation, boolean shuffled, boolean addRandomFields) throws java.io.IOException- Throws:
java.io.IOException
-
excludePathsFromXContentInsertion
protected java.util.function.Predicate<java.lang.String> excludePathsFromXContentInsertion()Overwrite this in your test if other than the basic xContent paths should be excluded during insertion of random fields -
randomNumericDocValueFormat
protected static org.elasticsearch.search.DocValueFormat randomNumericDocValueFormat()- Returns:
- a random
DocValueFormatthat can be used in aggregations which compute numbers.
-
assertMultiBucketConsumer
public static void assertMultiBucketConsumer(org.elasticsearch.search.aggregations.Aggregation agg, org.elasticsearch.search.aggregations.MultiBucketConsumerService.MultiBucketConsumer bucketConsumer)
-