Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import org.hibernate.search.documentation.testsupport.BackendConfigurations;
import org.hibernate.search.documentation.testsupport.DocumentationSetupHelper;
import org.hibernate.search.util.common.SearchException;
import org.hibernate.search.util.impl.integrationtest.common.FailureReportUtils;
import org.hibernate.search.util.impl.integrationtest.common.reporting.FailureReportUtils;

import org.junit.Rule;
import org.junit.Test;
Expand All @@ -26,7 +26,7 @@ public class ReindexOnUpdateShallowIncorrectIT {
public void missingReindexOnUpdateShallow() {
assertThatThrownBy( () -> setupHelper.start().setup( Book.class, BookCategory.class ) )
.isInstanceOf( SearchException.class )
.hasMessageMatching( FailureReportUtils.buildFailureReportPattern()
.satisfies( FailureReportUtils.hasFailureReport()
.typeContext( Book.class.getName() )
.pathContext( ".category<no value extractors>.name<no value extractors>" )
.failure(
Expand All @@ -35,8 +35,7 @@ public void missingReindexOnUpdateShallow() {
"Hibernate Search needs this information",
"you can disable automatic reindexing with"
+ " @IndexingDependency(reindexOnUpdate = ReindexOnUpdate.SHALLOW)"
)
.build() );
) );
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
import org.hibernate.search.engine.mapper.mapping.building.spi.IndexBindingContext;
import org.hibernate.search.integrationtest.backend.tck.testsupport.util.rule.SearchSetupHelper;
import org.hibernate.search.util.common.SearchException;
import org.hibernate.search.util.impl.integrationtest.common.FailureReportUtils;
import org.hibernate.search.util.impl.integrationtest.common.reporting.FailureReportUtils;
import org.hibernate.search.util.impl.integrationtest.mapper.stub.StubMappedIndex;

import org.junit.Rule;
Expand All @@ -38,7 +38,7 @@ public void error_invalidReference() {
() -> setup( "foobar" )
)
.isInstanceOf( SearchException.class )
.hasMessageMatching( FailureReportUtils.buildFailureReportPattern()
.satisfies( FailureReportUtils.hasFailureReport()
.typeContext( TYPE_NAME )
.indexContext( INDEX_NAME )
.failure(
Expand All @@ -47,7 +47,6 @@ public void error_invalidReference() {
+ ElasticsearchIndexSettings.ANALYSIS_CONFIGURER + "': 'foobar'",
"Unable to load class 'foobar'"
)
.build()
);
}

Expand All @@ -57,14 +56,13 @@ public void error_failingConfigurer() {
() -> setup( FailingConfigurer.class.getName() )
)
.isInstanceOf( SearchException.class )
.hasMessageMatching( FailureReportUtils.buildFailureReportPattern()
.satisfies( FailureReportUtils.hasFailureReport()
.typeContext( TYPE_NAME )
.indexContext( INDEX_NAME )
.failure(
ANALYSIS_CONFIGURER_ERROR_MESSAGE_PREFIX,
FailingConfigurer.FAILURE_MESSAGE
)
.build()
);
}

Expand All @@ -88,15 +86,14 @@ public void error_tokenizer_namingConflict() {
() -> setup( TokenizerNamingConflictConfigurer.class.getName() )
)
.isInstanceOf( SearchException.class )
.hasMessageMatching( FailureReportUtils.buildFailureReportPattern()
.satisfies( FailureReportUtils.hasFailureReport()
.typeContext( TYPE_NAME )
.indexContext( INDEX_NAME )
.failure(
ANALYSIS_CONFIGURER_ERROR_MESSAGE_PREFIX,
"Duplicate tokenizer definitions: 'tokenizerName'",
"Tokenizer names must be unique"
)
.build()
);
}

Expand All @@ -114,15 +111,14 @@ public void error_tokenizer_missingType() {
() -> setup( TokenizerMissingTypeConfigurer.class.getName() )
)
.isInstanceOf( SearchException.class )
.hasMessageMatching( FailureReportUtils.buildFailureReportPattern()
.satisfies( FailureReportUtils.hasFailureReport()
.typeContext( TYPE_NAME )
.indexContext( INDEX_NAME )
.failure(
ANALYSIS_CONFIGURER_ERROR_MESSAGE_PREFIX,
"Invalid tokenizer definition for name 'tokenizerName'",
"Tokenizer definitions must at least define the tokenizer type"
)
.build()
);
}

Expand All @@ -139,15 +135,14 @@ public void error_charFilter_namingConflict() {
() -> setup( CharFilterNamingConflictConfigurer.class.getName() )
)
.isInstanceOf( SearchException.class )
.hasMessageMatching( FailureReportUtils.buildFailureReportPattern()
.satisfies( FailureReportUtils.hasFailureReport()
.typeContext( TYPE_NAME )
.indexContext( INDEX_NAME )
.failure(
ANALYSIS_CONFIGURER_ERROR_MESSAGE_PREFIX,
"Duplicate char filter definitions: 'charFilterName'",
"Char filter names must be unique"
)
.build()
);
}

Expand All @@ -165,15 +160,14 @@ public void error_charFilter_missingType() {
() -> setup( CharFilterMissingTypeConfigurer.class.getName() )
)
.isInstanceOf( SearchException.class )
.hasMessageMatching( FailureReportUtils.buildFailureReportPattern()
.satisfies( FailureReportUtils.hasFailureReport()
.typeContext( TYPE_NAME )
.indexContext( INDEX_NAME )
.failure(
ANALYSIS_CONFIGURER_ERROR_MESSAGE_PREFIX,
"Invalid char filter definition for name 'charFilterName'",
"Char filter definitions must at least define the char filter type"
)
.build()
);
}

Expand All @@ -190,15 +184,14 @@ public void error_tokenFilter_namingConflict() {
() -> setup( TokenFilterNamingConflictConfigurer.class.getName() )
)
.isInstanceOf( SearchException.class )
.hasMessageMatching( FailureReportUtils.buildFailureReportPattern()
.satisfies( FailureReportUtils.hasFailureReport()
.typeContext( TYPE_NAME )
.indexContext( INDEX_NAME )
.failure(
ANALYSIS_CONFIGURER_ERROR_MESSAGE_PREFIX,
"Duplicate token filter definitions: 'tokenFilterName'",
"Token filter names must be unique"
)
.build()
);
}

Expand All @@ -216,15 +209,14 @@ public void error_tokenFilter_missingType() {
() -> setup( TokenFilterMissingTypeConfigurer.class.getName() )
)
.isInstanceOf( SearchException.class )
.hasMessageMatching( FailureReportUtils.buildFailureReportPattern()
.satisfies( FailureReportUtils.hasFailureReport()
.typeContext( TYPE_NAME )
.indexContext( INDEX_NAME )
.failure(
ANALYSIS_CONFIGURER_ERROR_MESSAGE_PREFIX,
"Invalid token filter definition for name 'tokenFilterName'",
"Token filter definitions must at least define the token filter type"
)
.build()
);
}

Expand All @@ -241,7 +233,7 @@ public void error_parameter_namingConflict() {
() -> setup( ParameterNamingConflictConfigurer.class.getName() )
)
.isInstanceOf( SearchException.class )
.hasMessageMatching( FailureReportUtils.buildFailureReportPattern()
.satisfies( FailureReportUtils.hasFailureReport()
.typeContext( TYPE_NAME )
.indexContext( INDEX_NAME )
.failure(
Expand All @@ -250,7 +242,6 @@ public void error_parameter_namingConflict() {
"'\"value1\"'",
"'\"value2\"'"
)
.build()
);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
import org.hibernate.search.integrationtest.backend.elasticsearch.testsupport.util.ElasticsearchClientSpy;
import org.hibernate.search.integrationtest.backend.tck.testsupport.util.rule.SearchSetupHelper;
import org.hibernate.search.util.common.SearchException;
import org.hibernate.search.util.impl.integrationtest.common.FailureReportUtils;
import org.hibernate.search.util.impl.integrationtest.common.reporting.FailureReportUtils;
import org.hibernate.search.util.impl.integrationtest.mapper.stub.StubMappedIndex;
import org.hibernate.search.util.impl.test.annotation.TestForIssue;

Expand Down Expand Up @@ -45,14 +45,13 @@ public void cannotConnect() {
"Closed port"
)
.isInstanceOf( SearchException.class )
.hasMessageMatching( FailureReportUtils.buildFailureReportPattern()
.satisfies( FailureReportUtils.hasFailureReport()
.defaultBackendContext()
.failure(
"Unable to detect the Elasticsearch version running on the cluster",
"Elasticsearch request failed",
"Connection refused"
)
.build()
);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
import org.hibernate.search.util.common.SearchException;
import org.hibernate.search.util.impl.integrationtest.backend.elasticsearch.dialect.ElasticsearchTestDialect;
import org.hibernate.search.util.impl.integrationtest.backend.elasticsearch.rule.TestElasticsearchClient;
import org.hibernate.search.util.impl.integrationtest.common.FailureReportUtils;
import org.hibernate.search.util.impl.integrationtest.common.reporting.FailureReportUtils;
import org.hibernate.search.util.impl.integrationtest.mapper.stub.StubMappedIndex;
import org.hibernate.search.util.impl.integrationtest.mapper.stub.StubMappingSchemaManagementStrategy;
import org.hibernate.search.util.impl.test.annotation.TestForIssue;
Expand Down Expand Up @@ -104,13 +104,12 @@ public void noVersionCheck_missingVersion() {
"NO version check without explicit version number"
)
.isInstanceOf( SearchException.class )
.hasMessageMatching( FailureReportUtils.buildFailureReportPattern()
.satisfies( FailureReportUtils.hasFailureReport()
.defaultBackendContext()
.failure( "Invalid value for configuration property 'hibernate.search.backend.version': ''",
"Missing or imprecise Elasticsearch version",
"when configuration property 'hibernate.search.backend.version_check.enabled' is set to 'false'",
"the version is mandatory and must be at least as precise as 'x.y', where 'x' and 'y' are integers" )
.build()
);
}

Expand Down Expand Up @@ -143,13 +142,12 @@ public void noVersionCheck_incompleteVersion() {
"NO version check with partial version number"
)
.isInstanceOf( SearchException.class )
.hasMessageMatching( FailureReportUtils.buildFailureReportPattern()
.satisfies( FailureReportUtils.hasFailureReport()
.defaultBackendContext()
.failure( "Invalid value for configuration property 'hibernate.search.backend.version': '" + versionWithMajorOnly + "'",
"Missing or imprecise Elasticsearch version",
"when configuration property 'hibernate.search.backend.version_check.enabled' is set to 'false'",
"the version is mandatory and must be at least as precise as 'x.y', where 'x' and 'y' are integers" )
.build()
);
}

Expand Down Expand Up @@ -222,7 +220,7 @@ public void noVersionCheck_versionOverrideOnStart_incompatibleVersion() {
assertThatThrownBy(
() -> partialSetup.doSecondPhase( AllAwareConfigurationPropertySource.fromMap( runtimeProperties ) ) )
.isInstanceOf( SearchException.class )
.hasMessageMatching( FailureReportUtils.buildFailureReportPattern()
.satisfies( FailureReportUtils.hasFailureReport()
.defaultBackendContext()
.failure(
"Invalid value for configuration property 'hibernate.search.backend.version': '"
Expand All @@ -233,7 +231,6 @@ public void noVersionCheck_versionOverrideOnStart_incompatibleVersion() {
+ " when the backend was created.",
"You can provide a more precise version on startup,"
+ " but you cannot override the version that was provided when the backend was created." )
.build()
);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
import org.hibernate.search.integrationtest.backend.tck.testsupport.util.rule.SearchSetupHelper;
import org.hibernate.search.util.common.SearchException;
import org.hibernate.search.util.impl.integrationtest.backend.elasticsearch.rule.TestElasticsearchClient;
import org.hibernate.search.util.impl.integrationtest.common.FailureReportUtils;
import org.hibernate.search.util.impl.integrationtest.common.reporting.FailureReportUtils;
import org.hibernate.search.util.impl.integrationtest.mapper.stub.StubMappedIndex;
import org.hibernate.search.util.impl.test.annotation.TestForIssue;

Expand Down Expand Up @@ -42,13 +42,12 @@ public void nameConflict_aliasesOfSingleIndex() {
"index2-write", "index2-read"
) ) )
.isInstanceOf( SearchException.class )
.hasMessageMatching(
FailureReportUtils.buildFailureReportPattern()
.satisfies(
FailureReportUtils.hasFailureReport()
.indexContext( index1.name() )
.failure( "Invalid Elasticsearch index layout",
"write alias and read alias are set to the same value: 'alias-conflicting'",
"The write alias and read alias must be different" )
.build()
);
}

Expand Down Expand Up @@ -104,15 +103,14 @@ private void setupExpectingCrossIndexNameConflict(String index1WriteAlias, Strin
index2WriteAlias, index2ReadAlias
) ) )
.isInstanceOf( SearchException.class )
.hasMessageMatching(
FailureReportUtils.buildFailureReportPattern()
.satisfies(
FailureReportUtils.hasFailureReport()
.failure(
"Conflicting index names: Hibernate Search indexes '" + index1.name()
+ "' and '" + index2.name()
+ "' both target the Elasticsearch index name or alias '"
+ conflictingName + "'"
)
.build()
);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
import static org.hibernate.search.util.impl.integrationtest.backend.elasticsearch.ElasticsearchIndexMetadataTestUtils.discriminatorMappingOmitDefaults;

import org.hibernate.search.util.impl.integrationtest.backend.elasticsearch.ElasticsearchIndexMetadataTestUtils;
import org.hibernate.search.util.impl.integrationtest.common.FailureReportUtils;
import org.hibernate.search.util.impl.integrationtest.common.reporting.FailureReportChecker;
import org.hibernate.search.util.impl.integrationtest.common.reporting.FailureReportUtils;

class ElasticsearchIndexSchemaManagerTestUtils {

Expand Down Expand Up @@ -72,8 +73,8 @@ static String defaultMetadataMappingAndCommaForExpectations() {
return mapping.isEmpty() ? "" : mapping + ", ";
}

static FailureReportUtils.FailureReportPatternBuilder buildValidationFailureReportPattern() {
return FailureReportUtils.buildFailureReportPattern()
static FailureReportChecker hasValidationFailureReport() {
return FailureReportUtils.hasFailureReport()
.contextLiteral( STUB_CONTEXT_LITERAL )
.failure( "Validation of the existing index in the Elasticsearch cluster failed. See below for details." );
}
Expand Down
Loading