Search in sources :

Example 1 with TestForIssue

use of org.hibernate.search.util.impl.test.annotation.TestForIssue in project hibernate-search by hibernate.

the class FieldSearchSortUnsupportedTypesIT method error_notSupported.

@Test
@TestForIssue(jiraKey = "HSEARCH-3798")
public void error_notSupported() {
    StubMappingScope scope = index.createScope();
    String absoluteFieldPath = getFieldPath();
    assertThatThrownBy(() -> scope.sort().field(absoluteFieldPath)).isInstanceOf(SearchException.class).hasMessageContainingAll("Cannot use 'sort:field' on field '" + absoluteFieldPath + "'", "'sort:field' is not available for fields of this type").satisfies(FailureReportUtils.hasContext(EventContexts.fromIndexFieldAbsolutePath(absoluteFieldPath)));
}
Also used : StubMappingScope(org.hibernate.search.util.impl.integrationtest.mapper.stub.StubMappingScope) Test(org.junit.Test) TestForIssue(org.hibernate.search.util.impl.test.annotation.TestForIssue)

Example 2 with TestForIssue

use of org.hibernate.search.util.impl.test.annotation.TestForIssue in project hibernate-search by hibernate.

the class DistanceSearchSortTypeCheckingAndConversionIT method multiIndex_withMissingFieldIndex.

@Test
@TestForIssue(jiraKey = "HSEARCH-4173")
public void multiIndex_withMissingFieldIndex() {
    assumeTrue("This backend doesn't support distance sorts on a field that is missing from some of the target indexes.", TckConfiguration.get().getBackendFeatures().supportsDistanceSortWhenFieldMissingInSomeTargetIndexes());
    StubMappingScope scope = mainIndex.createScope(missingFieldIndex);
    SearchQuery<DocumentReference> query;
    String fieldPath = getFieldPath();
    query = matchNonEmptyQuery(f -> f.distance(fieldPath, CENTER_POINT), scope);
    /*
		 * Not testing the ordering of results here because it's not what we are interested in:
		 * we just want to check that fields are correctly detected as compatible,
		 * that no exception is thrown and that the query is correctly executed on all indexes
		 * with no silent error (HSEARCH-4173).
		 */
    assertThatQuery(query).hasDocRefHitsAnyOrder(b -> {
        b.doc(missingFieldIndex.typeName(), MISSING_FIELD_INDEX_DOCUMENT_1);
        b.doc(mainIndex.typeName(), DOCUMENT_1);
        b.doc(mainIndex.typeName(), DOCUMENT_2);
        b.doc(mainIndex.typeName(), DOCUMENT_3);
    });
}
Also used : SearchException(org.hibernate.search.util.common.SearchException) IndexObjectFieldReference(org.hibernate.search.engine.backend.document.IndexObjectFieldReference) GeoPoint(org.hibernate.search.engine.spatial.GeoPoint) GeoPointFieldTypeDescriptor(org.hibernate.search.integrationtest.backend.tck.testsupport.types.GeoPointFieldTypeDescriptor) BeforeClass(org.junit.BeforeClass) SimpleFieldModel(org.hibernate.search.integrationtest.backend.tck.testsupport.util.SimpleFieldModel) Searchable(org.hibernate.search.engine.backend.types.Searchable) SortFinalStep(org.hibernate.search.engine.search.sort.dsl.SortFinalStep) SearchSetupHelper(org.hibernate.search.integrationtest.backend.tck.testsupport.util.rule.SearchSetupHelper) SearchResultAssert.assertThatQuery(org.hibernate.search.util.impl.integrationtest.common.assertion.SearchResultAssert.assertThatQuery) SearchSortFactory(org.hibernate.search.engine.search.sort.dsl.SearchSortFactory) Function(java.util.function.Function) ObjectStructure(org.hibernate.search.engine.backend.types.ObjectStructure) AscendingUniqueDistanceFromCenterValues(org.hibernate.search.integrationtest.backend.tck.testsupport.types.values.AscendingUniqueDistanceFromCenterValues) Assertions.assertThatThrownBy(org.assertj.core.api.Assertions.assertThatThrownBy) BulkIndexer(org.hibernate.search.util.impl.integrationtest.mapper.stub.BulkIndexer) SimpleMappedIndex(org.hibernate.search.util.impl.integrationtest.mapper.stub.SimpleMappedIndex) StubMappingScope(org.hibernate.search.util.impl.integrationtest.mapper.stub.StubMappingScope) FailureReportUtils(org.hibernate.search.util.impl.integrationtest.common.FailureReportUtils) ClassRule(org.junit.ClassRule) DocumentReference(org.hibernate.search.engine.backend.common.DocumentReference) DocumentElement(org.hibernate.search.engine.backend.document.DocumentElement) ValueWrapper(org.hibernate.search.integrationtest.backend.tck.testsupport.util.ValueWrapper) FieldTypeDescriptor(org.hibernate.search.integrationtest.backend.tck.testsupport.types.FieldTypeDescriptor) Sortable(org.hibernate.search.engine.backend.types.Sortable) CENTER_POINT(org.hibernate.search.integrationtest.backend.tck.testsupport.types.values.AscendingUniqueDistanceFromCenterValues.CENTER_POINT) EventContexts(org.hibernate.search.engine.reporting.spi.EventContexts) Test(org.junit.Test) IndexSchemaElement(org.hibernate.search.engine.backend.document.model.dsl.IndexSchemaElement) IndexSchemaObjectField(org.hibernate.search.engine.backend.document.model.dsl.IndexSchemaObjectField) Consumer(java.util.function.Consumer) TestForIssue(org.hibernate.search.util.impl.test.annotation.TestForIssue) Aggregable(org.hibernate.search.engine.backend.types.Aggregable) StandardIndexFieldTypeOptionsStep(org.hibernate.search.engine.backend.types.dsl.StandardIndexFieldTypeOptionsStep) SearchQuery(org.hibernate.search.engine.search.query.SearchQuery) Assume.assumeTrue(org.junit.Assume.assumeTrue) Projectable(org.hibernate.search.engine.backend.types.Projectable) TckConfiguration(org.hibernate.search.integrationtest.backend.tck.testsupport.util.TckConfiguration) StubMappingScope(org.hibernate.search.util.impl.integrationtest.mapper.stub.StubMappingScope) DocumentReference(org.hibernate.search.engine.backend.common.DocumentReference) Test(org.junit.Test) TestForIssue(org.hibernate.search.util.impl.test.annotation.TestForIssue)

Example 3 with TestForIssue

use of org.hibernate.search.util.impl.test.annotation.TestForIssue in project hibernate-search by hibernate.

the class DistanceSearchSortTypeCheckingAndConversionIT method multiIndex_withMissingFieldIndex_nested.

/**
 * Test the behavior when even the <strong>parent</strong> field of the field to sort on is missing,
 * and that parent field is <strong>nested</strong> in the main index.
 */
@Test
@TestForIssue(jiraKey = "HSEARCH-4173")
public void multiIndex_withMissingFieldIndex_nested() {
    assumeTrue("This backend doesn't support distance sorts on a nested field that is missing from some of the target indexes.", TckConfiguration.get().getBackendFeatures().supportsDistanceSortWhenNestedFieldMissingInSomeTargetIndexes());
    StubMappingScope scope = mainIndex.createScope(missingFieldIndex);
    SearchQuery<DocumentReference> query;
    String fieldPath = getFieldInNestedPath();
    query = matchNonEmptyQuery(f -> f.distance(fieldPath, CENTER_POINT), scope);
    /*
		 * Not testing the ordering of results here because it's not what we are interested in:
		 * we just want to check that fields are correctly detected as compatible,
		 * that no exception is thrown and that the query is correctly executed on all indexes
		 * with no silent error (HSEARCH-4173).
		 */
    assertThatQuery(query).hasDocRefHitsAnyOrder(b -> {
        b.doc(missingFieldIndex.typeName(), MISSING_FIELD_INDEX_DOCUMENT_1);
        b.doc(mainIndex.typeName(), DOCUMENT_1);
        b.doc(mainIndex.typeName(), DOCUMENT_2);
        b.doc(mainIndex.typeName(), DOCUMENT_3);
    });
}
Also used : SearchException(org.hibernate.search.util.common.SearchException) IndexObjectFieldReference(org.hibernate.search.engine.backend.document.IndexObjectFieldReference) GeoPoint(org.hibernate.search.engine.spatial.GeoPoint) GeoPointFieldTypeDescriptor(org.hibernate.search.integrationtest.backend.tck.testsupport.types.GeoPointFieldTypeDescriptor) BeforeClass(org.junit.BeforeClass) SimpleFieldModel(org.hibernate.search.integrationtest.backend.tck.testsupport.util.SimpleFieldModel) Searchable(org.hibernate.search.engine.backend.types.Searchable) SortFinalStep(org.hibernate.search.engine.search.sort.dsl.SortFinalStep) SearchSetupHelper(org.hibernate.search.integrationtest.backend.tck.testsupport.util.rule.SearchSetupHelper) SearchResultAssert.assertThatQuery(org.hibernate.search.util.impl.integrationtest.common.assertion.SearchResultAssert.assertThatQuery) SearchSortFactory(org.hibernate.search.engine.search.sort.dsl.SearchSortFactory) Function(java.util.function.Function) ObjectStructure(org.hibernate.search.engine.backend.types.ObjectStructure) AscendingUniqueDistanceFromCenterValues(org.hibernate.search.integrationtest.backend.tck.testsupport.types.values.AscendingUniqueDistanceFromCenterValues) Assertions.assertThatThrownBy(org.assertj.core.api.Assertions.assertThatThrownBy) BulkIndexer(org.hibernate.search.util.impl.integrationtest.mapper.stub.BulkIndexer) SimpleMappedIndex(org.hibernate.search.util.impl.integrationtest.mapper.stub.SimpleMappedIndex) StubMappingScope(org.hibernate.search.util.impl.integrationtest.mapper.stub.StubMappingScope) FailureReportUtils(org.hibernate.search.util.impl.integrationtest.common.FailureReportUtils) ClassRule(org.junit.ClassRule) DocumentReference(org.hibernate.search.engine.backend.common.DocumentReference) DocumentElement(org.hibernate.search.engine.backend.document.DocumentElement) ValueWrapper(org.hibernate.search.integrationtest.backend.tck.testsupport.util.ValueWrapper) FieldTypeDescriptor(org.hibernate.search.integrationtest.backend.tck.testsupport.types.FieldTypeDescriptor) Sortable(org.hibernate.search.engine.backend.types.Sortable) CENTER_POINT(org.hibernate.search.integrationtest.backend.tck.testsupport.types.values.AscendingUniqueDistanceFromCenterValues.CENTER_POINT) EventContexts(org.hibernate.search.engine.reporting.spi.EventContexts) Test(org.junit.Test) IndexSchemaElement(org.hibernate.search.engine.backend.document.model.dsl.IndexSchemaElement) IndexSchemaObjectField(org.hibernate.search.engine.backend.document.model.dsl.IndexSchemaObjectField) Consumer(java.util.function.Consumer) TestForIssue(org.hibernate.search.util.impl.test.annotation.TestForIssue) Aggregable(org.hibernate.search.engine.backend.types.Aggregable) StandardIndexFieldTypeOptionsStep(org.hibernate.search.engine.backend.types.dsl.StandardIndexFieldTypeOptionsStep) SearchQuery(org.hibernate.search.engine.search.query.SearchQuery) Assume.assumeTrue(org.junit.Assume.assumeTrue) Projectable(org.hibernate.search.engine.backend.types.Projectable) TckConfiguration(org.hibernate.search.integrationtest.backend.tck.testsupport.util.TckConfiguration) StubMappingScope(org.hibernate.search.util.impl.integrationtest.mapper.stub.StubMappingScope) DocumentReference(org.hibernate.search.engine.backend.common.DocumentReference) Test(org.junit.Test) TestForIssue(org.hibernate.search.util.impl.test.annotation.TestForIssue)

Example 4 with TestForIssue

use of org.hibernate.search.util.impl.test.annotation.TestForIssue in project hibernate-search by hibernate.

the class FieldSearchProjectionTypeCheckingAndConversionIT method multiIndex_withMissingFieldIndex_projectionConverterDisabled.

@Test
@TestForIssue(jiraKey = "HSEARCH-4173")
public void multiIndex_withMissingFieldIndex_projectionConverterDisabled() {
    StubMappingScope scope = mainIndex.createScope(missingFieldIndex);
    String fieldPath = getFieldWithConverterPath();
    assertThatQuery(scope.query().select(f -> f.field(fieldPath, fieldType.getJavaType(), ValueConvert.NO)).where(f -> f.matchAll()).toQuery()).hasHitsAnyOrder(getFieldValue(1), getFieldValue(2), getFieldValue(3), // Empty document
    null, // From the "missing field" index
    null);
}
Also used : SearchException(org.hibernate.search.util.common.SearchException) SimpleFieldModelsByType(org.hibernate.search.integrationtest.backend.tck.testsupport.util.SimpleFieldModelsByType) IndexObjectFieldReference(org.hibernate.search.engine.backend.document.IndexObjectFieldReference) BeforeClass(org.junit.BeforeClass) SimpleFieldModel(org.hibernate.search.integrationtest.backend.tck.testsupport.util.SimpleFieldModel) Searchable(org.hibernate.search.engine.backend.types.Searchable) RunWith(org.junit.runner.RunWith) FromDocumentValueConvertContext(org.hibernate.search.engine.backend.types.converter.runtime.FromDocumentValueConvertContext) SearchSetupHelper(org.hibernate.search.integrationtest.backend.tck.testsupport.util.rule.SearchSetupHelper) SearchResultAssert.assertThatQuery(org.hibernate.search.util.impl.integrationtest.common.assertion.SearchResultAssert.assertThatQuery) ObjectStructure(org.hibernate.search.engine.backend.types.ObjectStructure) ArrayList(java.util.ArrayList) Assertions.assertThatThrownBy(org.assertj.core.api.Assertions.assertThatThrownBy) BulkIndexer(org.hibernate.search.util.impl.integrationtest.mapper.stub.BulkIndexer) FromDocumentValueConverter(org.hibernate.search.engine.backend.types.converter.FromDocumentValueConverter) SimpleMappedIndex(org.hibernate.search.util.impl.integrationtest.mapper.stub.SimpleMappedIndex) StubMappingScope(org.hibernate.search.util.impl.integrationtest.mapper.stub.StubMappingScope) ValueConvert(org.hibernate.search.engine.search.common.ValueConvert) ClassRule(org.junit.ClassRule) DocumentElement(org.hibernate.search.engine.backend.document.DocumentElement) Parameterized(org.junit.runners.Parameterized) ValueWrapper(org.hibernate.search.integrationtest.backend.tck.testsupport.util.ValueWrapper) FieldTypeDescriptor(org.hibernate.search.integrationtest.backend.tck.testsupport.types.FieldTypeDescriptor) Sortable(org.hibernate.search.engine.backend.types.Sortable) Test(org.junit.Test) IndexSchemaElement(org.hibernate.search.engine.backend.document.model.dsl.IndexSchemaElement) IndexSchemaObjectField(org.hibernate.search.engine.backend.document.model.dsl.IndexSchemaObjectField) List(java.util.List) TestForIssue(org.hibernate.search.util.impl.test.annotation.TestForIssue) Aggregable(org.hibernate.search.engine.backend.types.Aggregable) StandardIndexFieldTypeOptionsStep(org.hibernate.search.engine.backend.types.dsl.StandardIndexFieldTypeOptionsStep) Projectable(org.hibernate.search.engine.backend.types.Projectable) StubMappingScope(org.hibernate.search.util.impl.integrationtest.mapper.stub.StubMappingScope) Test(org.junit.Test) TestForIssue(org.hibernate.search.util.impl.test.annotation.TestForIssue)

Example 5 with TestForIssue

use of org.hibernate.search.util.impl.test.annotation.TestForIssue in project hibernate-search by hibernate.

the class FieldSearchProjectionTypeCheckingAndConversionIT method multiIndex_withMissingFieldIndex_projectionConverterEnabled.

@Test
@TestForIssue(jiraKey = "HSEARCH-4173")
public void multiIndex_withMissingFieldIndex_projectionConverterEnabled() {
    StubMappingScope scope = mainIndex.createScope(missingFieldIndex);
    String fieldPath = getFieldWithConverterPath();
    assertThatQuery(scope.query().select(f -> f.field(fieldPath, ValueWrapper.class)).where(f -> f.matchAll()).toQuery()).hasHitsAnyOrder(new ValueWrapper<F>(getFieldValue(1)), new ValueWrapper<F>(getFieldValue(2)), new ValueWrapper<F>(getFieldValue(3)), // Empty document
    new ValueWrapper<F>(null), // From the "missing field" index
    new ValueWrapper<F>(null));
}
Also used : SearchException(org.hibernate.search.util.common.SearchException) SimpleFieldModelsByType(org.hibernate.search.integrationtest.backend.tck.testsupport.util.SimpleFieldModelsByType) IndexObjectFieldReference(org.hibernate.search.engine.backend.document.IndexObjectFieldReference) BeforeClass(org.junit.BeforeClass) SimpleFieldModel(org.hibernate.search.integrationtest.backend.tck.testsupport.util.SimpleFieldModel) Searchable(org.hibernate.search.engine.backend.types.Searchable) RunWith(org.junit.runner.RunWith) FromDocumentValueConvertContext(org.hibernate.search.engine.backend.types.converter.runtime.FromDocumentValueConvertContext) SearchSetupHelper(org.hibernate.search.integrationtest.backend.tck.testsupport.util.rule.SearchSetupHelper) SearchResultAssert.assertThatQuery(org.hibernate.search.util.impl.integrationtest.common.assertion.SearchResultAssert.assertThatQuery) ObjectStructure(org.hibernate.search.engine.backend.types.ObjectStructure) ArrayList(java.util.ArrayList) Assertions.assertThatThrownBy(org.assertj.core.api.Assertions.assertThatThrownBy) BulkIndexer(org.hibernate.search.util.impl.integrationtest.mapper.stub.BulkIndexer) FromDocumentValueConverter(org.hibernate.search.engine.backend.types.converter.FromDocumentValueConverter) SimpleMappedIndex(org.hibernate.search.util.impl.integrationtest.mapper.stub.SimpleMappedIndex) StubMappingScope(org.hibernate.search.util.impl.integrationtest.mapper.stub.StubMappingScope) ValueConvert(org.hibernate.search.engine.search.common.ValueConvert) ClassRule(org.junit.ClassRule) DocumentElement(org.hibernate.search.engine.backend.document.DocumentElement) Parameterized(org.junit.runners.Parameterized) ValueWrapper(org.hibernate.search.integrationtest.backend.tck.testsupport.util.ValueWrapper) FieldTypeDescriptor(org.hibernate.search.integrationtest.backend.tck.testsupport.types.FieldTypeDescriptor) Sortable(org.hibernate.search.engine.backend.types.Sortable) Test(org.junit.Test) IndexSchemaElement(org.hibernate.search.engine.backend.document.model.dsl.IndexSchemaElement) IndexSchemaObjectField(org.hibernate.search.engine.backend.document.model.dsl.IndexSchemaObjectField) List(java.util.List) TestForIssue(org.hibernate.search.util.impl.test.annotation.TestForIssue) Aggregable(org.hibernate.search.engine.backend.types.Aggregable) StandardIndexFieldTypeOptionsStep(org.hibernate.search.engine.backend.types.dsl.StandardIndexFieldTypeOptionsStep) Projectable(org.hibernate.search.engine.backend.types.Projectable) ValueWrapper(org.hibernate.search.integrationtest.backend.tck.testsupport.util.ValueWrapper) StubMappingScope(org.hibernate.search.util.impl.integrationtest.mapper.stub.StubMappingScope) Test(org.junit.Test) TestForIssue(org.hibernate.search.util.impl.test.annotation.TestForIssue)

Aggregations

TestForIssue (org.hibernate.search.util.impl.test.annotation.TestForIssue)236 Test (org.junit.Test)236 SearchException (org.hibernate.search.util.common.SearchException)103 Assertions.assertThatThrownBy (org.assertj.core.api.Assertions.assertThatThrownBy)96 ObjectStructure (org.hibernate.search.engine.backend.types.ObjectStructure)83 SearchSetupHelper (org.hibernate.search.integrationtest.backend.tck.testsupport.util.rule.SearchSetupHelper)82 StubMappingScope (org.hibernate.search.util.impl.integrationtest.mapper.stub.StubMappingScope)80 SimpleMappedIndex (org.hibernate.search.util.impl.integrationtest.mapper.stub.SimpleMappedIndex)78 SearchResultAssert.assertThatQuery (org.hibernate.search.util.impl.integrationtest.common.assertion.SearchResultAssert.assertThatQuery)77 List (java.util.List)74 ArrayList (java.util.ArrayList)71 IndexSchemaObjectField (org.hibernate.search.engine.backend.document.model.dsl.IndexSchemaObjectField)69 Rule (org.junit.Rule)69 IndexSchemaElement (org.hibernate.search.engine.backend.document.model.dsl.IndexSchemaElement)66 ClassRule (org.junit.ClassRule)63 Function (java.util.function.Function)62 DocumentElement (org.hibernate.search.engine.backend.document.DocumentElement)58 BeforeClass (org.junit.BeforeClass)57 SearchSession (org.hibernate.search.mapper.javabean.session.SearchSession)56 BulkIndexer (org.hibernate.search.util.impl.integrationtest.mapper.stub.BulkIndexer)56