You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by kr...@apache.org on 2022/10/20 19:46:11 UTC

[solr] branch branch_9x updated (82e642edfa7 -> 89f0baa7421)

This is an automated email from the ASF dual-hosted git repository.

krisden pushed a change to branch branch_9x
in repository https://gitbox.apache.org/repos/asf/solr.git


    from 82e642edfa7 SOLR-15748 : Created v2 equivalent of v1 'CLUSTERSTATUS' command (#1061)
     new 13aeddfca11 rerun ./gradlew updateLicenses
     new 89f0baa7421 SOLR-16311: Simplify assert statements (#953)

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../org/apache/solr/BasicFunctionalityTest.java    |   14 +-
 .../src/test/org/apache/solr/CursorPagingTest.java |    2 +-
 .../src/test/org/apache/solr/OutputWriterTest.java |    2 +-
 .../org/apache/solr/TestDistributedSearch.java     |   29 +-
 .../test/org/apache/solr/TestRandomDVFaceting.java |    9 +-
 .../test/org/apache/solr/TestRandomFaceting.java   |    8 +-
 .../apache/solr/cloud/CollectionsAPISolrJTest.java |    2 +-
 .../test/org/apache/solr/cloud/DeleteNodeTest.java |    4 +-
 .../org/apache/solr/cloud/DeleteReplicaTest.java   |    4 +-
 .../DistribDocExpirationUpdateProcessorTest.java   |    6 +-
 .../solr/cloud/DistribJoinFromCollectionTest.java  |    6 +-
 .../solr/cloud/DistributedVersionInfoTest.java     |    3 +-
 .../solr/cloud/HttpPartitionOnCommitTest.java      |   10 +-
 .../org/apache/solr/cloud/HttpPartitionTest.java   |   13 +-
 .../cloud/LeaderFailoverAfterPartitionTest.java    |   10 +-
 .../solr/cloud/LeaderVoteWaitTimeoutTest.java      |    3 +-
 .../test/org/apache/solr/cloud/OverseerTest.java   |    8 +-
 .../solr/cloud/ParallelCommitExecutionTest.java    |    2 +-
 .../apache/solr/cloud/ReplicationFactorTest.java   |   11 +-
 .../solr/cloud/SegmentTerminateEarlyTestState.java |   44 +-
 .../org/apache/solr/cloud/SolrCLIZkUtilsTest.java  |    2 +-
 .../apache/solr/cloud/SolrCloudExampleTest.java    |   10 +-
 .../apache/solr/cloud/TestCloudConsistency.java    |    3 +-
 .../TestCloudPhrasesIdentificationComponent.java   |    2 +-
 .../org/apache/solr/cloud/TestCloudPivotFacet.java |    4 +-
 .../solr/cloud/TestCloudPseudoReturnFields.java    |    8 +-
 .../solr/cloud/TestCloudSearcherWarming.java       |    9 +-
 .../org/apache/solr/cloud/TestConfigSetsAPI.java   |   29 +-
 .../solr/cloud/TestMiniSolrCloudClusterSSL.java    |    4 +-
 .../solr/cloud/TestOnReconnectListenerSupport.java |    2 +-
 .../apache/solr/cloud/TestRandomFlRTGCloud.java    |    5 +-
 .../cloud/TestStressCloudBlindAtomicUpdates.java   |    6 +-
 .../solr/cloud/TestStressInPlaceUpdates.java       |    2 +-
 .../solr/cloud/TestTlogReplayVsRecovery.java       |    4 +-
 .../org/apache/solr/cloud/TestTlogReplica.java     |    2 +-
 .../TestTolerantUpdateProcessorRandomCloud.java    |   12 +-
 .../SimpleCollectionCreateDeleteTest.java          |    6 +-
 .../cloud/api/collections/SplitByPrefixTest.java   |    8 +-
 .../cluster/events/ClusterEventProducerTest.java   |    3 +-
 .../plugins/AffinityPlacementFactoryTest.java      |    2 +-
 .../solr/common/cloud/ZkDynamicConfigTest.java     |    4 +-
 .../solr/core/BlobRepositoryMockingTest.java       |   10 +-
 .../test/org/apache/solr/core/CoreSorterTest.java  |    4 +-
 .../solr/core/ExitableDirectoryReaderTest.java     |    4 +-
 .../test/org/apache/solr/core/PluginInfoTest.java  |   12 +-
 .../org/apache/solr/core/QueryResultKeyTest.java   |   17 +-
 .../org/apache/solr/core/RequestHandlersTest.java  |    2 +-
 .../org/apache/solr/core/ResourceLoaderTest.java   |    6 +-
 .../src/test/org/apache/solr/core/SOLR749Test.java |    6 +-
 .../test/org/apache/solr/core/SolrCoreTest.java    |   25 +-
 .../src/test/org/apache/solr/core/TestConfig.java  |   27 +-
 .../org/apache/solr/core/TestCoreContainer.java    |    5 +-
 .../org/apache/solr/core/TestCoreDiscovery.java    |   12 +-
 .../apache/solr/core/TestCorePropertiesReload.java |    4 +-
 .../apache/solr/core/TestMergePolicyConfig.java    |    2 +-
 .../apache/solr/core/TestQuerySenderListener.java  |   10 +-
 .../apache/solr/core/TestSolrDeletionPolicy1.java  |    2 +-
 .../apache/solr/core/TestSolrDeletionPolicy2.java  |   13 +-
 .../solr/core/backup/BackupFilePathsTest.java      |    7 +-
 .../solr/core/snapshots/TestSolrCoreSnapshots.java |    2 +-
 .../handler/BinaryUpdateRequestHandlerTest.java    |    2 +-
 .../handler/FieldAnalysisRequestHandlerTest.java   |    8 +-
 .../org/apache/solr/handler/JsonLoaderTest.java    |   22 +-
 .../solr/handler/PingRequestHandlerTest.java       |    4 +-
 .../apache/solr/handler/ReplicationTestHelper.java |   18 +-
 .../solr/handler/TestReplicationHandler.java       |   24 +-
 .../solr/handler/TestSampleDocumentsLoader.java    |   11 +-
 .../solr/handler/TestStressThreadBackup.java       |    2 -
 .../solr/handler/V2ClusterAPIMappingTest.java      |    5 +-
 .../solr/handler/V2UpdateAPIMappingTest.java       |    5 +-
 .../solr/handler/XmlUpdateRequestHandlerTest.java  |    2 +-
 .../solr/handler/admin/LukeRequestHandlerTest.java |    2 +-
 .../solr/handler/admin/MetricsHandlerTest.java     |    6 +-
 .../handler/admin/SecurityConfHandlerTest.java     |    2 +-
 .../solr/handler/admin/SolrEnvironmentTest.java    |    6 +-
 .../solr/handler/admin/ThreadDumpHandlerTest.java  |   12 +-
 .../solr/handler/admin/V2ApiMappingTest.java       |    5 +-
 .../admin/V2CollectionBackupsAPIMappingTest.java   |    2 +-
 .../handler/admin/V2CollectionsAPIMappingTest.java |   11 +-
 .../solr/handler/admin/V2CoresAPIMappingTest.java  |   10 +-
 .../admin/api/V2CollectionAPIMappingTest.java      |   14 +-
 .../handler/admin/api/V2CoreAPIMappingTest.java    |    6 +-
 .../handler/admin/api/V2NodeAPIMappingTest.java    |    6 +-
 .../handler/admin/api/V2ShardsAPIMappingTest.java  |   18 +-
 .../component/DistributedDebugComponentTest.java   |    2 +-
 .../DistributedFacetPivotLongTailTest.java         |    2 +-
 .../DistributedFacetPivotSmallAdvancedTest.java    |    5 +-
 .../component/DistributedFacetPivotSmallTest.java  |    4 +-
 .../DistributedQueryComponentOptimizationTest.java |    5 +-
 .../DistributedSpellCheckComponentTest.java        |    3 +-
 .../component/DistributedSuggestComponentTest.java |    3 +-
 .../PhrasesIdentificationComponentTest.java        |    2 +-
 .../handler/component/ShardsAllowListTest.java     |    2 +-
 .../handler/component/SpellCheckComponentTest.java |   10 +-
 .../solr/handler/component/StatsComponentTest.java |   20 +-
 .../solr/handler/component/TermsComponentTest.java |    8 +-
 .../component/TestTrackingShardHandlerFactory.java |    4 +-
 .../handler/designer/ManagedSchemaDiffTest.java    |   33 +-
 .../solr/handler/export/TestExportWriter.java      |    6 +-
 .../solr/handler/loader/JavabinLoaderTest.java     |    2 +-
 .../solr/handler/tagger/RandomizedTaggerTest.java  |    2 +-
 .../org/apache/solr/handler/tagger/TaggerTest.java |    4 +-
 .../apache/solr/handler/tagger/TaggerTestCase.java |    2 +-
 .../apache/solr/internal/csv/CSVParserTest.java    |   31 +-
 .../apache/solr/internal/csv/CSVPrinterTest.java   |    2 +-
 .../apache/solr/internal/csv/CSVStrategyTest.java  |   18 +-
 .../internal/csv/ExtendedBufferedReaderTest.java   |   53 +-
 .../apache/solr/legacy/TestLegacyFieldReuse.java   |    1 -
 .../apache/solr/legacy/TestLegacyNumericUtils.java |   10 +-
 .../solr/legacy/TestNumericRangeQuery32.java       |    4 +-
 .../solr/metrics/DelegateRegistryTimerTest.java    |    6 +-
 .../org/apache/solr/metrics/MetricsConfigTest.java |    4 +-
 .../metrics/reporters/SolrJmxReporterTest.java     |    2 +-
 .../solr/parser/SolrQueryParserBaseTest.java       |   23 +-
 .../apache/solr/request/TestIntervalFaceting.java  |    6 +-
 .../solr/request/macro/TestMacroExpander.java      |    2 +-
 .../solr/response/TestRetrieveFieldsOptimizer.java |    5 +-
 .../solr/response/TestSolrQueryResponse.java       |    8 +-
 .../transform/TestSubQueryTransformer.java         |    2 +-
 .../apache/solr/schema/ChangedSchemaMergeTest.java |    2 +-
 .../test/org/apache/solr/schema/CopyFieldTest.java |   18 +-
 .../apache/solr/schema/DenseVectorFieldTest.java   |   11 +-
 .../schema/OpenExchangeRatesOrgProviderTest.java   |    2 +-
 .../test/org/apache/solr/schema/PolyFieldTest.java |    2 +-
 .../apache/solr/schema/PreAnalyzedFieldTest.java   |    2 +-
 .../schema/SchemaVersionSpecificBehaviorTest.java  |    6 +-
 .../org/apache/solr/schema/TestPointFields.java    |   70 +-
 .../solr/schema/TestSchemalessBufferedUpdates.java |    2 +-
 .../apache/solr/schema/TestSortableTextField.java  |    9 +-
 .../org/apache/solr/search/MergeStrategyTest.java  |    6 +-
 .../apache/solr/search/RankQueryTestPlugin.java    |    7 +-
 .../org/apache/solr/search/ReturnFieldsTest.java   |    7 +-
 .../apache/solr/search/SolrIndexSearcherTest.java  |    2 +-
 .../apache/solr/search/SortSpecParsingTest.java    |   28 +-
 .../org/apache/solr/search/TestCaffeineCache.java  |    6 +-
 .../solr/search/TestCollapseQParserPlugin.java     |   10 +-
 .../test/org/apache/solr/search/TestDocSet.java    |    2 +-
 .../solr/search/TestExtendedDismaxParser.java      |   19 +-
 .../apache/solr/search/TestFilteredDocIdSet.java   |    9 +-
 .../test/org/apache/solr/search/TestFiltering.java |    6 +-
 .../apache/solr/search/TestHashQParserPlugin.java  |   20 +-
 .../org/apache/solr/search/TestIndexSearcher.java  |   12 +-
 .../org/apache/solr/search/TestQueryUtils.java     |   12 +-
 .../search/TestRandomCollapseQParserPlugin.java    |    9 +-
 .../org/apache/solr/search/TestRangeQuery.java     |    4 +-
 .../solr/search/TestReRankQParserPlugin.java       |    4 +-
 .../org/apache/solr/search/TestRealTimeGet.java    |    2 +-
 .../test/org/apache/solr/search/TestRecovery.java  |   10 +-
 .../org/apache/solr/search/TestStressLucene.java   |    4 +-
 .../org/apache/solr/search/TestStressRecovery.java |    6 +-
 .../org/apache/solr/search/TestStressReorder.java  |    2 +-
 .../apache/solr/search/TestStressUserVersions.java |    4 +-
 .../org/apache/solr/search/TestStressVersions.java |    2 +-
 ...stributedFacetSimpleRefinementLongTailTest.java |    4 +-
 .../solr/search/facet/RangeFacetCloudTest.java     |    4 +-
 .../search/facet/TestCloudJSONFacetJoinDomain.java |   19 +-
 .../solr/search/facet/TestCloudJSONFacetSKG.java   |   17 +-
 .../search/facet/TestCloudJSONFacetSKGEquiv.java   |   19 +-
 .../apache/solr/search/facet/TestJsonFacets.java   |    6 +-
 .../solr/search/function/TestFunctionQuery.java    |   14 +-
 .../function/TestMinMaxOnMultiValuedField.java     |    2 +-
 .../apache/solr/search/function/TestOrdValues.java |    8 +-
 .../function/distance/DistanceFunctionTest.java    |    2 +-
 .../org/apache/solr/search/join/BJQParserTest.java |    6 +-
 .../solr/search/join/TestNestedDocsSort.java       |    2 +-
 .../solr/search/join/TestScoreJoinQPNoScore.java   |    2 +-
 .../join/another/BJQFilterAccessibleTest.java      |    3 +-
 .../similarities/TestClassicSimilarityFactory.java |    4 +-
 .../org/apache/solr/servlet/CacheHeaderTest.java   |    2 +-
 .../solr/servlet/TestRequestRateLimiter.java       |    2 +-
 .../spelling/ConjunctionSolrSpellCheckerTest.java  |    3 +-
 .../solr/spelling/DirectSolrSpellCheckerTest.java  |    5 +-
 .../solr/spelling/FileBasedSpellCheckerTest.java   |   45 +-
 .../solr/spelling/IndexBasedSpellCheckerTest.java  |  124 +-
 .../solr/spelling/SpellCheckCollatorTest.java      |   51 +-
 .../spelling/SpellPossibilityIteratorTest.java     |   27 +-
 .../solr/spelling/SpellingQueryConverterTest.java  |   39 +-
 .../spelling/WordBreakSolrSpellCheckerTest.java    |  102 +-
 .../solr/spelling/suggest/SuggesterTest.java       |    2 +-
 .../apache/solr/uninverting/TestFieldCache.java    |   14 +-
 .../solr/uninverting/TestFieldCacheSortRandom.java |    2 +-
 .../uninverting/TestFieldCacheVsDocValues.java     |    2 +-
 .../solr/uninverting/TestLegacyFieldCache.java     |   10 +-
 .../solr/update/DirectUpdateHandlerTest.java       |    5 +-
 .../apache/solr/update/DocumentBuilderTest.java    |    5 +-
 .../apache/solr/update/MaxSizeAutoCommitTest.java  |   19 +-
 .../test/org/apache/solr/update/PeerSyncTest.java  |   18 +-
 .../PeerSyncWithIndexFingerprintCachingTest.java   |    3 +-
 .../org/apache/solr/update/SoftAutoCommitTest.java |    7 +-
 .../apache/solr/update/SolrIndexConfigTest.java    |    4 +-
 .../solr/update/TestInPlaceUpdatesDistrib.java     |   29 +-
 .../solr/update/TestInPlaceUpdatesStandalone.java  |    2 +-
 .../solr/update/TestNestedUpdateProcessor.java     |    6 +-
 .../org/apache/solr/update/UpdateParamsTest.java   |    8 +-
 .../update/processor/AtomicUpdateJavabinTest.java  |    2 +-
 .../CategoryRoutedAliasUpdateProcessorTest.java    |    2 +-
 .../DimensionalRoutedAliasUpdateProcessorTest.java |    2 +-
 .../update/processor/NestedAtomicUpdateTest.java   |    7 +-
 .../SkipExistingDocumentsProcessorFactoryTest.java |    4 +-
 .../update/processor/TestCloudDeduplication.java   |    2 +-
 .../processor/TestDocBasedVersionConstraints.java  |    2 +-
 .../TimeRoutedAliasUpdateProcessorTest.java        |   10 +-
 .../processor/TrackingUpdateProcessorFactory.java  |    4 +-
 .../org/apache/solr/util/OrderedExecutorTest.java  |    2 +-
 .../org/apache/solr/util/SimplePostToolTest.java   |   22 +-
 .../org/apache/solr/util/SolrCliUptimeTest.java    |    5 +-
 .../apache/solr/util/TestSolrCLIRunExample.java    |    7 +-
 .../src/test/org/apache/solr/util/TestUtils.java   |    2 +-
 .../hll/BigEndianAscendingWordSerializerTest.java  |   25 +-
 .../org/apache/solr/util/hll/BitVectorTest.java    |   16 +-
 .../org/apache/solr/util/hll/ExplicitHLLTest.java  |    2 +-
 .../apache/solr/util/hll/HLLSerializationTest.java |    8 +-
 .../org/apache/solr/util/hll/NumberUtilTest.java   |   63 +-
 .../licenses/lucene-analysis-common-9.4.0.jar.sha1 |    2 +-
 solr/licenses/lucene-analysis-icu-9.4.0.jar.sha1   |    2 +-
 .../lucene-analysis-kuromoji-9.4.0.jar.sha1        |    2 +-
 .../lucene-analysis-morfologik-9.4.0.jar.sha1      |    2 +-
 solr/licenses/lucene-analysis-nori-9.4.0.jar.sha1  |    2 +-
 .../lucene-analysis-opennlp-9.4.0.jar.sha1         |    2 +-
 .../lucene-analysis-phonetic-9.4.0.jar.sha1        |    2 +-
 .../lucene-analysis-smartcn-9.4.0.jar.sha1         |    2 +-
 .../lucene-analysis-stempel-9.4.0.jar.sha1         |    2 +-
 .../licenses/lucene-backward-codecs-9.4.0.jar.sha1 |    2 +-
 solr/licenses/lucene-classification-9.4.0.jar.sha1 |    2 +-
 solr/licenses/lucene-codecs-9.4.0.jar.sha1         |    2 +-
 solr/licenses/lucene-core-9.4.0.jar.sha1           |    2 +-
 solr/licenses/lucene-expressions-9.4.0.jar.sha1    |    2 +-
 solr/licenses/lucene-grouping-9.4.0.jar.sha1       |    2 +-
 solr/licenses/lucene-highlighter-9.4.0.jar.sha1    |    2 +-
 solr/licenses/lucene-join-9.4.0.jar.sha1           |    2 +-
 solr/licenses/lucene-memory-9.4.0.jar.sha1         |    2 +-
 solr/licenses/lucene-misc-9.4.0.jar.sha1           |    2 +-
 solr/licenses/lucene-queries-9.4.0.jar.sha1        |    2 +-
 solr/licenses/lucene-queryparser-9.4.0.jar.sha1    |    2 +-
 solr/licenses/lucene-sandbox-9.4.0.jar.sha1        |    2 +-
 solr/licenses/lucene-spatial-extras-9.4.0.jar.sha1 |    2 +-
 solr/licenses/lucene-spatial3d-9.4.0.jar.sha1      |    2 +-
 solr/licenses/lucene-suggest-9.4.0.jar.sha1        |    2 +-
 solr/licenses/lucene-test-framework-9.4.0.jar.sha1 |    2 +-
 .../solr/analytics/ExpressionFactoryTest.java      |   36 +-
 .../mapping/AbsoluteValueFunctionTest.java         |    8 +-
 .../function/mapping/AddFunctionTest.java          |    4 +-
 .../function/mapping/AndFunctionTest.java          |   24 +-
 .../function/mapping/CeilingFunctionTest.java      |    4 +-
 .../function/mapping/ConcatFunctionTest.java       |   24 +-
 .../function/mapping/DivideFunctionTest.java       |    8 +-
 .../function/mapping/EqualFunctionTest.java        |   48 +-
 .../function/mapping/FillMissingFunctionTest.java  |   28 +-
 .../function/mapping/FilterFunctionTest.java       |  100 +-
 .../function/mapping/FloorFunctionTest.java        |    4 +-
 .../function/mapping/GTEFunctionTest.java          |   28 +-
 .../analytics/function/mapping/GTFunctionTest.java |   28 +-
 .../analytics/function/mapping/IfFunctionTest.java |    8 +-
 .../function/mapping/LTEFunctionTest.java          |   28 +-
 .../analytics/function/mapping/LTFunctionTest.java |   28 +-
 .../function/mapping/LogFunctionTest.java          |   10 +-
 .../function/mapping/MultFunctionTest.java         |    4 +-
 .../function/mapping/NegateFunctionTest.java       |   14 +-
 .../analytics/function/mapping/OrFunctionTest.java |   24 +-
 .../function/mapping/PowerFunctionTest.java        |    8 +-
 .../function/mapping/RemoveFunctionTest.java       |   54 +-
 .../function/mapping/ReplaceFunctionTest.java      |   38 +-
 .../function/mapping/RoundFunctionTest.java        |    4 +-
 .../function/mapping/StringCastFunctionTest.java   |    2 +-
 .../function/mapping/SubtractFunctionTest.java     |    8 +-
 .../legacy/expression/LegacyFunctionTest.java      |    2 +-
 .../legacy/facet/LegacyFieldFacetCloudTest.java    |  473 +++---
 .../legacy/facet/LegacyFieldFacetTest.java         |  481 +++---
 .../util/OldAnalyticsRequestConverterUnitTest.java |    2 +-
 .../analytics/value/CastingAnalyticsValueTest.java |    2 +-
 .../value/CastingBooleanValueStreamTest.java       |    4 +-
 .../analytics/value/CastingBooleanValueTest.java   |    8 +-
 .../value/CastingDoubleValueStreamTest.java        |    4 +-
 .../analytics/value/CastingDoubleValueTest.java    |    6 +-
 .../value/CastingFloatValueStreamTest.java         |    6 +-
 .../analytics/value/CastingFloatValueTest.java     |    8 +-
 .../analytics/value/CastingIntValueStreamTest.java |   10 +-
 .../solr/analytics/value/CastingIntValueTest.java  |   12 +-
 .../value/CastingLongValueStreamTest.java          |    6 +-
 .../solr/analytics/value/CastingLongValueTest.java |    8 +-
 .../value/CastingStringValueStreamTest.java        |    2 +-
 .../analytics/value/CastingStringValueTest.java    |    4 +-
 .../solr/analytics/value/ConstantValueTest.java    |    8 +-
 .../ClusteringComponentDistributedTest.java        |    3 +-
 .../clustering/ClusteringComponentTest.java        |    5 +-
 .../extraction/ExtractingRequestHandlerTest.java   |   42 +-
 .../handler/extraction/ParseContextConfigTest.java |    2 +-
 .../repository/HdfsBackupRepositoryTest.java       |   19 +-
 .../hdfs/cloud/MoveReplicaHdfsFailoverTest.java    |    2 +-
 .../apache/solr/hdfs/search/TestRecoveryHdfs.java  |    2 +-
 .../solr/hdfs/store/HdfsLockFactoryTest.java       |    8 +-
 .../solr/hdfs/store/blockcache/BlockCacheTest.java |    3 +-
 ...geIdentifierUpdateProcessorFactoryTestCase.java |    2 +-
 .../processor/SolrInputDocumentReaderTest.java     |    8 +-
 .../org/apache/solr/ltr/TestLTRQParserPlugin.java  |    8 +-
 .../org/apache/solr/ltr/TestLTRScoringQuery.java   |   12 +-
 .../solr/ltr/TestParallelWeightCreation.java       |    4 +-
 .../TestFeatureExtractionFromMultipleSegments.java |    4 +-
 .../interleaving/TestLTRQParserInterleaving.java   |    6 +-
 .../apache/solr/ltr/norm/TestMinMaxNormalizer.java |    5 +-
 .../solr/ltr/norm/TestStandardNormalizer.java      |    5 +-
 .../solr/ltr/store/rest/TestModelManager.java      |    7 +-
 .../apache/solr/handler/sql/TestSQLHandler.java    | 1158 +++++++-------
 .../prometheus/collector/MetricSamplesTest.java    |    5 +-
 .../exporter/MetricsQueryTemplateTest.java         |    7 +-
 .../query-guide/examples/JsonRequestApiTest.java   |    4 +-
 .../apache/solr/common/cloud/SolrZkClientTest.java |    6 +-
 .../apache/solr/client/solrj/SolrExampleTests.java |   89 +-
 .../solr/client/solrj/SolrExampleTestsBase.java    |   17 +-
 .../apache/solr/client/solrj/SolrQueryTest.java    |  103 +-
 .../solr/client/solrj/TestLBHttp2SolrClient.java   |    7 +-
 .../solr/client/solrj/TestLBHttpSolrClient.java    |    7 +-
 .../embedded/SolrExampleStreamingHttp2Test.java    |    3 +-
 .../solrj/embedded/SolrExampleStreamingTest.java   |    3 +-
 .../solrj/embedded/TestEmbeddedSolrServer.java     |   13 +-
 .../client/solrj/impl/BasicHttpSolrClientTest.java |    2 +-
 .../solrj/impl/CloudHttp2SolrClientTest.java       |    2 +-
 .../client/solrj/impl/CloudSolrClientTest.java     |    2 +-
 .../impl/ConcurrentUpdateHttp2SolrClientTest.java  |   15 +-
 .../solrj/impl/ConcurrentUpdateSolrClientTest.java |   15 +-
 .../client/solrj/impl/Http2SolrClientTest.java     |    2 +-
 .../solr/client/solrj/impl/HttpClientUtilTest.java |    8 +-
 .../solrj/impl/HttpSolrClientBuilderTest.java      |    6 +-
 .../impl/HttpSolrClientSSLAuthConPoolTest.java     |    2 +-
 .../client/solrj/impl/LBHttp2SolrClientTest.java   |    7 +-
 .../solrj/impl/LBHttpSolrClientBuilderTest.java    |    4 +-
 .../client/solrj/impl/LBHttpSolrClientTest.java    |    6 +-
 .../solr/client/solrj/impl/LBSolrClientTest.java   |    7 +-
 .../solrj/impl/SolrPortAwareCookieSpecTest.java    |   19 +-
 .../solrj/impl/TestCloudSolrClientConnections.java |    2 +-
 .../client/solrj/io/graph/GraphExpressionTest.java |  357 +++--
 .../solr/client/solrj/io/graph/GraphTest.java      |   10 +-
 .../apache/solr/client/solrj/io/sql/JdbcTest.java  |   26 +-
 .../solrj/io/stream/CloudAuthStreamTest.java       |    2 +-
 .../client/solrj/io/stream/JDBCStreamTest.java     |    2 +-
 .../client/solrj/io/stream/MathExpressionTest.java |  810 +++++-----
 .../solrj/io/stream/StreamDecoratorTest.java       |  869 ++++++-----
 .../solrj/io/stream/StreamExpressionTest.java      | 1634 ++++++++++----------
 .../io/stream/StreamExpressionToExpessionTest.java |    6 +-
 .../stream/StreamExpressionToExplanationTest.java  |   77 +-
 .../solr/client/solrj/io/stream/StreamingTest.java |  386 ++---
 .../io/stream/eval/AbsoluteValueEvaluatorTest.java |   23 +-
 .../solrj/io/stream/eval/AddEvaluatorTest.java     |   91 +-
 .../solrj/io/stream/eval/AndEvaluatorTest.java     |   37 +-
 .../solrj/io/stream/eval/AppendEvaluatorTest.java  |   11 +-
 .../io/stream/eval/ArcCosineEvaluatorTest.java     |    7 +-
 .../solrj/io/stream/eval/ArcSineEvaluatorTest.java |    7 +-
 .../io/stream/eval/ArcTangentEvaluatorTest.java    |    7 +-
 .../solrj/io/stream/eval/ArrayEvaluatorTest.java   |   76 +-
 .../solrj/io/stream/eval/CeilingEvaluatorTest.java |    7 +-
 .../io/stream/eval/CoalesceEvaluatorTest.java      |   17 +-
 .../io/stream/eval/ConversionEvaluatorsTest.java   |   10 +-
 .../io/stream/eval/CorrelationEvaluatorTest.java   |    3 +-
 .../solrj/io/stream/eval/CosineEvaluatorTest.java  |    7 +-
 .../io/stream/eval/CubedRootEvaluatorTest.java     |    7 +-
 .../eval/CumulativeProbabilityEvaluatorTest.java   |    3 +-
 .../solrj/io/stream/eval/DivideEvaluatorTest.java  |   19 +-
 .../solrj/io/stream/eval/EqualToEvaluatorTest.java |   85 +-
 .../io/stream/eval/ExclusiveOrEvaluatorTest.java   |   37 +-
 .../io/stream/eval/FieldValueEvaluatorTest.java    |   56 +-
 .../solrj/io/stream/eval/FloorEvaluatorTest.java   |    7 +-
 .../eval/GreaterThanEqualToEvaluatorTest.java      |   81 +-
 .../io/stream/eval/GreaterThanEvaluatorTest.java   |   81 +-
 .../stream/eval/HyperbolicCosineEvaluatorTest.java |    7 +-
 .../stream/eval/HyperbolicSineEvaluatorTest.java   |    7 +-
 .../solrj/io/stream/eval/LengthEvaluatorTest.java  |   17 +-
 .../stream/eval/LessThanEqualToEvaluatorTest.java  |   85 +-
 .../io/stream/eval/LessThanEvaluatorTest.java      |   81 +-
 .../solrj/io/stream/eval/ModuloEvaluatorTest.java  |   11 +-
 .../io/stream/eval/MultiplyEvaluatorTest.java      |   43 +-
 .../io/stream/eval/NaturalLogEvaluatorTest.java    |    9 +-
 .../io/stream/eval/NormalizeEvaluatorTest.java     |    3 +-
 .../solrj/io/stream/eval/NotEvaluatorTest.java     |   17 +-
 .../solrj/io/stream/eval/OrEvaluatorTest.java      |   37 +-
 .../solrj/io/stream/eval/PowerEvaluatorTest.java   |   27 +-
 .../io/stream/eval/RawValueEvaluatorTest.java      |   25 +-
 .../io/stream/eval/RecursiveEvaluatorTest.java     |    7 +-
 .../solrj/io/stream/eval/ReverseEvaluatorTest.java |    7 +-
 .../solrj/io/stream/eval/RoundEvaluatorTest.java   |    7 +-
 .../solrj/io/stream/eval/SineEvaluatorTest.java    |    7 +-
 .../io/stream/eval/SquareRootEvaluatorTest.java    |    7 +-
 .../io/stream/eval/SubtractEvaluatorTest.java      |   37 +-
 .../solrj/io/stream/eval/TangentEvaluatorTest.java |    7 +-
 .../io/stream/eval/TemporalEvaluatorsTest.java     |   22 +-
 .../solrj/io/stream/eval/UuidEvaluatorTest.java    |    3 +-
 .../solrj/io/stream/expr/InjectionDefenseTest.java |    6 +-
 .../io/stream/metrics/WeightedSumMetricTest.java   |   12 +-
 .../solrj/io/stream/ops/ConcatOperationTest.java   |  149 +-
 .../client/solrj/io/stream/ops/OperationsTest.java |   55 +-
 .../solr/client/solrj/request/SchemaTest.java      |    4 +-
 .../solr/client/solrj/request/SolrPingTest.java    |    5 +-
 .../solr/client/solrj/request/TestLukeRequest.java |    4 +-
 .../client/solrj/request/TestUpdateRequest.java    |   25 +-
 .../solrj/request/TestUpdateRequestCodec.java      |   25 +-
 ...DirectJsonQueryRequestFacetingEmbeddedTest.java |    8 +-
 ...ectJsonQueryRequestFacetingIntegrationTest.java |    8 +-
 .../JsonQueryRequestFacetingIntegrationTest.java   |    8 +-
 .../solrj/response/AnlysisResponseBaseTest.java    |    2 +-
 .../client/solrj/response/TermsResponseTest.java   |    9 +-
 .../solrj/response/TestClusteringResponse.java     |   11 +-
 .../solrj/response/TestSpellCheckResponse.java     |   15 +-
 .../ShufflingReplicaListTransformerTest.java       |    2 +-
 .../org/apache/solr/common/SolrDocumentTest.java   |    8 +-
 .../solr/common/TestToleratedUpdateError.java      |   18 +-
 .../apache/solr/common/util/TestJavaBinCodec.java  |    2 +-
 .../solr/common/util/TestNamedListCodec.java       |   20 +-
 .../org/apache/solr/common/util/TestPathTrie.java  |    4 +-
 .../org/apache/solr/common/util/URLUtilTest.java   |    7 +-
 .../solr/common/util/Utf8CharSequenceTest.java     |    8 +-
 solr/solrj/src/test/org/noggit/TestJSONParser.java |    2 +-
 .../apache/solr/BaseDistributedSearchTestCase.java |    7 +-
 .../solr/cloud/AbstractFullDistribZkTestBase.java  |    7 +-
 412 files changed, 5523 insertions(+), 5717 deletions(-)


[solr] 02/02: SOLR-16311: Simplify assert statements (#953)

Posted by kr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

krisden pushed a commit to branch branch_9x
in repository https://gitbox.apache.org/repos/asf/solr.git

commit 89f0baa74210f50bafbedf8ce969e9866cf3aa40
Author: Eric Pugh <ep...@opensourceconnections.com>
AuthorDate: Thu Oct 20 14:05:22 2022 -0400

    SOLR-16311: Simplify assert statements (#953)
    
    * Simplify assert statements
    * remove unused imports
    * Address remaining assert simplifications
    * Fix bad replacements in TestSQLHandler
    * Fix SolrInputDocumentReaderTest setup
    * Fix redundant casts in SpellCheckComponentTest
    * Fix redundant cast in ArrayEvaluatorTest
    * Fix cast in SchemaTest
    * Simplify casts in stream/sql tests and fix asserts
    * Simplify raw assert in tests
    
    Co-authored-by: Kevin Risden <kr...@apache.org>
---
 .../org/apache/solr/BasicFunctionalityTest.java    |   14 +-
 .../src/test/org/apache/solr/CursorPagingTest.java |    2 +-
 .../src/test/org/apache/solr/OutputWriterTest.java |    2 +-
 .../org/apache/solr/TestDistributedSearch.java     |   29 +-
 .../test/org/apache/solr/TestRandomDVFaceting.java |    9 +-
 .../test/org/apache/solr/TestRandomFaceting.java   |    8 +-
 .../apache/solr/cloud/CollectionsAPISolrJTest.java |    2 +-
 .../test/org/apache/solr/cloud/DeleteNodeTest.java |    4 +-
 .../org/apache/solr/cloud/DeleteReplicaTest.java   |    4 +-
 .../DistribDocExpirationUpdateProcessorTest.java   |    6 +-
 .../solr/cloud/DistribJoinFromCollectionTest.java  |    6 +-
 .../solr/cloud/DistributedVersionInfoTest.java     |    3 +-
 .../solr/cloud/HttpPartitionOnCommitTest.java      |   10 +-
 .../org/apache/solr/cloud/HttpPartitionTest.java   |   13 +-
 .../cloud/LeaderFailoverAfterPartitionTest.java    |   10 +-
 .../solr/cloud/LeaderVoteWaitTimeoutTest.java      |    3 +-
 .../test/org/apache/solr/cloud/OverseerTest.java   |    8 +-
 .../solr/cloud/ParallelCommitExecutionTest.java    |    2 +-
 .../apache/solr/cloud/ReplicationFactorTest.java   |   11 +-
 .../solr/cloud/SegmentTerminateEarlyTestState.java |   44 +-
 .../org/apache/solr/cloud/SolrCLIZkUtilsTest.java  |    2 +-
 .../apache/solr/cloud/SolrCloudExampleTest.java    |   10 +-
 .../apache/solr/cloud/TestCloudConsistency.java    |    3 +-
 .../TestCloudPhrasesIdentificationComponent.java   |    2 +-
 .../org/apache/solr/cloud/TestCloudPivotFacet.java |    4 +-
 .../solr/cloud/TestCloudPseudoReturnFields.java    |    8 +-
 .../solr/cloud/TestCloudSearcherWarming.java       |    9 +-
 .../org/apache/solr/cloud/TestConfigSetsAPI.java   |   29 +-
 .../solr/cloud/TestMiniSolrCloudClusterSSL.java    |    4 +-
 .../solr/cloud/TestOnReconnectListenerSupport.java |    2 +-
 .../apache/solr/cloud/TestRandomFlRTGCloud.java    |    5 +-
 .../cloud/TestStressCloudBlindAtomicUpdates.java   |    6 +-
 .../solr/cloud/TestStressInPlaceUpdates.java       |    2 +-
 .../solr/cloud/TestTlogReplayVsRecovery.java       |    4 +-
 .../org/apache/solr/cloud/TestTlogReplica.java     |    2 +-
 .../TestTolerantUpdateProcessorRandomCloud.java    |   12 +-
 .../SimpleCollectionCreateDeleteTest.java          |    6 +-
 .../cloud/api/collections/SplitByPrefixTest.java   |    8 +-
 .../cluster/events/ClusterEventProducerTest.java   |    3 +-
 .../plugins/AffinityPlacementFactoryTest.java      |    2 +-
 .../solr/common/cloud/ZkDynamicConfigTest.java     |    4 +-
 .../solr/core/BlobRepositoryMockingTest.java       |   10 +-
 .../test/org/apache/solr/core/CoreSorterTest.java  |    4 +-
 .../solr/core/ExitableDirectoryReaderTest.java     |    4 +-
 .../test/org/apache/solr/core/PluginInfoTest.java  |   12 +-
 .../org/apache/solr/core/QueryResultKeyTest.java   |   17 +-
 .../org/apache/solr/core/RequestHandlersTest.java  |    2 +-
 .../org/apache/solr/core/ResourceLoaderTest.java   |    6 +-
 .../src/test/org/apache/solr/core/SOLR749Test.java |    6 +-
 .../test/org/apache/solr/core/SolrCoreTest.java    |   25 +-
 .../src/test/org/apache/solr/core/TestConfig.java  |   27 +-
 .../org/apache/solr/core/TestCoreContainer.java    |    5 +-
 .../org/apache/solr/core/TestCoreDiscovery.java    |   12 +-
 .../apache/solr/core/TestCorePropertiesReload.java |    4 +-
 .../apache/solr/core/TestMergePolicyConfig.java    |    2 +-
 .../apache/solr/core/TestQuerySenderListener.java  |   10 +-
 .../apache/solr/core/TestSolrDeletionPolicy1.java  |    2 +-
 .../apache/solr/core/TestSolrDeletionPolicy2.java  |   13 +-
 .../solr/core/backup/BackupFilePathsTest.java      |    7 +-
 .../solr/core/snapshots/TestSolrCoreSnapshots.java |    2 +-
 .../handler/BinaryUpdateRequestHandlerTest.java    |    2 +-
 .../handler/FieldAnalysisRequestHandlerTest.java   |    8 +-
 .../org/apache/solr/handler/JsonLoaderTest.java    |   22 +-
 .../solr/handler/PingRequestHandlerTest.java       |    4 +-
 .../apache/solr/handler/ReplicationTestHelper.java |   18 +-
 .../solr/handler/TestReplicationHandler.java       |   24 +-
 .../solr/handler/TestSampleDocumentsLoader.java    |   11 +-
 .../solr/handler/TestStressThreadBackup.java       |    2 -
 .../solr/handler/V2ClusterAPIMappingTest.java      |    5 +-
 .../solr/handler/V2UpdateAPIMappingTest.java       |    5 +-
 .../solr/handler/XmlUpdateRequestHandlerTest.java  |    2 +-
 .../solr/handler/admin/LukeRequestHandlerTest.java |    2 +-
 .../solr/handler/admin/MetricsHandlerTest.java     |    6 +-
 .../handler/admin/SecurityConfHandlerTest.java     |    2 +-
 .../solr/handler/admin/SolrEnvironmentTest.java    |    6 +-
 .../solr/handler/admin/ThreadDumpHandlerTest.java  |   12 +-
 .../solr/handler/admin/V2ApiMappingTest.java       |    5 +-
 .../admin/V2CollectionBackupsAPIMappingTest.java   |    2 +-
 .../handler/admin/V2CollectionsAPIMappingTest.java |   11 +-
 .../solr/handler/admin/V2CoresAPIMappingTest.java  |   10 +-
 .../admin/api/V2CollectionAPIMappingTest.java      |   14 +-
 .../handler/admin/api/V2CoreAPIMappingTest.java    |    6 +-
 .../handler/admin/api/V2NodeAPIMappingTest.java    |    6 +-
 .../handler/admin/api/V2ShardsAPIMappingTest.java  |   18 +-
 .../component/DistributedDebugComponentTest.java   |    2 +-
 .../DistributedFacetPivotLongTailTest.java         |    2 +-
 .../DistributedFacetPivotSmallAdvancedTest.java    |    5 +-
 .../component/DistributedFacetPivotSmallTest.java  |    4 +-
 .../DistributedQueryComponentOptimizationTest.java |    5 +-
 .../DistributedSpellCheckComponentTest.java        |    3 +-
 .../component/DistributedSuggestComponentTest.java |    3 +-
 .../PhrasesIdentificationComponentTest.java        |    2 +-
 .../handler/component/ShardsAllowListTest.java     |    2 +-
 .../handler/component/SpellCheckComponentTest.java |   10 +-
 .../solr/handler/component/StatsComponentTest.java |   20 +-
 .../solr/handler/component/TermsComponentTest.java |    8 +-
 .../component/TestTrackingShardHandlerFactory.java |    4 +-
 .../handler/designer/ManagedSchemaDiffTest.java    |   33 +-
 .../solr/handler/export/TestExportWriter.java      |    6 +-
 .../solr/handler/loader/JavabinLoaderTest.java     |    2 +-
 .../solr/handler/tagger/RandomizedTaggerTest.java  |    2 +-
 .../org/apache/solr/handler/tagger/TaggerTest.java |    4 +-
 .../apache/solr/handler/tagger/TaggerTestCase.java |    2 +-
 .../apache/solr/internal/csv/CSVParserTest.java    |   31 +-
 .../apache/solr/internal/csv/CSVPrinterTest.java   |    2 +-
 .../apache/solr/internal/csv/CSVStrategyTest.java  |   18 +-
 .../internal/csv/ExtendedBufferedReaderTest.java   |   53 +-
 .../apache/solr/legacy/TestLegacyFieldReuse.java   |    1 -
 .../apache/solr/legacy/TestLegacyNumericUtils.java |   10 +-
 .../solr/legacy/TestNumericRangeQuery32.java       |    4 +-
 .../solr/metrics/DelegateRegistryTimerTest.java    |    6 +-
 .../org/apache/solr/metrics/MetricsConfigTest.java |    4 +-
 .../metrics/reporters/SolrJmxReporterTest.java     |    2 +-
 .../solr/parser/SolrQueryParserBaseTest.java       |   23 +-
 .../apache/solr/request/TestIntervalFaceting.java  |    6 +-
 .../solr/request/macro/TestMacroExpander.java      |    2 +-
 .../solr/response/TestRetrieveFieldsOptimizer.java |    5 +-
 .../solr/response/TestSolrQueryResponse.java       |    8 +-
 .../transform/TestSubQueryTransformer.java         |    2 +-
 .../apache/solr/schema/ChangedSchemaMergeTest.java |    2 +-
 .../test/org/apache/solr/schema/CopyFieldTest.java |   18 +-
 .../apache/solr/schema/DenseVectorFieldTest.java   |   11 +-
 .../schema/OpenExchangeRatesOrgProviderTest.java   |    2 +-
 .../test/org/apache/solr/schema/PolyFieldTest.java |    2 +-
 .../apache/solr/schema/PreAnalyzedFieldTest.java   |    2 +-
 .../schema/SchemaVersionSpecificBehaviorTest.java  |    6 +-
 .../org/apache/solr/schema/TestPointFields.java    |   70 +-
 .../solr/schema/TestSchemalessBufferedUpdates.java |    2 +-
 .../apache/solr/schema/TestSortableTextField.java  |    9 +-
 .../org/apache/solr/search/MergeStrategyTest.java  |    6 +-
 .../apache/solr/search/RankQueryTestPlugin.java    |    7 +-
 .../org/apache/solr/search/ReturnFieldsTest.java   |    7 +-
 .../apache/solr/search/SolrIndexSearcherTest.java  |    2 +-
 .../apache/solr/search/SortSpecParsingTest.java    |   28 +-
 .../org/apache/solr/search/TestCaffeineCache.java  |    6 +-
 .../solr/search/TestCollapseQParserPlugin.java     |   10 +-
 .../test/org/apache/solr/search/TestDocSet.java    |    2 +-
 .../solr/search/TestExtendedDismaxParser.java      |   19 +-
 .../apache/solr/search/TestFilteredDocIdSet.java   |    9 +-
 .../test/org/apache/solr/search/TestFiltering.java |    6 +-
 .../apache/solr/search/TestHashQParserPlugin.java  |   20 +-
 .../org/apache/solr/search/TestIndexSearcher.java  |   12 +-
 .../org/apache/solr/search/TestQueryUtils.java     |   12 +-
 .../search/TestRandomCollapseQParserPlugin.java    |    9 +-
 .../org/apache/solr/search/TestRangeQuery.java     |    4 +-
 .../solr/search/TestReRankQParserPlugin.java       |    4 +-
 .../org/apache/solr/search/TestRealTimeGet.java    |    2 +-
 .../test/org/apache/solr/search/TestRecovery.java  |   10 +-
 .../org/apache/solr/search/TestStressLucene.java   |    4 +-
 .../org/apache/solr/search/TestStressRecovery.java |    6 +-
 .../org/apache/solr/search/TestStressReorder.java  |    2 +-
 .../apache/solr/search/TestStressUserVersions.java |    4 +-
 .../org/apache/solr/search/TestStressVersions.java |    2 +-
 ...stributedFacetSimpleRefinementLongTailTest.java |    4 +-
 .../solr/search/facet/RangeFacetCloudTest.java     |    4 +-
 .../search/facet/TestCloudJSONFacetJoinDomain.java |   19 +-
 .../solr/search/facet/TestCloudJSONFacetSKG.java   |   17 +-
 .../search/facet/TestCloudJSONFacetSKGEquiv.java   |   19 +-
 .../apache/solr/search/facet/TestJsonFacets.java   |    6 +-
 .../solr/search/function/TestFunctionQuery.java    |   14 +-
 .../function/TestMinMaxOnMultiValuedField.java     |    2 +-
 .../apache/solr/search/function/TestOrdValues.java |    8 +-
 .../function/distance/DistanceFunctionTest.java    |    2 +-
 .../org/apache/solr/search/join/BJQParserTest.java |    6 +-
 .../solr/search/join/TestNestedDocsSort.java       |    2 +-
 .../solr/search/join/TestScoreJoinQPNoScore.java   |    2 +-
 .../join/another/BJQFilterAccessibleTest.java      |    3 +-
 .../similarities/TestClassicSimilarityFactory.java |    4 +-
 .../org/apache/solr/servlet/CacheHeaderTest.java   |    2 +-
 .../solr/servlet/TestRequestRateLimiter.java       |    2 +-
 .../spelling/ConjunctionSolrSpellCheckerTest.java  |    3 +-
 .../solr/spelling/DirectSolrSpellCheckerTest.java  |    5 +-
 .../solr/spelling/FileBasedSpellCheckerTest.java   |   45 +-
 .../solr/spelling/IndexBasedSpellCheckerTest.java  |  124 +-
 .../solr/spelling/SpellCheckCollatorTest.java      |   51 +-
 .../spelling/SpellPossibilityIteratorTest.java     |   27 +-
 .../solr/spelling/SpellingQueryConverterTest.java  |   39 +-
 .../spelling/WordBreakSolrSpellCheckerTest.java    |  102 +-
 .../solr/spelling/suggest/SuggesterTest.java       |    2 +-
 .../apache/solr/uninverting/TestFieldCache.java    |   14 +-
 .../solr/uninverting/TestFieldCacheSortRandom.java |    2 +-
 .../uninverting/TestFieldCacheVsDocValues.java     |    2 +-
 .../solr/uninverting/TestLegacyFieldCache.java     |   10 +-
 .../solr/update/DirectUpdateHandlerTest.java       |    5 +-
 .../apache/solr/update/DocumentBuilderTest.java    |    5 +-
 .../apache/solr/update/MaxSizeAutoCommitTest.java  |   19 +-
 .../test/org/apache/solr/update/PeerSyncTest.java  |   18 +-
 .../PeerSyncWithIndexFingerprintCachingTest.java   |    3 +-
 .../org/apache/solr/update/SoftAutoCommitTest.java |    7 +-
 .../apache/solr/update/SolrIndexConfigTest.java    |    4 +-
 .../solr/update/TestInPlaceUpdatesDistrib.java     |   29 +-
 .../solr/update/TestInPlaceUpdatesStandalone.java  |    2 +-
 .../solr/update/TestNestedUpdateProcessor.java     |    6 +-
 .../org/apache/solr/update/UpdateParamsTest.java   |    8 +-
 .../update/processor/AtomicUpdateJavabinTest.java  |    2 +-
 .../CategoryRoutedAliasUpdateProcessorTest.java    |    2 +-
 .../DimensionalRoutedAliasUpdateProcessorTest.java |    2 +-
 .../update/processor/NestedAtomicUpdateTest.java   |    7 +-
 .../SkipExistingDocumentsProcessorFactoryTest.java |    4 +-
 .../update/processor/TestCloudDeduplication.java   |    2 +-
 .../processor/TestDocBasedVersionConstraints.java  |    2 +-
 .../TimeRoutedAliasUpdateProcessorTest.java        |   10 +-
 .../processor/TrackingUpdateProcessorFactory.java  |    4 +-
 .../org/apache/solr/util/OrderedExecutorTest.java  |    2 +-
 .../org/apache/solr/util/SimplePostToolTest.java   |   22 +-
 .../org/apache/solr/util/SolrCliUptimeTest.java    |    5 +-
 .../apache/solr/util/TestSolrCLIRunExample.java    |    7 +-
 .../src/test/org/apache/solr/util/TestUtils.java   |    2 +-
 .../hll/BigEndianAscendingWordSerializerTest.java  |   25 +-
 .../org/apache/solr/util/hll/BitVectorTest.java    |   16 +-
 .../org/apache/solr/util/hll/ExplicitHLLTest.java  |    2 +-
 .../apache/solr/util/hll/HLLSerializationTest.java |    8 +-
 .../org/apache/solr/util/hll/NumberUtilTest.java   |   63 +-
 .../solr/analytics/ExpressionFactoryTest.java      |   36 +-
 .../mapping/AbsoluteValueFunctionTest.java         |    8 +-
 .../function/mapping/AddFunctionTest.java          |    4 +-
 .../function/mapping/AndFunctionTest.java          |   24 +-
 .../function/mapping/CeilingFunctionTest.java      |    4 +-
 .../function/mapping/ConcatFunctionTest.java       |   24 +-
 .../function/mapping/DivideFunctionTest.java       |    8 +-
 .../function/mapping/EqualFunctionTest.java        |   48 +-
 .../function/mapping/FillMissingFunctionTest.java  |   28 +-
 .../function/mapping/FilterFunctionTest.java       |  100 +-
 .../function/mapping/FloorFunctionTest.java        |    4 +-
 .../function/mapping/GTEFunctionTest.java          |   28 +-
 .../analytics/function/mapping/GTFunctionTest.java |   28 +-
 .../analytics/function/mapping/IfFunctionTest.java |    8 +-
 .../function/mapping/LTEFunctionTest.java          |   28 +-
 .../analytics/function/mapping/LTFunctionTest.java |   28 +-
 .../function/mapping/LogFunctionTest.java          |   10 +-
 .../function/mapping/MultFunctionTest.java         |    4 +-
 .../function/mapping/NegateFunctionTest.java       |   14 +-
 .../analytics/function/mapping/OrFunctionTest.java |   24 +-
 .../function/mapping/PowerFunctionTest.java        |    8 +-
 .../function/mapping/RemoveFunctionTest.java       |   54 +-
 .../function/mapping/ReplaceFunctionTest.java      |   38 +-
 .../function/mapping/RoundFunctionTest.java        |    4 +-
 .../function/mapping/StringCastFunctionTest.java   |    2 +-
 .../function/mapping/SubtractFunctionTest.java     |    8 +-
 .../legacy/expression/LegacyFunctionTest.java      |    2 +-
 .../legacy/facet/LegacyFieldFacetCloudTest.java    |  473 +++---
 .../legacy/facet/LegacyFieldFacetTest.java         |  481 +++---
 .../util/OldAnalyticsRequestConverterUnitTest.java |    2 +-
 .../analytics/value/CastingAnalyticsValueTest.java |    2 +-
 .../value/CastingBooleanValueStreamTest.java       |    4 +-
 .../analytics/value/CastingBooleanValueTest.java   |    8 +-
 .../value/CastingDoubleValueStreamTest.java        |    4 +-
 .../analytics/value/CastingDoubleValueTest.java    |    6 +-
 .../value/CastingFloatValueStreamTest.java         |    6 +-
 .../analytics/value/CastingFloatValueTest.java     |    8 +-
 .../analytics/value/CastingIntValueStreamTest.java |   10 +-
 .../solr/analytics/value/CastingIntValueTest.java  |   12 +-
 .../value/CastingLongValueStreamTest.java          |    6 +-
 .../solr/analytics/value/CastingLongValueTest.java |    8 +-
 .../value/CastingStringValueStreamTest.java        |    2 +-
 .../analytics/value/CastingStringValueTest.java    |    4 +-
 .../solr/analytics/value/ConstantValueTest.java    |    8 +-
 .../ClusteringComponentDistributedTest.java        |    3 +-
 .../clustering/ClusteringComponentTest.java        |    5 +-
 .../extraction/ExtractingRequestHandlerTest.java   |   42 +-
 .../handler/extraction/ParseContextConfigTest.java |    2 +-
 .../repository/HdfsBackupRepositoryTest.java       |   19 +-
 .../hdfs/cloud/MoveReplicaHdfsFailoverTest.java    |    2 +-
 .../apache/solr/hdfs/search/TestRecoveryHdfs.java  |    2 +-
 .../solr/hdfs/store/HdfsLockFactoryTest.java       |    8 +-
 .../solr/hdfs/store/blockcache/BlockCacheTest.java |    3 +-
 ...geIdentifierUpdateProcessorFactoryTestCase.java |    2 +-
 .../processor/SolrInputDocumentReaderTest.java     |    8 +-
 .../org/apache/solr/ltr/TestLTRQParserPlugin.java  |    8 +-
 .../org/apache/solr/ltr/TestLTRScoringQuery.java   |   12 +-
 .../solr/ltr/TestParallelWeightCreation.java       |    4 +-
 .../TestFeatureExtractionFromMultipleSegments.java |    4 +-
 .../interleaving/TestLTRQParserInterleaving.java   |    6 +-
 .../apache/solr/ltr/norm/TestMinMaxNormalizer.java |    5 +-
 .../solr/ltr/norm/TestStandardNormalizer.java      |    5 +-
 .../solr/ltr/store/rest/TestModelManager.java      |    7 +-
 .../apache/solr/handler/sql/TestSQLHandler.java    | 1158 +++++++-------
 .../prometheus/collector/MetricSamplesTest.java    |    5 +-
 .../exporter/MetricsQueryTemplateTest.java         |    7 +-
 .../query-guide/examples/JsonRequestApiTest.java   |    4 +-
 .../apache/solr/common/cloud/SolrZkClientTest.java |    6 +-
 .../apache/solr/client/solrj/SolrExampleTests.java |   89 +-
 .../solr/client/solrj/SolrExampleTestsBase.java    |   17 +-
 .../apache/solr/client/solrj/SolrQueryTest.java    |  103 +-
 .../solr/client/solrj/TestLBHttp2SolrClient.java   |    7 +-
 .../solr/client/solrj/TestLBHttpSolrClient.java    |    7 +-
 .../embedded/SolrExampleStreamingHttp2Test.java    |    3 +-
 .../solrj/embedded/SolrExampleStreamingTest.java   |    3 +-
 .../solrj/embedded/TestEmbeddedSolrServer.java     |   13 +-
 .../client/solrj/impl/BasicHttpSolrClientTest.java |    2 +-
 .../solrj/impl/CloudHttp2SolrClientTest.java       |    2 +-
 .../client/solrj/impl/CloudSolrClientTest.java     |    2 +-
 .../impl/ConcurrentUpdateHttp2SolrClientTest.java  |   15 +-
 .../solrj/impl/ConcurrentUpdateSolrClientTest.java |   15 +-
 .../client/solrj/impl/Http2SolrClientTest.java     |    2 +-
 .../solr/client/solrj/impl/HttpClientUtilTest.java |    8 +-
 .../solrj/impl/HttpSolrClientBuilderTest.java      |    6 +-
 .../impl/HttpSolrClientSSLAuthConPoolTest.java     |    2 +-
 .../client/solrj/impl/LBHttp2SolrClientTest.java   |    7 +-
 .../solrj/impl/LBHttpSolrClientBuilderTest.java    |    4 +-
 .../client/solrj/impl/LBHttpSolrClientTest.java    |    6 +-
 .../solr/client/solrj/impl/LBSolrClientTest.java   |    7 +-
 .../solrj/impl/SolrPortAwareCookieSpecTest.java    |   19 +-
 .../solrj/impl/TestCloudSolrClientConnections.java |    2 +-
 .../client/solrj/io/graph/GraphExpressionTest.java |  357 +++--
 .../solr/client/solrj/io/graph/GraphTest.java      |   10 +-
 .../apache/solr/client/solrj/io/sql/JdbcTest.java  |   26 +-
 .../solrj/io/stream/CloudAuthStreamTest.java       |    2 +-
 .../client/solrj/io/stream/JDBCStreamTest.java     |    2 +-
 .../client/solrj/io/stream/MathExpressionTest.java |  810 +++++-----
 .../solrj/io/stream/StreamDecoratorTest.java       |  869 ++++++-----
 .../solrj/io/stream/StreamExpressionTest.java      | 1634 ++++++++++----------
 .../io/stream/StreamExpressionToExpessionTest.java |    6 +-
 .../stream/StreamExpressionToExplanationTest.java  |   77 +-
 .../solr/client/solrj/io/stream/StreamingTest.java |  386 ++---
 .../io/stream/eval/AbsoluteValueEvaluatorTest.java |   23 +-
 .../solrj/io/stream/eval/AddEvaluatorTest.java     |   91 +-
 .../solrj/io/stream/eval/AndEvaluatorTest.java     |   37 +-
 .../solrj/io/stream/eval/AppendEvaluatorTest.java  |   11 +-
 .../io/stream/eval/ArcCosineEvaluatorTest.java     |    7 +-
 .../solrj/io/stream/eval/ArcSineEvaluatorTest.java |    7 +-
 .../io/stream/eval/ArcTangentEvaluatorTest.java    |    7 +-
 .../solrj/io/stream/eval/ArrayEvaluatorTest.java   |   76 +-
 .../solrj/io/stream/eval/CeilingEvaluatorTest.java |    7 +-
 .../io/stream/eval/CoalesceEvaluatorTest.java      |   17 +-
 .../io/stream/eval/ConversionEvaluatorsTest.java   |   10 +-
 .../io/stream/eval/CorrelationEvaluatorTest.java   |    3 +-
 .../solrj/io/stream/eval/CosineEvaluatorTest.java  |    7 +-
 .../io/stream/eval/CubedRootEvaluatorTest.java     |    7 +-
 .../eval/CumulativeProbabilityEvaluatorTest.java   |    3 +-
 .../solrj/io/stream/eval/DivideEvaluatorTest.java  |   19 +-
 .../solrj/io/stream/eval/EqualToEvaluatorTest.java |   85 +-
 .../io/stream/eval/ExclusiveOrEvaluatorTest.java   |   37 +-
 .../io/stream/eval/FieldValueEvaluatorTest.java    |   56 +-
 .../solrj/io/stream/eval/FloorEvaluatorTest.java   |    7 +-
 .../eval/GreaterThanEqualToEvaluatorTest.java      |   81 +-
 .../io/stream/eval/GreaterThanEvaluatorTest.java   |   81 +-
 .../stream/eval/HyperbolicCosineEvaluatorTest.java |    7 +-
 .../stream/eval/HyperbolicSineEvaluatorTest.java   |    7 +-
 .../solrj/io/stream/eval/LengthEvaluatorTest.java  |   17 +-
 .../stream/eval/LessThanEqualToEvaluatorTest.java  |   85 +-
 .../io/stream/eval/LessThanEvaluatorTest.java      |   81 +-
 .../solrj/io/stream/eval/ModuloEvaluatorTest.java  |   11 +-
 .../io/stream/eval/MultiplyEvaluatorTest.java      |   43 +-
 .../io/stream/eval/NaturalLogEvaluatorTest.java    |    9 +-
 .../io/stream/eval/NormalizeEvaluatorTest.java     |    3 +-
 .../solrj/io/stream/eval/NotEvaluatorTest.java     |   17 +-
 .../solrj/io/stream/eval/OrEvaluatorTest.java      |   37 +-
 .../solrj/io/stream/eval/PowerEvaluatorTest.java   |   27 +-
 .../io/stream/eval/RawValueEvaluatorTest.java      |   25 +-
 .../io/stream/eval/RecursiveEvaluatorTest.java     |    7 +-
 .../solrj/io/stream/eval/ReverseEvaluatorTest.java |    7 +-
 .../solrj/io/stream/eval/RoundEvaluatorTest.java   |    7 +-
 .../solrj/io/stream/eval/SineEvaluatorTest.java    |    7 +-
 .../io/stream/eval/SquareRootEvaluatorTest.java    |    7 +-
 .../io/stream/eval/SubtractEvaluatorTest.java      |   37 +-
 .../solrj/io/stream/eval/TangentEvaluatorTest.java |    7 +-
 .../io/stream/eval/TemporalEvaluatorsTest.java     |   22 +-
 .../solrj/io/stream/eval/UuidEvaluatorTest.java    |    3 +-
 .../solrj/io/stream/expr/InjectionDefenseTest.java |    6 +-
 .../io/stream/metrics/WeightedSumMetricTest.java   |   12 +-
 .../solrj/io/stream/ops/ConcatOperationTest.java   |  149 +-
 .../client/solrj/io/stream/ops/OperationsTest.java |   55 +-
 .../solr/client/solrj/request/SchemaTest.java      |    4 +-
 .../solr/client/solrj/request/SolrPingTest.java    |    5 +-
 .../solr/client/solrj/request/TestLukeRequest.java |    4 +-
 .../client/solrj/request/TestUpdateRequest.java    |   25 +-
 .../solrj/request/TestUpdateRequestCodec.java      |   25 +-
 ...DirectJsonQueryRequestFacetingEmbeddedTest.java |    8 +-
 ...ectJsonQueryRequestFacetingIntegrationTest.java |    8 +-
 .../JsonQueryRequestFacetingIntegrationTest.java   |    8 +-
 .../solrj/response/AnlysisResponseBaseTest.java    |    2 +-
 .../client/solrj/response/TermsResponseTest.java   |    9 +-
 .../solrj/response/TestClusteringResponse.java     |   11 +-
 .../solrj/response/TestSpellCheckResponse.java     |   15 +-
 .../ShufflingReplicaListTransformerTest.java       |    2 +-
 .../org/apache/solr/common/SolrDocumentTest.java   |    8 +-
 .../solr/common/TestToleratedUpdateError.java      |   18 +-
 .../apache/solr/common/util/TestJavaBinCodec.java  |    2 +-
 .../solr/common/util/TestNamedListCodec.java       |   20 +-
 .../org/apache/solr/common/util/TestPathTrie.java  |    4 +-
 .../org/apache/solr/common/util/URLUtilTest.java   |    7 +-
 .../solr/common/util/Utf8CharSequenceTest.java     |    8 +-
 solr/solrj/src/test/org/noggit/TestJSONParser.java |    2 +-
 .../apache/solr/BaseDistributedSearchTestCase.java |    7 +-
 .../solr/cloud/AbstractFullDistribZkTestBase.java  |    7 +-
 386 files changed, 5497 insertions(+), 5691 deletions(-)

diff --git a/solr/core/src/test/org/apache/solr/BasicFunctionalityTest.java b/solr/core/src/test/org/apache/solr/BasicFunctionalityTest.java
index 03c3a24244b..b4bdfb3c733 100644
--- a/solr/core/src/test/org/apache/solr/BasicFunctionalityTest.java
+++ b/solr/core/src/test/org/apache/solr/BasicFunctionalityTest.java
@@ -552,8 +552,8 @@ public class BasicFunctionalityTest extends SolrTestCaseJ4 {
 
     f = ischema.getField("test_notv");
     luf = f.createField("test");
-    assertTrue(!f.storeTermVector());
-    assertTrue(!luf.fieldType().storeTermVectors());
+    assertFalse(f.storeTermVector());
+    assertFalse(luf.fieldType().storeTermVectors());
 
     f = ischema.getField("test_postv");
     luf = f.createField("test");
@@ -619,8 +619,8 @@ public class BasicFunctionalityTest extends SolrTestCaseJ4 {
     assertEquals(p.get("ss"), "SSS");
 
     assertEquals(!!p.getBool("bt"), !p.getBool("bf"));
-    assertEquals(p.getBool("foo", true), true);
-    assertEquals(p.getBool("foo", false), false);
+    assertTrue(p.getBool("foo", true));
+    assertFalse(p.getBool("foo", false));
     assertEquals(!!p.getBool("bt"), !p.getBool("bf"));
 
     NamedList<String> more = new NamedList<>();
@@ -764,8 +764,8 @@ public class BasicFunctionalityTest extends SolrTestCaseJ4 {
     DocList dl = ((ResultContext) rsp.getResponse()).getDocList();
     Document d = req.getSearcher().doc(dl.iterator().nextDoc());
     // ensure field in fl is not lazy
-    assertFalse(((Field) d.getField("test_hlt")).getClass().getSimpleName().equals("LazyField"));
-    assertFalse(((Field) d.getField("title")).getClass().getSimpleName().equals("LazyField"));
+    assertNotEquals("LazyField", ((Field) d.getField("test_hlt")).getClass().getSimpleName());
+    assertNotEquals("LazyField", ((Field) d.getField("title")).getClass().getSimpleName());
     req.close();
   }
 
@@ -814,7 +814,7 @@ public class BasicFunctionalityTest extends SolrTestCaseJ4 {
     di = dl.iterator();
     Document d2 = req.getSearcher().doc(di.nextDoc());
     // ensure same doc, same lazy field now
-    assertTrue("Doc was not cached", d1 == d2);
+    assertSame("Doc was not cached", d1, d2);
     IndexableField[] values2 = d2.getFields("test_hlt");
     assertEquals(values1.length, values2.length);
     for (int i = 0; i < values1.length; i++) {
diff --git a/solr/core/src/test/org/apache/solr/CursorPagingTest.java b/solr/core/src/test/org/apache/solr/CursorPagingTest.java
index 78328a190ab..7e5e9131f06 100644
--- a/solr/core/src/test/org/apache/solr/CursorPagingTest.java
+++ b/solr/core/src/test/org/apache/solr/CursorPagingTest.java
@@ -1313,7 +1313,7 @@ public class CursorPagingTest extends SolrTestCaseJ4 {
 
   /** Given a set of id, picks some, semi-randomly, to use for elevation */
   public static int[] pickElevations(final int numToElevate, final SentinelIntSet ids) {
-    assert numToElevate < ids.size();
+    assertTrue(numToElevate < ids.size());
     final int[] results = new int[numToElevate];
     int slot = 0;
     for (int key : ids.keys) {
diff --git a/solr/core/src/test/org/apache/solr/OutputWriterTest.java b/solr/core/src/test/org/apache/solr/OutputWriterTest.java
index 6760c84b6b3..13eb69d9014 100644
--- a/solr/core/src/test/org/apache/solr/OutputWriterTest.java
+++ b/solr/core/src/test/org/apache/solr/OutputWriterTest.java
@@ -72,7 +72,7 @@ public class OutputWriterTest extends SolrTestCaseJ4 {
 
     qrw = h.getCore().getResponseWriters().getRegistry().get("xml");
     assertTrue("Should not be a lazy class", qrw.isLoaded());
-    assertTrue("Should not be a lazy class", qrw.getClass() == PluginBag.PluginHolder.class);
+    assertSame("Should not be a lazy class", qrw.getClass(), PluginBag.PluginHolder.class);
   }
 
   ////////////////////////////////////////////////////////////////////////////
diff --git a/solr/core/src/test/org/apache/solr/TestDistributedSearch.java b/solr/core/src/test/org/apache/solr/TestDistributedSearch.java
index 2d33dced1a2..a00c321f92a 100644
--- a/solr/core/src/test/org/apache/solr/TestDistributedSearch.java
+++ b/solr/core/src/test/org/apache/solr/TestDistributedSearch.java
@@ -1145,7 +1145,7 @@ public class TestDistributedSearch extends BaseDistributedSearchTestCase {
             Double val = (Double) svals.get(s);
             assertFalse("stat shouldn't be NaN: " + s, val.isNaN());
             assertFalse("stat shouldn't be Inf: " + s, val.isInfinite());
-            assertFalse("stat shouldn't be 0: " + s, val.equals(0.0D));
+            assertNotEquals("stat shouldn't be 0: " + s, 0.0D, val, 0.0);
           } else {
             // count or missing
             assertTrue(
@@ -1155,7 +1155,7 @@ public class TestDistributedSearch extends BaseDistributedSearchTestCase {
                 "stat should be a Long: " + s + " -> " + svals.get(s).getClass(),
                 svals.get(s) instanceof Long);
             Long val = (Long) svals.get(s);
-            assertFalse("stat shouldn't be 0: " + s, val.equals(0L));
+            assertNotEquals("stat shouldn't be 0: " + s, 0L, (long) val);
           }
         }
       }
@@ -1287,7 +1287,7 @@ public class TestDistributedSearch extends BaseDistributedSearchTestCase {
 
       // things we explicit expect because we asked for them
       // NOTE: min is expected to be null even though requested because of no values
-      assertEquals("wrong min", null, s.getMin());
+      assertNull("wrong min", s.getMin());
       assertTrue("mean should be NaN", ((Double) s.getMean()).isNaN());
       assertEquals("wrong stddev", 0.0D, s.getStddev(), 0.0D);
 
@@ -1842,9 +1842,10 @@ public class TestDistributedSearch extends BaseDistributedSearchTestCase {
             + counts.size(),
         counts.size(),
         pairs.length / 2);
-    assertTrue(
+    assertEquals(
         "Variable len param must be an even number, it was: " + pairs.length,
-        (pairs.length % 2) == 0);
+        0,
+        (pairs.length % 2));
     for (int pairs_idx = 0, counts_idx = 0;
         pairs_idx < pairs.length;
         pairs_idx += 2, counts_idx++) {
@@ -1876,9 +1877,10 @@ public class TestDistributedSearch extends BaseDistributedSearchTestCase {
             + counts.size(),
         counts.size(),
         pairs.length / 2);
-    assertTrue(
+    assertEquals(
         "Variable len param must be an even number, it was: " + pairs.length,
-        (pairs.length % 2) == 0);
+        0,
+        (pairs.length % 2));
     for (int pairs_idx = 0, counts_idx = 0;
         pairs_idx < pairs.length;
         pairs_idx += 2, counts_idx++) {
@@ -2013,13 +2015,12 @@ public class TestDistributedSearch extends BaseDistributedSearchTestCase {
                       + " header set if a shard is down",
                   Boolean.TRUE,
                   rsp.getHeader().get(SolrQueryResponse.RESPONSE_HEADER_PARTIAL_RESULTS_KEY));
-              assertTrue(
-                  "Expected to find error in the down shard info: " + info,
-                  info.get("error") != null);
+              assertNotNull(
+                  "Expected to find error in the down shard info: " + info, info.get("error"));
             } else {
-              assertTrue(
+              assertNotNull(
                   "Expected timeAllowedError or to find shardAddress in the up shard info: " + info,
-                  info.get("shardAddress") != null);
+                  info.get("shardAddress"));
             }
           } else {
             assertEquals(
@@ -2029,9 +2030,9 @@ public class TestDistributedSearch extends BaseDistributedSearchTestCase {
                     + rsp,
                 Boolean.TRUE,
                 rsp.getHeader().get(SolrQueryResponse.RESPONSE_HEADER_PARTIAL_RESULTS_KEY));
-            assertTrue(
+            assertNotNull(
                 "Expected to find error in the down shard info: " + info.toString(),
-                info.get("error") != null);
+                info.get("error"));
           }
         }
       }
diff --git a/solr/core/src/test/org/apache/solr/TestRandomDVFaceting.java b/solr/core/src/test/org/apache/solr/TestRandomDVFaceting.java
index 05479263a3f..1287b9ff4a7 100644
--- a/solr/core/src/test/org/apache/solr/TestRandomDVFaceting.java
+++ b/solr/core/src/test/org/apache/solr/TestRandomDVFaceting.java
@@ -53,17 +53,14 @@ public class TestRandomDVFaceting extends SolrTestCaseJ4 {
 
     initCore("solrconfig-basic.xml", "schema-docValuesFaceting.xml");
 
-    assertEquals(
+    assertFalse(
         "DocValues: Schema assumptions are broken",
-        false,
         h.getCore().getLatestSchema().getField("foo_i").hasDocValues());
-    assertEquals(
+    assertTrue(
         "DocValues: Schema assumptions are broken",
-        true,
         h.getCore().getLatestSchema().getField("foo_i_dv").hasDocValues());
-    assertEquals(
+    assertTrue(
         "DocValues: Schema assumptions are broken",
-        true,
         h.getCore().getLatestSchema().getField("foo_i_p").hasDocValues());
 
     assertEquals(
diff --git a/solr/core/src/test/org/apache/solr/TestRandomFaceting.java b/solr/core/src/test/org/apache/solr/TestRandomFaceting.java
index de8505bc4d7..63cbe0ea8d9 100644
--- a/solr/core/src/test/org/apache/solr/TestRandomFaceting.java
+++ b/solr/core/src/test/org/apache/solr/TestRandomFaceting.java
@@ -96,12 +96,12 @@ public class TestRandomFaceting extends SolrTestCaseJ4 {
 
     // TODO: doubles, multi-floats, ints with precisionStep>0, booleans
     types.add(new FldType("small_tf", ZERO_ONE, new FVal(-4, 5)));
-    assert trieFields.matcher("small_tf").matches();
-    assert !trieFields.matcher("small_f").matches();
+    assertTrue(trieFields.matcher("small_tf").matches());
+    assertFalse(trieFields.matcher("small_f").matches());
 
     types.add(new FldType("foo_ti", ZERO_ONE, new IRange(-2, indexSize)));
-    assert trieFields.matcher("foo_ti").matches();
-    assert !trieFields.matcher("foo_i").matches();
+    assertTrue(trieFields.matcher("foo_ti").matches());
+    assertFalse(trieFields.matcher("foo_i").matches());
 
     types.add(
         new FldType(
diff --git a/solr/core/src/test/org/apache/solr/cloud/CollectionsAPISolrJTest.java b/solr/core/src/test/org/apache/solr/cloud/CollectionsAPISolrJTest.java
index 1a99f66f2aa..0c1ed2ee46a 100644
--- a/solr/core/src/test/org/apache/solr/cloud/CollectionsAPISolrJTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/CollectionsAPISolrJTest.java
@@ -595,7 +595,7 @@ public class CollectionsAPISolrJTest extends SolrCloudTestCase {
     Replica newReplica = grabNewReplica(response, getCollectionState(collectionName));
     assertEquals(0, response.getStatus());
     assertTrue(response.isSuccess());
-    assertTrue(newReplica.getNodeName().equals(node));
+    assertEquals(newReplica.getNodeName(), node);
 
     // Test DELETEREPLICA
     response =
diff --git a/solr/core/src/test/org/apache/solr/cloud/DeleteNodeTest.java b/solr/core/src/test/org/apache/solr/cloud/DeleteNodeTest.java
index a4f6c35be5a..9f8c33e60f7 100644
--- a/solr/core/src/test/org/apache/solr/cloud/DeleteNodeTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/DeleteNodeTest.java
@@ -110,9 +110,9 @@ public class DeleteNodeTest extends SolrCloudTestCase {
           "####### DocCollection after: {}", cloudClient.getClusterState().getCollection(coll));
     }
     if (shouldFail) {
-      assertTrue(String.valueOf(rsp), rsp.getRequestStatus() == RequestStatusState.FAILED);
+      assertSame(String.valueOf(rsp), rsp.getRequestStatus(), RequestStatusState.FAILED);
     } else {
-      assertFalse(String.valueOf(rsp), rsp.getRequestStatus() == RequestStatusState.FAILED);
+      assertNotSame(String.valueOf(rsp), rsp.getRequestStatus(), RequestStatusState.FAILED);
     }
   }
 }
diff --git a/solr/core/src/test/org/apache/solr/cloud/DeleteReplicaTest.java b/solr/core/src/test/org/apache/solr/cloud/DeleteReplicaTest.java
index 3696f4c104b..60a31677adf 100644
--- a/solr/core/src/test/org/apache/solr/cloud/DeleteReplicaTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/DeleteReplicaTest.java
@@ -176,7 +176,7 @@ public class DeleteReplicaTest extends SolrCloudTestCase {
 
     Replica newLeader = cluster.getZkStateReader().getLeaderRetry(collectionName, "shard1");
 
-    assertFalse(leader.equals(newLeader));
+    assertNotEquals(leader, newLeader);
 
     // Confirm that the instance and data directory were deleted by default
     assertFalse(
@@ -326,7 +326,7 @@ public class DeleteReplicaTest extends SolrCloudTestCase {
     JettySolrRunner leaderJetty = getJettyForReplica(leader);
     Replica replica1 =
         shard1.getReplicas(replica -> !replica.getName().equals(leader.getName())).get(0);
-    assertFalse(replica1.getName().equals(leader.getName()));
+    assertNotEquals(replica1.getName(), leader.getName());
 
     JettySolrRunner replica1Jetty = getJettyForReplica(replica1);
 
diff --git a/solr/core/src/test/org/apache/solr/cloud/DistribDocExpirationUpdateProcessorTest.java b/solr/core/src/test/org/apache/solr/cloud/DistribDocExpirationUpdateProcessorTest.java
index 52caba7ebfa..d49b4e61dd8 100644
--- a/solr/core/src/test/org/apache/solr/cloud/DistribDocExpirationUpdateProcessorTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/DistribDocExpirationUpdateProcessorTest.java
@@ -75,7 +75,7 @@ public class DistribDocExpirationUpdateProcessorTest extends SolrCloudTestCase {
   /** Modifies the request to inlcude authentication params if needed, returns the request */
   private <T extends SolrRequest<?>> T setAuthIfNeeded(T req) {
     if (null != USER) {
-      assert null != PASS;
+      assertNotNull(PASS);
       req.setBasicAuthCredentials(USER, PASS);
     }
     return req;
@@ -384,8 +384,8 @@ public class DistribDocExpirationUpdateProcessorTest extends SolrCloudTestCase {
         final String coreName,
         final long indexVersion,
         final long numDocs) {
-      assert null != shardName;
-      assert null != coreName;
+      assertNotNull(shardName);
+      assertNotNull(coreName);
 
       this.shardName = shardName;
       this.coreName = coreName;
diff --git a/solr/core/src/test/org/apache/solr/cloud/DistribJoinFromCollectionTest.java b/solr/core/src/test/org/apache/solr/cloud/DistribJoinFromCollectionTest.java
index a577ff021de..305b28c34d6 100644
--- a/solr/core/src/test/org/apache/solr/cloud/DistribJoinFromCollectionTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/DistribJoinFromCollectionTest.java
@@ -150,7 +150,7 @@ public class DistribJoinFromCollectionTest extends SolrCloudTestCase {
           new QueryRequest(params("collection", toColl, "q", joinQ, "fl", "id,get_s,score"));
       QueryResponse rsp = new QueryResponse(client.request(qr), client);
       SolrDocumentList hits = rsp.getResults();
-      assertTrue("Expected 1 doc, got " + hits, hits.getNumFound() == 1);
+      assertEquals("Expected 1 doc, got " + hits, 1, hits.getNumFound());
       SolrDocument doc = hits.get(0);
       assertEquals(toDocId, doc.getFirstValue("id"));
       assertEquals("b", doc.getFirstValue("get_s"));
@@ -176,7 +176,7 @@ public class DistribJoinFromCollectionTest extends SolrCloudTestCase {
           new QueryRequest(params("collection", toColl, "q", joinQ, "fl", "id,get_s,score"));
       final QueryResponse rsp = new QueryResponse(client.request(qr), client);
       final SolrDocumentList hits = rsp.getResults();
-      assertTrue("Expected 1 doc", hits.getNumFound() == 1);
+      assertEquals("Expected 1 doc", 1, hits.getNumFound());
       SolrDocument doc = hits.get(0);
       assertEquals(toDocId, doc.getFirstValue("id"));
       assertEquals("b", doc.getFirstValue("get_s"));
@@ -198,7 +198,7 @@ public class DistribJoinFromCollectionTest extends SolrCloudTestCase {
           new QueryRequest(params("collection", toColl, "q", joinQ, "fl", "id,get_s,score"));
       final QueryResponse rsp = new QueryResponse(client.request(qr), client);
       final SolrDocumentList hits = rsp.getResults();
-      assertTrue("Expected no hits", hits.getNumFound() == 0);
+      assertEquals("Expected no hits", 0, hits.getNumFound());
     }
   }
 
diff --git a/solr/core/src/test/org/apache/solr/cloud/DistributedVersionInfoTest.java b/solr/core/src/test/org/apache/solr/cloud/DistributedVersionInfoTest.java
index 2e95e685c17..41933370a4e 100644
--- a/solr/core/src/test/org/apache/solr/cloud/DistributedVersionInfoTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/DistributedVersionInfoTest.java
@@ -367,8 +367,7 @@ public class DistributedVersionInfoTest extends SolrCloudTestCase {
     NamedList<?> rsp = solr.request(qr);
     SolrDocument doc = (SolrDocument) rsp.get("doc");
     String match = JSONTestUtil.matchObj("/id", doc, docId);
-    assertTrue(
-        "Doc with id=" + docId + " not found due to: " + match + "; rsp=" + rsp, match == null);
+    assertNull("Doc with id=" + docId + " not found due to: " + match + "; rsp=" + rsp, match);
 
     Long vers = (Long) doc.getFirstValue("_version_");
     assertNotNull(vers);
diff --git a/solr/core/src/test/org/apache/solr/cloud/HttpPartitionOnCommitTest.java b/solr/core/src/test/org/apache/solr/cloud/HttpPartitionOnCommitTest.java
index 6006784744c..84048086eb1 100644
--- a/solr/core/src/test/org/apache/solr/cloud/HttpPartitionOnCommitTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/HttpPartitionOnCommitTest.java
@@ -77,14 +77,15 @@ public class HttpPartitionOnCommitTest extends BasicDistributedZkTest {
     cloudClient.setDefaultCollection(testCollectionName);
 
     List<Replica> notLeaders = ensureAllReplicasAreActive(testCollectionName, "shard1", 2, 2, 30);
-    assertTrue(
+    assertEquals(
         "Expected 1 replicas for collection "
             + testCollectionName
             + " but found "
             + notLeaders.size()
             + "; clusterState: "
             + printClusterStateInfo(),
-        notLeaders.size() == 1);
+        1,
+        notLeaders.size());
 
     if (log.isInfoEnabled()) {
       log.info("All replicas active for {}", testCollectionName);
@@ -131,14 +132,15 @@ public class HttpPartitionOnCommitTest extends BasicDistributedZkTest {
     cloudClient.setDefaultCollection(testCollectionName);
 
     List<Replica> notLeaders = ensureAllReplicasAreActive(testCollectionName, "shard1", 1, 3, 30);
-    assertTrue(
+    assertEquals(
         "Expected 2 replicas for collection "
             + testCollectionName
             + " but found "
             + notLeaders.size()
             + "; clusterState: "
             + printClusterStateInfo(),
-        notLeaders.size() == 2);
+        2,
+        notLeaders.size());
 
     log.info("All replicas active for {}", testCollectionName);
 
diff --git a/solr/core/src/test/org/apache/solr/cloud/HttpPartitionTest.java b/solr/core/src/test/org/apache/solr/cloud/HttpPartitionTest.java
index 67867a7ebd7..c97b89e5c64 100644
--- a/solr/core/src/test/org/apache/solr/cloud/HttpPartitionTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/HttpPartitionTest.java
@@ -364,14 +364,15 @@ public class HttpPartitionTest extends AbstractFullDistribZkTestBase {
 
     List<Replica> notLeaders =
         ensureAllReplicasAreActive(testCollectionName, "shard1", 1, 3, maxWaitSecsToSeeAllActive);
-    assertTrue(
+    assertEquals(
         "Expected 2 replicas for collection "
             + testCollectionName
             + " but found "
             + notLeaders.size()
             + "; clusterState: "
             + printClusterStateInfo(testCollectionName),
-        notLeaders.size() == 2);
+        2,
+        notLeaders.size());
     JettySolrRunner leaderJetty =
         getJettyOnPort(getReplicaPort(getShardLeader(testCollectionName, "shard1", 1000)));
 
@@ -425,14 +426,15 @@ public class HttpPartitionTest extends AbstractFullDistribZkTestBase {
 
     List<Replica> notLeaders =
         ensureAllReplicasAreActive(testCollectionName, "shard1", 1, 2, maxWaitSecsToSeeAllActive);
-    assertTrue(
+    assertEquals(
         "Expected 1 replicas for collection "
             + testCollectionName
             + " but found "
             + notLeaders.size()
             + "; clusterState: "
             + printClusterStateInfo(testCollectionName),
-        notLeaders.size() == 1);
+        1,
+        notLeaders.size());
 
     Replica leader = ZkStateReader.from(cloudClient).getLeaderRetry(testCollectionName, "shard1");
     assertNotNull(
@@ -599,8 +601,7 @@ public class HttpPartitionTest extends AbstractFullDistribZkTestBase {
   protected void assertDocExists(SolrClient solr, String docId) throws Exception {
     NamedList<?> rsp = realTimeGetDocId(solr, docId);
     String match = JSONTestUtil.matchObj("/id", rsp.get("doc"), docId);
-    assertTrue(
-        "Doc with id=" + docId + " not found due to: " + match + "; rsp=" + rsp, match == null);
+    assertNull("Doc with id=" + docId + " not found due to: " + match + "; rsp=" + rsp, match);
   }
 
   private NamedList<Object> realTimeGetDocId(SolrClient solr, String docId)
diff --git a/solr/core/src/test/org/apache/solr/cloud/LeaderFailoverAfterPartitionTest.java b/solr/core/src/test/org/apache/solr/cloud/LeaderFailoverAfterPartitionTest.java
index 6dd13539a8e..2c4972262e3 100644
--- a/solr/core/src/test/org/apache/solr/cloud/LeaderFailoverAfterPartitionTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/LeaderFailoverAfterPartitionTest.java
@@ -66,14 +66,15 @@ public class LeaderFailoverAfterPartitionTest extends HttpPartitionTest {
 
     List<Replica> notLeaders =
         ensureAllReplicasAreActive(testCollectionName, "shard1", 1, 3, maxWaitSecsToSeeAllActive);
-    assertTrue(
+    assertEquals(
         "Expected 2 replicas for collection "
             + testCollectionName
             + " but found "
             + notLeaders.size()
             + "; clusterState: "
             + printClusterStateInfo(testCollectionName),
-        notLeaders.size() == 2);
+        2,
+        notLeaders.size());
 
     // ok, now introduce a network partition between the leader and the replica
     SocketProxy proxy0 = null;
@@ -159,12 +160,13 @@ public class LeaderFailoverAfterPartitionTest extends HttpPartitionTest {
             + printClusterStateInfo(testCollectionName),
         newLeader);
 
-    assertTrue(
+    assertNotEquals(
         "Expected node "
             + shouldNotBeNewLeaderNode
             + " to NOT be the new leader b/c it was out-of-sync with the old leader! ClusterState: "
             + printClusterStateInfo(testCollectionName),
-        !shouldNotBeNewLeaderNode.equals(newLeader.getNodeName()));
+        shouldNotBeNewLeaderNode,
+        newLeader.getNodeName());
 
     proxy0.reopen();
 
diff --git a/solr/core/src/test/org/apache/solr/cloud/LeaderVoteWaitTimeoutTest.java b/solr/core/src/test/org/apache/solr/cloud/LeaderVoteWaitTimeoutTest.java
index f8cac78ef84..a8c127718c8 100644
--- a/solr/core/src/test/org/apache/solr/cloud/LeaderVoteWaitTimeoutTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/LeaderVoteWaitTimeoutTest.java
@@ -330,8 +330,7 @@ public class LeaderVoteWaitTimeoutTest extends SolrCloudTestCase {
   private void assertDocExists(SolrClient solr, String docId) throws Exception {
     NamedList<?> rsp = realTimeGetDocId(solr, docId);
     String match = JSONTestUtil.matchObj("/id", rsp.get("doc"), docId);
-    assertTrue(
-        "Doc with id=" + docId + " not found due to: " + match + "; rsp=" + rsp, match == null);
+    assertNull("Doc with id=" + docId + " not found due to: " + match + "; rsp=" + rsp, match);
   }
 
   private NamedList<Object> realTimeGetDocId(SolrClient solr, String docId)
diff --git a/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java b/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
index 2ff85c4acb4..3dc5aef4a97 100644
--- a/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
@@ -975,9 +975,9 @@ public class OverseerTest extends SolrTestCaseJ4 {
       assertTrue(
           COLLECTION + " should remain after removal of the last core",
           reader.getClusterState().hasCollection(COLLECTION));
-      assertTrue(
+      assertNull(
           core_node + " should be gone after publishing the null state",
-          null == reader.getClusterState().getCollection(COLLECTION).getReplica(core_node));
+          reader.getClusterState().getCollection(COLLECTION).getReplica(core_node));
     } finally {
       close(mockController);
       close(overseerClient);
@@ -1150,8 +1150,8 @@ public class OverseerTest extends SolrTestCaseJ4 {
         Thread.sleep(50);
       }
 
-      assertTrue(showQpeek(workQueue), workQueue.peek() == null);
-      assertTrue(showQpeek(q), q.peek() == null);
+      assertNull(showQpeek(workQueue), workQueue.peek());
+      assertNull(showQpeek(q), q.peek());
     } finally {
       close(overseerClient);
       close(reader);
diff --git a/solr/core/src/test/org/apache/solr/cloud/ParallelCommitExecutionTest.java b/solr/core/src/test/org/apache/solr/cloud/ParallelCommitExecutionTest.java
index ef74e192583..a786ea0bc05 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ParallelCommitExecutionTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ParallelCommitExecutionTest.java
@@ -102,7 +102,7 @@ public class ParallelCommitExecutionTest extends SolrCloudTestCase {
   }
 
   public static void waitForRecoveriesToFinish(CloudSolrClient client) throws Exception {
-    assert null != client.getDefaultCollection();
+    assertNotNull(client.getDefaultCollection());
     AbstractDistribZkTestBase.waitForRecoveriesToFinish(
         client.getDefaultCollection(), ZkStateReader.from(client), true, true, 330);
   }
diff --git a/solr/core/src/test/org/apache/solr/cloud/ReplicationFactorTest.java b/solr/core/src/test/org/apache/solr/cloud/ReplicationFactorTest.java
index 6b24cc7341d..37cd2f99328 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ReplicationFactorTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ReplicationFactorTest.java
@@ -114,7 +114,7 @@ public class ReplicationFactorTest extends AbstractFullDistribZkTestBase {
 
     List<Replica> replicas =
         ensureAllReplicasAreActive(testCollectionName, shardId, numShards, replicationFactor, 30);
-    assertTrue("Expected active 1 replicas for " + testCollectionName, replicas.size() == 1);
+    assertEquals("Expected active 1 replicas for " + testCollectionName, 1, replicas.size());
 
     List<SolrInputDocument> batch = new ArrayList<>(10);
     for (int i = 0; i < 15; i++) {
@@ -149,7 +149,7 @@ public class ReplicationFactorTest extends AbstractFullDistribZkTestBase {
     // so now kill the replica of shard2 and verify the achieved rf is only 1
     List<Replica> shard2Replicas =
         ensureAllReplicasAreActive(testCollectionName, "shard2", numShards, replicationFactor, 30);
-    assertTrue("Expected active 1 replicas for " + testCollectionName, replicas.size() == 1);
+    assertEquals("Expected active 1 replicas for " + testCollectionName, 1, replicas.size());
 
     getProxyForReplica(shard2Replicas.get(0)).close();
 
@@ -277,14 +277,15 @@ public class ReplicationFactorTest extends AbstractFullDistribZkTestBase {
       Integer batchRf = (Integer) hdr.get(UpdateRequest.REPFACT);
       // Note that this also tests if we're wonky and return an achieved rf greater than the number
       // of live replicas.
-      assertTrue(
+      assertEquals(
           "Expected rf="
               + expectedRf
               + " for batch but got "
               + batchRf
               + "; clusterState: "
               + printClusterStateInfo(),
-          batchRf == expectedRf);
+          (int) batchRf,
+          expectedRf);
     }
   }
 
@@ -300,7 +301,7 @@ public class ReplicationFactorTest extends AbstractFullDistribZkTestBase {
 
     List<Replica> replicas =
         ensureAllReplicasAreActive(testCollectionName, shardId, numShards, replicationFactor, 30);
-    assertTrue("Expected 2 active replicas for " + testCollectionName, replicas.size() == 2);
+    assertEquals("Expected 2 active replicas for " + testCollectionName, 2, replicas.size());
 
     log.info("Indexing docId=1");
     int rf = sendDoc(1);
diff --git a/solr/core/src/test/org/apache/solr/cloud/SegmentTerminateEarlyTestState.java b/solr/core/src/test/org/apache/solr/cloud/SegmentTerminateEarlyTestState.java
index 0a0e659963d..6166cb31224 100644
--- a/solr/core/src/test/org/apache/solr/cloud/SegmentTerminateEarlyTestState.java
+++ b/solr/core/src/test/org/apache/solr/cloud/SegmentTerminateEarlyTestState.java
@@ -95,7 +95,7 @@ class SegmentTerminateEarlyTestState {
 
   void queryTimestampDescending(CloudSolrClient cloudSolrClient) throws Exception {
     TestSegmentSorting.assertFalse(maxTimestampDocKeys.isEmpty());
-    TestSegmentSorting.assertTrue("numDocs=" + numDocs + " is not even", (numDocs % 2) == 0);
+    TestSegmentSorting.assertEquals("numDocs=" + numDocs + " is not even", 0, (numDocs % 2));
     final Long oddFieldValue = (long) (maxTimestampDocKeys.iterator().next() % 2);
     final SolrQuery query = new SolrQuery(ODD_FIELD + ":" + oddFieldValue);
     query.setSort(TIMESTAMP_FIELD, SolrQuery.ORDER.desc);
@@ -132,7 +132,7 @@ class SegmentTerminateEarlyTestState {
   void queryTimestampDescendingSegmentTerminateEarlyYes(
       CloudSolrClient cloudSolrClient, boolean appendKeyDescendingToSort) throws Exception {
     TestSegmentSorting.assertFalse(maxTimestampDocKeys.isEmpty());
-    TestSegmentSorting.assertTrue("numDocs=" + numDocs + " is not even", (numDocs % 2) == 0);
+    TestSegmentSorting.assertEquals("numDocs=" + numDocs + " is not even", 0, (numDocs % 2));
     final Long oddFieldValue = (long) (maxTimestampDocKeys.iterator().next() % 2);
     final SolrQuery query = new SolrQuery(ODD_FIELD + ":" + oddFieldValue);
     query.setSort(TIMESTAMP_FIELD, SolrQuery.ORDER.desc);
@@ -171,11 +171,11 @@ class SegmentTerminateEarlyTestState {
         "responseHeader.segmentTerminatedEarly missing in " + rsp.getResponseHeader(),
         rsp.getResponseHeader()
             .get(SolrQueryResponse.RESPONSE_HEADER_SEGMENT_TERMINATED_EARLY_KEY));
-    TestSegmentSorting.assertTrue(
+    TestSegmentSorting.assertEquals(
         "responseHeader.segmentTerminatedEarly missing/false in " + rsp.getResponseHeader(),
-        Boolean.TRUE.equals(
-            rsp.getResponseHeader()
-                .get(SolrQueryResponse.RESPONSE_HEADER_SEGMENT_TERMINATED_EARLY_KEY)));
+        Boolean.TRUE,
+        rsp.getResponseHeader()
+            .get(SolrQueryResponse.RESPONSE_HEADER_SEGMENT_TERMINATED_EARLY_KEY));
     // check shards info
     final Object shardsInfo = rsp.getResponse().get(ShardParams.SHARDS_INFO);
     if (!Boolean.TRUE.equals(shardsInfoWanted)) {
@@ -202,7 +202,7 @@ class SegmentTerminateEarlyTestState {
   void queryTimestampDescendingSegmentTerminateEarlyNo(
       CloudSolrClient cloudSolrClient, boolean appendKeyDescendingToSort) throws Exception {
     TestSegmentSorting.assertFalse(maxTimestampDocKeys.isEmpty());
-    TestSegmentSorting.assertTrue("numDocs=" + numDocs + " is not even", (numDocs % 2) == 0);
+    TestSegmentSorting.assertEquals("numDocs=" + numDocs + " is not even", 0, (numDocs % 2));
     final Long oddFieldValue = (long) (maxTimestampDocKeys.iterator().next() % 2);
     final SolrQuery query = new SolrQuery(ODD_FIELD + ":" + oddFieldValue);
     query.setSort(TIMESTAMP_FIELD, SolrQuery.ORDER.desc);
@@ -239,11 +239,11 @@ class SegmentTerminateEarlyTestState {
         "responseHeader.segmentTerminatedEarly present in " + rsp.getResponseHeader(),
         rsp.getResponseHeader()
             .get(SolrQueryResponse.RESPONSE_HEADER_SEGMENT_TERMINATED_EARLY_KEY));
-    TestSegmentSorting.assertFalse(
+    TestSegmentSorting.assertNotEquals(
         "responseHeader.segmentTerminatedEarly present/true in " + rsp.getResponseHeader(),
-        Boolean.TRUE.equals(
-            rsp.getResponseHeader()
-                .get(SolrQueryResponse.RESPONSE_HEADER_SEGMENT_TERMINATED_EARLY_KEY)));
+        Boolean.TRUE,
+        rsp.getResponseHeader()
+            .get(SolrQueryResponse.RESPONSE_HEADER_SEGMENT_TERMINATED_EARLY_KEY));
     // check shards info
     final Object shardsInfo = rsp.getResponse().get(ShardParams.SHARDS_INFO);
     if (!Boolean.TRUE.equals(shardsInfoWanted)) {
@@ -268,7 +268,7 @@ class SegmentTerminateEarlyTestState {
   void queryTimestampDescendingSegmentTerminateEarlyYesGrouped(
       CloudSolrClient cloudSolrClient, boolean appendKeyDescendingToSort) throws Exception {
     TestSegmentSorting.assertFalse(maxTimestampDocKeys.isEmpty());
-    TestSegmentSorting.assertTrue("numDocs=" + numDocs + " is not even", (numDocs % 2) == 0);
+    TestSegmentSorting.assertEquals("numDocs=" + numDocs + " is not even", 0, (numDocs % 2));
     final Long oddFieldValue = (long) (maxTimestampDocKeys.iterator().next() % 2);
     final SolrQuery query = new SolrQuery(ODD_FIELD + ":" + oddFieldValue);
     query.setSort(TIMESTAMP_FIELD, SolrQuery.ORDER.desc);
@@ -276,7 +276,7 @@ class SegmentTerminateEarlyTestState {
     query.setFields(KEY_FIELD, ODD_FIELD, TIMESTAMP_FIELD);
     query.setRows(1);
     query.set(CommonParams.SEGMENT_TERMINATE_EARLY, true);
-    TestSegmentSorting.assertTrue("numDocs=" + numDocs + " is not quad-able", (numDocs % 4) == 0);
+    TestSegmentSorting.assertEquals("numDocs=" + numDocs + " is not quad-able", 0, (numDocs % 4));
     query.add("group.field", QUAD_FIELD);
     query.set("group", true);
     final QueryResponse rsp = cloudSolrClient.query(query);
@@ -303,17 +303,17 @@ class SegmentTerminateEarlyTestState {
     }
     // check segmentTerminatedEarly flag
     // at present segmentTerminateEarly cannot be used with grouped queries
-    TestSegmentSorting.assertFalse(
+    TestSegmentSorting.assertNotEquals(
         "responseHeader.segmentTerminatedEarly present/true in " + rsp.getResponseHeader(),
-        Boolean.TRUE.equals(
-            rsp.getResponseHeader()
-                .get(SolrQueryResponse.RESPONSE_HEADER_SEGMENT_TERMINATED_EARLY_KEY)));
+        Boolean.TRUE,
+        rsp.getResponseHeader()
+            .get(SolrQueryResponse.RESPONSE_HEADER_SEGMENT_TERMINATED_EARLY_KEY));
   }
 
   void queryTimestampAscendingSegmentTerminateEarlyYes(
       CloudSolrClient cloudSolrClient, boolean appendKeyDescendingToSort) throws Exception {
     TestSegmentSorting.assertFalse(minTimestampDocKeys.isEmpty());
-    TestSegmentSorting.assertTrue("numDocs=" + numDocs + " is not even", (numDocs % 2) == 0);
+    TestSegmentSorting.assertEquals("numDocs=" + numDocs + " is not even", 0, (numDocs % 2));
     final Long oddFieldValue = (long) (minTimestampDocKeys.iterator().next() % 2);
     final SolrQuery query = new SolrQuery(ODD_FIELD + ":" + oddFieldValue);
     // a sort order that is _not_ compatible with the merge sort order
@@ -348,10 +348,10 @@ class SegmentTerminateEarlyTestState {
         rsp.getResponseHeader()
             .get(SolrQueryResponse.RESPONSE_HEADER_SEGMENT_TERMINATED_EARLY_KEY));
     // segmentTerminateEarly cannot be used with incompatible sort orders
-    TestSegmentSorting.assertTrue(
+    TestSegmentSorting.assertEquals(
         "responseHeader.segmentTerminatedEarly missing/true in " + rsp.getResponseHeader(),
-        Boolean.FALSE.equals(
-            rsp.getResponseHeader()
-                .get(SolrQueryResponse.RESPONSE_HEADER_SEGMENT_TERMINATED_EARLY_KEY)));
+        Boolean.FALSE,
+        rsp.getResponseHeader()
+            .get(SolrQueryResponse.RESPONSE_HEADER_SEGMENT_TERMINATED_EARLY_KEY));
   }
 }
diff --git a/solr/core/src/test/org/apache/solr/cloud/SolrCLIZkUtilsTest.java b/solr/core/src/test/org/apache/solr/cloud/SolrCLIZkUtilsTest.java
index 0844a14a1b2..2442ab1a4bd 100644
--- a/solr/core/src/test/org/apache/solr/cloud/SolrCLIZkUtilsTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/SolrCLIZkUtilsTest.java
@@ -940,7 +940,7 @@ public class SolrCLIZkUtilsTest extends SolrCloudTestCase {
         tool.runTool(
             SolrCLI.processCommandLineArgs(
                 SolrCLI.joinCommonAndToolOptions(tool.getOptions()), args));
-    assertFalse("Should fail when trying to remove /.", res == 0);
+    assertNotEquals("Should fail when trying to remove /.", 0, res);
   }
 
   // Check that all children of fileRoot are children of zkRoot and vice-versa
diff --git a/solr/core/src/test/org/apache/solr/cloud/SolrCloudExampleTest.java b/solr/core/src/test/org/apache/solr/cloud/SolrCloudExampleTest.java
index ea8627b3dd6..0a688acabbf 100644
--- a/solr/core/src/test/org/apache/solr/cloud/SolrCloudExampleTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/SolrCloudExampleTest.java
@@ -200,7 +200,7 @@ public class SolrCloudExampleTest extends AbstractFullDistribZkTestBase {
     SolrCLI.HealthcheckTool tool = new SolrCLI.HealthcheckTool();
     CommandLine cli =
         SolrCLI.processCommandLineArgs(SolrCLI.joinCommonAndToolOptions(tool.getOptions()), args);
-    assertTrue("Healthcheck action failed!", tool.runTool(cli) == 0);
+    assertEquals("Healthcheck action failed!", 0, tool.runTool(cli));
   }
 
   protected void doTestDeleteAction(String testCollectionName, String solrUrl) throws Exception {
@@ -212,9 +212,9 @@ public class SolrCloudExampleTest extends AbstractFullDistribZkTestBase {
     SolrCLI.DeleteTool tool = new SolrCLI.DeleteTool();
     CommandLine cli =
         SolrCLI.processCommandLineArgs(SolrCLI.joinCommonAndToolOptions(tool.getOptions()), args);
-    assertTrue("Delete action failed!", tool.runTool(cli) == 0);
-    assertTrue(
-        !SolrCLI.safeCheckCollectionExists(
+    assertEquals("Delete action failed!", 0, tool.runTool(cli));
+    assertFalse(
+        SolrCLI.safeCheckCollectionExists(
             solrUrl, testCollectionName)); // it should not exist anymore
   }
 
@@ -248,7 +248,7 @@ public class SolrCloudExampleTest extends AbstractFullDistribZkTestBase {
     CommandLine cli =
         SolrCLI.processCommandLineArgs(SolrCLI.joinCommonAndToolOptions(tool.getOptions()), args);
     log.info("Sending set-property '{}'={} to SolrCLI.ConfigTool.", prop, maxTime);
-    assertTrue("Set config property failed!", tool.runTool(cli) == 0);
+    assertEquals("Set config property failed!", 0, tool.runTool(cli));
 
     configJson = SolrCLI.getJson(configUrl);
     maxTimeFromConfig = SolrCLI.atPath("/config/updateHandler/autoSoftCommit/maxTime", configJson);
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestCloudConsistency.java b/solr/core/src/test/org/apache/solr/cloud/TestCloudConsistency.java
index 88f629018ff..464225e193d 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestCloudConsistency.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestCloudConsistency.java
@@ -339,8 +339,7 @@ public class TestCloudConsistency extends SolrCloudTestCase {
   private void assertDocExists(SolrClient solr, String docId) throws Exception {
     NamedList<?> rsp = realTimeGetDocId(solr, docId);
     String match = JSONTestUtil.matchObj("/id", rsp.get("doc"), docId);
-    assertTrue(
-        "Doc with id=" + docId + " not found due to: " + match + "; rsp=" + rsp, match == null);
+    assertNull("Doc with id=" + docId + " not found due to: " + match + "; rsp=" + rsp, match);
   }
 
   private NamedList<Object> realTimeGetDocId(SolrClient solr, String docId)
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestCloudPhrasesIdentificationComponent.java b/solr/core/src/test/org/apache/solr/cloud/TestCloudPhrasesIdentificationComponent.java
index 2e4b47e2c22..6de4be97b52 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestCloudPhrasesIdentificationComponent.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestCloudPhrasesIdentificationComponent.java
@@ -202,7 +202,7 @@ public class TestCloudPhrasesIdentificationComponent extends SolrCloudTestCase {
   }
 
   public static void waitForRecoveriesToFinish(CloudSolrClient client) throws Exception {
-    assert null != client.getDefaultCollection();
+    assertNotNull(client.getDefaultCollection());
     AbstractDistribZkTestBase.waitForRecoveriesToFinish(
         client.getDefaultCollection(), ZkStateReader.from(client), true, true, 330);
   }
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestCloudPivotFacet.java b/solr/core/src/test/org/apache/solr/cloud/TestCloudPivotFacet.java
index c4b372ceb99..124da0b7913 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestCloudPivotFacet.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestCloudPivotFacet.java
@@ -369,8 +369,6 @@ public class TestCloudPivotFacet extends AbstractFullDistribZkTestBase {
 
       } else {
         // regular stats, compare everything...
-
-        assert actualStats != null;
         try {
           String msg = " of " + statsKey;
 
@@ -672,7 +670,7 @@ public class TestCloudPivotFacet extends AbstractFullDistribZkTestBase {
    * @see #useFieldRandomizedFactor
    */
   private static boolean useField() {
-    assert 0 < useFieldRandomizedFactor;
+    assertTrue(0 < useFieldRandomizedFactor);
     return 0 != TestUtil.nextInt(random(), 0, useFieldRandomizedFactor);
   }
 
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestCloudPseudoReturnFields.java b/solr/core/src/test/org/apache/solr/cloud/TestCloudPseudoReturnFields.java
index 1bc10314931..519727f136d 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestCloudPseudoReturnFields.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestCloudPseudoReturnFields.java
@@ -176,10 +176,8 @@ public class TestCloudPseudoReturnFields extends SolrCloudTestCase {
             Boolean.TRUE,
             frsp.getField().get("multiValued"));
       } catch (SolrServerException e) {
-        assertEquals(
-            "Couldn't fetch field for '" + name + "' ... schema changed out from under us?",
-            null,
-            e);
+        assertNull(
+            "Couldn't fetch field for '" + name + "' ... schema changed out from under us?", e);
       }
     }
 
@@ -982,7 +980,7 @@ public class TestCloudPseudoReturnFields extends SolrCloudTestCase {
   }
 
   public static void waitForRecoveriesToFinish(CloudSolrClient client) throws Exception {
-    assert null != client.getDefaultCollection();
+    assertNotNull(client.getDefaultCollection());
     AbstractDistribZkTestBase.waitForRecoveriesToFinish(
         client.getDefaultCollection(), ZkStateReader.from(client), true, true, 330);
   }
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestCloudSearcherWarming.java b/solr/core/src/test/org/apache/solr/cloud/TestCloudSearcherWarming.java
index b9a52eef896..a03e3666ea8 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestCloudSearcherWarming.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestCloudSearcherWarming.java
@@ -299,12 +299,9 @@ public class TestCloudSearcherWarming extends SolrCloudTestCase {
               if (jettySolrRunner.getNodeName().equals(replica.getNodeName())) {
                 SolrDispatchFilter solrDispatchFilter = jettySolrRunner.getSolrDispatchFilter();
                 try (SolrCore core = solrDispatchFilter.getCores().getCore(coreName)) {
-                  if (core.getSolrConfig().useColdSearcher) {
-                    log.error(
-                        "useColdSearcher is enabled! It should not be enabled for this test!");
-                    assert false;
-                    return false;
-                  }
+                  assertFalse(
+                      "useColdSearcher is enabled! It should not be enabled for this test!",
+                      core.getSolrConfig().useColdSearcher);
                   if (log.isInfoEnabled()) {
                     log.info("Found SolrCore: {}, id: {}", core.getName(), core);
                   }
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java b/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java
index 58f13026645..11e8b0f22fb 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java
@@ -41,7 +41,6 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.Deque;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.LinkedList;
 import java.util.List;
@@ -400,18 +399,16 @@ public class TestConfigSetsAPI extends SolrCloudTestCase {
     }
 
     // check the value in properties are correct
-    Iterator<? extends Map.Entry<String, ?>> it = properties.iterator();
-    while (it.hasNext()) {
-      Map.Entry<String, ?> entry = it.next();
+    for (Map.Entry<String, ?> entry : properties) {
       String newValue = newProps != null ? newProps.get(entry.getKey()) : null;
       String oldValue = oldProps != null ? oldProps.get(entry.getKey()) : null;
       if (newValue != null) {
-        assertTrue(newValue.equals(entry.getValue()));
+        assertEquals(newValue, entry.getValue());
       } else if (oldValue != null) {
-        assertTrue(oldValue.equals(entry.getValue()));
+        assertEquals(oldValue, entry.getValue());
       } else {
         // not in either
-        assert (false);
+        fail();
       }
     }
   }
@@ -1367,24 +1364,22 @@ public class TestConfigSetsAPI extends SolrCloudTestCase {
     assertTrue(
         "managed-schema.xml file should have been uploaded",
         zkClient.exists("/configs/" + configSetName + suffix + "/managed-schema.xml", true));
-    assertTrue(
+    assertArrayEquals(
         "managed-schema.xml file contents on zookeeper are not exactly same as that of the file uploaded in config",
-        Arrays.equals(
-            zkClient.getData(
-                "/configs/" + configSetName + suffix + "/managed-schema.xml", null, null, true),
-            readFile("solr/configsets/upload/" + configSetName + "/managed-schema.xml")));
+        zkClient.getData(
+            "/configs/" + configSetName + suffix + "/managed-schema.xml", null, null, true),
+        readFile("solr/configsets/upload/" + configSetName + "/managed-schema.xml"));
 
     assertTrue(
         "solrconfig.xml file should have been uploaded",
         zkClient.exists("/configs/" + configSetName + suffix + "/solrconfig.xml", true));
     byte data[] = zkClient.getData("/configs/" + configSetName + suffix, null, null, true);
     // assertEquals("{\"trusted\": false}", new String(data, StandardCharsets.UTF_8));
-    assertTrue(
+    assertArrayEquals(
         "solrconfig.xml file contents on zookeeper are not exactly same as that of the file uploaded in config",
-        Arrays.equals(
-            zkClient.getData(
-                "/configs/" + configSetName + suffix + "/solrconfig.xml", null, null, true),
-            readFile("solr/configsets/upload/" + configSetName + "/solrconfig.xml")));
+        zkClient.getData(
+            "/configs/" + configSetName + suffix + "/solrconfig.xml", null, null, true),
+        readFile("solr/configsets/upload/" + configSetName + "/solrconfig.xml"));
   }
 
   private long uploadConfigSet(
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestMiniSolrCloudClusterSSL.java b/solr/core/src/test/org/apache/solr/cloud/TestMiniSolrCloudClusterSSL.java
index bea102c605b..a93ee2fd171 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestMiniSolrCloudClusterSSL.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestMiniSolrCloudClusterSSL.java
@@ -67,7 +67,7 @@ public class TestMiniSolrCloudClusterSSL extends SolrTestCaseJ4 {
   static {
     try {
       DEFAULT_SSL_CONTEXT = SSLContext.getDefault();
-      assert null != DEFAULT_SSL_CONTEXT;
+      assertNotNull(DEFAULT_SSL_CONTEXT);
     } catch (Exception e) {
       throw new RuntimeException(
           "Unable to initialize 'Default' SSLContext Algorithm, JVM is borked", e);
@@ -401,7 +401,7 @@ public class TestMiniSolrCloudClusterSSL extends SolrTestCaseJ4 {
 
     final SSLConnectionSocketFactory sslFactory =
         clientConfig.buildClientSSLConnectionSocketFactory();
-    assert null != sslFactory;
+    assertNotNull(sslFactory);
 
     final Registry<ConnectionSocketFactory> socketFactoryReg =
         RegistryBuilder.<ConnectionSocketFactory>create()
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestOnReconnectListenerSupport.java b/solr/core/src/test/org/apache/solr/cloud/TestOnReconnectListenerSupport.java
index 0567e0ae71f..12959741d59 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestOnReconnectListenerSupport.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestOnReconnectListenerSupport.java
@@ -116,7 +116,7 @@ public class TestOnReconnectListenerSupport extends AbstractFullDistribZkTestBas
     }
 
     // they shouldn't be equal after reload
-    assertTrue(!leaderCoreId.equals(reloadedLeaderCoreId));
+    assertNotEquals(leaderCoreId, reloadedLeaderCoreId);
 
     listeners = zkController.getCurrentOnReconnectListeners();
     assertNotNull("ZkController returned null OnReconnect listeners", listeners);
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestRandomFlRTGCloud.java b/solr/core/src/test/org/apache/solr/cloud/TestRandomFlRTGCloud.java
index b4eb112a3c2..012d2477498 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestRandomFlRTGCloud.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestRandomFlRTGCloud.java
@@ -504,7 +504,6 @@ public class TestRandomFlRTGCloud extends SolrCloudTestCase {
         }
       }
     } else {
-      assert 1 == idsToRequest.size();
       params.add("id", idsToRequest.get(0));
     }
 
@@ -644,7 +643,7 @@ public class TestRandomFlRTGCloud extends SolrCloudTestCase {
   }
 
   public static void waitForRecoveriesToFinish(CloudSolrClient client) throws Exception {
-    assert null != client.getDefaultCollection();
+    assertNotNull(client.getDefaultCollection());
     AbstractDistribZkTestBase.waitForRecoveriesToFinish(
         client.getDefaultCollection(), ZkStateReader.from(client), true, true, 330);
   }
@@ -1360,7 +1359,7 @@ public class TestRandomFlRTGCloud extends SolrCloudTestCase {
         final SolrInputDocument expected,
         final SolrDocument actual,
         final String wt) {
-      assertEquals(fl, null, actual.getFirstValue(fieldName));
+      assertNull(fl, actual.getFirstValue(fieldName));
       return Collections.emptySet();
     }
   }
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestStressCloudBlindAtomicUpdates.java b/solr/core/src/test/org/apache/solr/cloud/TestStressCloudBlindAtomicUpdates.java
index 652bfb140dd..468940441d2 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestStressCloudBlindAtomicUpdates.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestStressCloudBlindAtomicUpdates.java
@@ -359,7 +359,7 @@ public class TestStressCloudBlindAtomicUpdates extends SolrCloudTestCase {
     // check all the final index contents match our expectations
     int incorrectDocs = 0;
     for (int id = 0; id < numDocsInIndex; id += DOC_ID_INCR) {
-      assert 0 == id % DOC_ID_INCR : "WTF? " + id;
+      assertEquals("WTF? " + id, 0, id % DOC_ID_INCR);
 
       final long expect = expected[id / DOC_ID_INCR].longValue();
 
@@ -421,7 +421,7 @@ public class TestStressCloudBlindAtomicUpdates extends SolrCloudTestCase {
     }
 
     private void doRandomAtomicUpdate(int docId) throws Exception {
-      assert 0 == docId % DOC_ID_INCR : "WTF? " + docId;
+      assertEquals("WTF? " + docId, 0, docId % DOC_ID_INCR);
 
       final int delta = TestUtil.nextInt(rand, -1000, 1000);
       log.info("worker={}, docId={}, delta={}", workerId, docId, delta);
@@ -521,7 +521,7 @@ public class TestStressCloudBlindAtomicUpdates extends SolrCloudTestCase {
   }
 
   public static void waitForRecoveriesToFinish(CloudSolrClient client) throws Exception {
-    assert null != client.getDefaultCollection();
+    assertNotNull(client.getDefaultCollection());
     ZkStateReader.from(client).forceUpdateCollection(client.getDefaultCollection());
     AbstractDistribZkTestBase.waitForRecoveriesToFinish(
         client.getDefaultCollection(), ZkStateReader.from(client), true, true, 330);
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestStressInPlaceUpdates.java b/solr/core/src/test/org/apache/solr/cloud/TestStressInPlaceUpdates.java
index 760f3e58097..d16ecacce5a 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestStressInPlaceUpdates.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestStressInPlaceUpdates.java
@@ -600,7 +600,7 @@ public class TestStressInPlaceUpdates extends AbstractFullDistribZkTestBase {
 
     public DocInfo(long version, int val1, long val2) {
       // must either be real positive version, or negative deleted version/indicator
-      assert version != 0;
+      assertNotEquals(0, version);
       this.version = version;
       this.intFieldValue = val1;
       this.longFieldValue = val2;
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestTlogReplayVsRecovery.java b/solr/core/src/test/org/apache/solr/cloud/TestTlogReplayVsRecovery.java
index a6ca6604ed7..5c29a30e800 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestTlogReplayVsRecovery.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestTlogReplayVsRecovery.java
@@ -281,7 +281,7 @@ public class TestTlogReplayVsRecovery extends SolrCloudTestCase {
     assertEquals(0, rsp.getStatus());
 
     String match = JSONTestUtil.matchObj("/id", rsp.getResponse().get("doc"), docId);
-    assertTrue(
+    assertNull(
         "Doc with id="
             + docId
             + " not found in "
@@ -290,6 +290,6 @@ public class TestTlogReplayVsRecovery extends SolrCloudTestCase {
             + match
             + "; rsp="
             + rsp,
-        match == null);
+        match);
   }
 }
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java b/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java
index a195a9fcb59..45586dd4858 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java
@@ -214,7 +214,7 @@ public class TestTlogReplica extends SolrCloudTestCase {
           0,
           docCollection.getReplicas(EnumSet.of(Replica.Type.PULL)).size());
       for (Slice s : docCollection.getSlices()) {
-        assertTrue(s.getLeader().getType() == Replica.Type.TLOG);
+        assertSame(s.getLeader().getType(), Replica.Type.TLOG);
         List<String> shardElectionNodes =
             cluster
                 .getZkClient()
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestTolerantUpdateProcessorRandomCloud.java b/solr/core/src/test/org/apache/solr/cloud/TestTolerantUpdateProcessorRandomCloud.java
index 7bfcf85bea2..a2fac59809e 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestTolerantUpdateProcessorRandomCloud.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestTolerantUpdateProcessorRandomCloud.java
@@ -241,15 +241,16 @@ public class TestTolerantUpdateProcessorRandomCloud extends SolrCloudTestCase {
                       (hiBound < 0) ? maxDocId : hiBound - 1);
 
               if (lo != hi) {
-                assert lo < hi : "lo=" + lo + " hi=" + hi;
+                assertTrue("lo=" + lo + " hi=" + hi, lo < hi);
                 // NOTE: clear & set are exclusive of hi, so we use "}" in range query accordingly
                 q = "id_i:[" + lo + " TO " + hi + "}";
                 expectedDocIds.clear(lo, hi);
                 docsAffectedThisRequest.set(lo, hi);
               } else {
                 // edge case: special case DBQ of one doc
-                assert (lo == rangeAxis && hi == rangeAxis)
-                    : "lo=" + lo + " axis=" + rangeAxis + " hi=" + hi;
+                assertTrue(
+                    "lo=" + lo + " axis=" + rangeAxis + " hi=" + hi,
+                    lo == rangeAxis && hi == rangeAxis);
                 q = "id_i:[" + lo + " TO " + lo + "]"; // have to be inclusive of both ends
                 expectedDocIds.clear(lo);
                 docsAffectedThisRequest.set(lo);
@@ -319,9 +320,10 @@ public class TestTolerantUpdateProcessorRandomCloud extends SolrCloudTestCase {
     final int max = atLeast(100);
     BitSet bits = new BitSet(max + 1);
     for (int i = 0; i <= max; i++) {
-      assertFalse(
+      assertNotEquals(
           "how is bitset already full? iter=" + i + " card=" + bits.cardinality() + "/max=" + max,
-          bits.cardinality() == max + 1);
+          bits.cardinality(),
+          max + 1);
       final int nextBit = randomUnsetBit(random(), bits, max);
       assertTrue("nextBit shouldn't be negative yet: " + nextBit, 0 <= nextBit);
       assertTrue("nextBit can't exceed max: " + nextBit, nextBit <= max);
diff --git a/solr/core/src/test/org/apache/solr/cloud/api/collections/SimpleCollectionCreateDeleteTest.java b/solr/core/src/test/org/apache/solr/cloud/api/collections/SimpleCollectionCreateDeleteTest.java
index 948e901b645..b06ab9bbd66 100644
--- a/solr/core/src/test/org/apache/solr/cloud/api/collections/SimpleCollectionCreateDeleteTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/api/collections/SimpleCollectionCreateDeleteTest.java
@@ -100,7 +100,7 @@ public class SimpleCollectionCreateDeleteTest extends AbstractFullDistribZkTestB
           CollectionAdminRequest.createCollection(collectionName, 1, 1)
               .setCreateNodeSet(notOverseerNode);
       request = create.process(cloudClient).getResponse();
-      assertTrue("Collection creation should not have failed", request.get("success") != null);
+      assertNotNull("Collection creation should not have failed", request.get("success"));
     }
   }
 
@@ -175,9 +175,9 @@ public class SimpleCollectionCreateDeleteTest extends AbstractFullDistribZkTestB
 
       NamedList<Object> requestWithSharedConfig =
           createWithSharedConfig.process(cloudClient).getResponse();
-      assertTrue(
+      assertNotNull(
           "The collection with shared config set should have been created",
-          requestWithSharedConfig.get("success") != null);
+          requestWithSharedConfig.get("success"));
       assertTrue(
           "The new collection should exist after a successful creation",
           getZkClient()
diff --git a/solr/core/src/test/org/apache/solr/cloud/api/collections/SplitByPrefixTest.java b/solr/core/src/test/org/apache/solr/cloud/api/collections/SplitByPrefixTest.java
index 3c228f3841e..3991c1d229b 100644
--- a/solr/core/src/test/org/apache/solr/cloud/api/collections/SplitByPrefixTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/api/collections/SplitByPrefixTest.java
@@ -218,7 +218,7 @@ public class SplitByPrefixTest extends SolrCloudTestCase {
     Slice slice2 = slices2.iterator().next();
 
     assertTrue(slices1.size() == 1 && slices2.size() == 1);
-    assertTrue(slice1 != slice2);
+    assertNotSame(slice1, slice2);
 
     //
     // now let's add enough documents to the first prefix to get it split out on its own
@@ -251,7 +251,7 @@ public class SplitByPrefixTest extends SolrCloudTestCase {
     slice2 = slices2.iterator().next();
 
     assertTrue(slices1.size() == 1 && slices2.size() == 1);
-    assertTrue(slice1 != slice2);
+    assertNotSame(slice1, slice2);
 
     // Now if we call split (with splitByPrefix) on a shard that has a single prefix, it should
     // split it in half
@@ -274,7 +274,7 @@ public class SplitByPrefixTest extends SolrCloudTestCase {
         collection.getRouter().getSearchSlicesSingle(uniquePrefixes.get(0).key, null, collection);
     slice1 = slices1.iterator().next();
 
-    assertTrue(slices1.size() == 2);
+    assertEquals(2, slices1.size());
 
     //
     // split one more time, this time on a partial prefix/bucket
@@ -296,7 +296,7 @@ public class SplitByPrefixTest extends SolrCloudTestCase {
     slices1 =
         collection.getRouter().getSearchSlicesSingle(uniquePrefixes.get(0).key, null, collection);
 
-    assertTrue(slices1.size() == 3);
+    assertEquals(3, slices1.size());
 
     // System.err.println("### STATE=" +
     // cluster.getSolrClient().getZkStateReader().getClusterState().getCollection(COLLECTION_NAME));
diff --git a/solr/core/src/test/org/apache/solr/cluster/events/ClusterEventProducerTest.java b/solr/core/src/test/org/apache/solr/cluster/events/ClusterEventProducerTest.java
index 4f007b73708..5813fb9512c 100644
--- a/solr/core/src/test/org/apache/solr/cluster/events/ClusterEventProducerTest.java
+++ b/solr/core/src/test/org/apache/solr/cluster/events/ClusterEventProducerTest.java
@@ -261,10 +261,9 @@ public class ClusterEventProducerTest extends SolrCloudTestCase {
         ClusterEvent.EventType.CLUSTER_PROPERTIES_CHANGED,
         event.getType());
     propertiesChanged = (ClusterPropertiesChangedEvent) event;
-    assertEquals(
+    assertNull(
         "new properties should not have 'ext.foo' property: "
             + propertiesChanged.getNewClusterProperties(),
-        null,
         propertiesChanged.getNewClusterProperties().get("ext.foo"));
   }
 
diff --git a/solr/core/src/test/org/apache/solr/cluster/placement/plugins/AffinityPlacementFactoryTest.java b/solr/core/src/test/org/apache/solr/cluster/placement/plugins/AffinityPlacementFactoryTest.java
index 40d04aa8e64..04c3af33f3b 100644
--- a/solr/core/src/test/org/apache/solr/cluster/placement/plugins/AffinityPlacementFactoryTest.java
+++ b/solr/core/src/test/org/apache/solr/cluster/placement/plugins/AffinityPlacementFactoryTest.java
@@ -806,7 +806,7 @@ public class AffinityPlacementFactoryTest extends SolrTestCaseJ4 {
     PlacementPlan pp = plugin.computePlacement(placementRequest, placementContext);
     assertEquals(4, pp.getReplicaPlacements().size());
     for (ReplicaPlacement rp : pp.getReplicaPlacements()) {
-      assertFalse("should not put any replicas on " + smallNode, rp.getNode().equals(smallNode));
+      assertNotEquals("should not put any replicas on " + smallNode, rp.getNode(), smallNode);
     }
   }
 
diff --git a/solr/core/src/test/org/apache/solr/common/cloud/ZkDynamicConfigTest.java b/solr/core/src/test/org/apache/solr/common/cloud/ZkDynamicConfigTest.java
index cf331ee2da7..e260a8a9981 100644
--- a/solr/core/src/test/org/apache/solr/common/cloud/ZkDynamicConfigTest.java
+++ b/solr/core/src/test/org/apache/solr/common/cloud/ZkDynamicConfigTest.java
@@ -56,9 +56,9 @@ public class ZkDynamicConfigTest extends SolrTestCaseJ4 {
 
     // client address/port optional if clientPort specified in static config file (back-compat mode)
     assertEquals("participant", parsed.getServers().get(3).role);
-    assertEquals(null, parsed.getServers().get(3).clientPortAddress);
+    assertNull(parsed.getServers().get(3).clientPortAddress);
     assertEquals("zoo4", parsed.getServers().get(3).resolveClientPortAddress());
-    assertEquals(null, parsed.getServers().get(3).clientPort);
+    assertNull(parsed.getServers().get(3).clientPort);
   }
 
   @Test(expected = SolrException.class)
diff --git a/solr/core/src/test/org/apache/solr/core/BlobRepositoryMockingTest.java b/solr/core/src/test/org/apache/solr/core/BlobRepositoryMockingTest.java
index d9237a47c29..8ad5ee12b76 100644
--- a/solr/core/src/test/org/apache/solr/core/BlobRepositoryMockingTest.java
+++ b/solr/core/src/test/org/apache/solr/core/BlobRepositoryMockingTest.java
@@ -17,11 +17,6 @@
 
 package org.apache.solr.core;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
 import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.eq;
 import static org.mockito.Mockito.mock;
@@ -44,7 +39,7 @@ import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-public class BlobRepositoryMockingTest {
+public class BlobRepositoryMockingTest extends SolrTestCaseJ4 {
 
   private static final Charset UTF8 = StandardCharsets.UTF_8;
   private static final String[][] PARSED =
@@ -71,7 +66,8 @@ public class BlobRepositoryMockingTest {
   }
 
   @Before
-  public void setUp() {
+  public void setUp() throws Exception {
+    super.setUp();
     blobFetched = false;
     blobKey = "";
     reset(mocks);
diff --git a/solr/core/src/test/org/apache/solr/core/CoreSorterTest.java b/solr/core/src/test/org/apache/solr/core/CoreSorterTest.java
index 9ca486a2b13..9eca696f0e0 100644
--- a/solr/core/src/test/org/apache/solr/core/CoreSorterTest.java
+++ b/solr/core/src/test/org/apache/solr/core/CoreSorterTest.java
@@ -154,11 +154,11 @@ public class CoreSorterTest extends SolrTestCaseJ4 {
     for (Map.Entry<CountsForEachShard, List<CoreDescriptor>> entry : myCountsToDescs.entrySet()) {
       for (CoreDescriptor descriptor : entry.getValue()) {
         CountsForEachShard prev = myDescsToCounts.put(descriptor, entry.getKey());
-        assert prev == null; // sanity check
+        assertNull(prev); // sanity check
       }
     }
 
-    assert myCountsToDescs.size() == perShardCounts.size(); // just a sanity check
+    assertEquals(myCountsToDescs.size(), perShardCounts.size()); // just a sanity check
 
     CoreContainer mockCC = mock(CoreContainer.class);
     {
diff --git a/solr/core/src/test/org/apache/solr/core/ExitableDirectoryReaderTest.java b/solr/core/src/test/org/apache/solr/core/ExitableDirectoryReaderTest.java
index 2493dd6d3a1..1ceb9636b20 100644
--- a/solr/core/src/test/org/apache/solr/core/ExitableDirectoryReaderTest.java
+++ b/solr/core/src/test/org/apache/solr/core/ExitableDirectoryReaderTest.java
@@ -151,9 +151,9 @@ public class ExitableDirectoryReaderTest extends SolrTestCaseJ4 {
 
     assertEquals("Should have exactly " + NUM_DOCS, (long) (body.get("numFound")), NUM_DOCS);
     header = (Map<?, ?>) (res.get("responseHeader"));
-    assertTrue(
+    assertNull(
         "Should NOT have partial results",
-        header.get(SolrQueryResponse.RESPONSE_HEADER_PARTIAL_RESULTS_KEY) == null);
+        header.get(SolrQueryResponse.RESPONSE_HEADER_PARTIAL_RESULTS_KEY));
   }
 
   // When looking at a problem raised on the user's list I ran across this anomaly with timeAllowed
diff --git a/solr/core/src/test/org/apache/solr/core/PluginInfoTest.java b/solr/core/src/test/org/apache/solr/core/PluginInfoTest.java
index 57e63a7984b..d57c650e967 100644
--- a/solr/core/src/test/org/apache/solr/core/PluginInfoTest.java
+++ b/solr/core/src/test/org/apache/solr/core/PluginInfoTest.java
@@ -78,7 +78,7 @@ public class PluginInfoTest extends DOMUtilTestBase {
 
     Node nodeWithAName = getNode("<plugin name=\"myName\" />", "plugin");
     PluginInfo pi2 = new PluginInfo(nodeWithAName, "Node with a Name", true, false);
-    assertTrue(pi2.name.equals("myName"));
+    assertEquals("myName", pi2.name);
   }
 
   @Test
@@ -99,7 +99,7 @@ public class PluginInfoTest extends DOMUtilTestBase {
 
     Node nodeWithAClass = getNode("<plugin class=\"myName\" />", "plugin");
     PluginInfo pi2 = new PluginInfo(nodeWithAClass, "Node with a Class", false, true);
-    assertTrue(pi2.className.equals("myName"));
+    assertEquals("myName", pi2.className);
   }
 
   @Test
@@ -133,7 +133,7 @@ public class PluginInfoTest extends DOMUtilTestBase {
   public void testHasChildren() throws Exception {
     Node node = getNode(configWith2Children, "plugin");
     PluginInfo pi = new PluginInfo(node, "node with 2 Children", false, false);
-    assertTrue(pi.children.size() == 2);
+    assertEquals(2, pi.children.size());
   }
 
   @Test
@@ -145,7 +145,7 @@ public class PluginInfoTest extends DOMUtilTestBase {
     PluginInfo notExistent = pi.getChild("doesnotExist");
     assertNull(notExistent);
     assertTrue(childInfo instanceof PluginInfo);
-    assertTrue((Integer) childInfo.initArgs.get("index") == 0);
+    assertEquals(0, (int) (Integer) childInfo.initArgs.get("index"));
     Node node2 = getNode(configWithNoChildren, "plugin");
     PluginInfo pi2 = new PluginInfo(node2, "with No Children", false, false);
     PluginInfo noChild = pi2.getChild("long");
@@ -157,7 +157,7 @@ public class PluginInfoTest extends DOMUtilTestBase {
     Node node = getNode(configWith2Children, "plugin");
     PluginInfo pi = new PluginInfo(node, "with children", false, false);
     List<PluginInfo> children = pi.getChildren("child");
-    assertTrue(children.size() == 2);
+    assertEquals(2, children.size());
     for (PluginInfo childInfo : children) {
       assertNotNull(childInfo);
       assertTrue(childInfo instanceof PluginInfo);
@@ -168,6 +168,6 @@ public class PluginInfoTest extends DOMUtilTestBase {
   public void testInitArgsCount() throws Exception {
     Node node = getNode(configWithNoChildren, "plugin");
     PluginInfo pi = new PluginInfo(node, "from static", true, false);
-    assertTrue(pi.initArgs.size() == node.getChildNodes().getLength());
+    assertEquals(pi.initArgs.size(), node.getChildNodes().getLength());
   }
 }
diff --git a/solr/core/src/test/org/apache/solr/core/QueryResultKeyTest.java b/solr/core/src/test/org/apache/solr/core/QueryResultKeyTest.java
index d766c5d8837..e5f53892b24 100644
--- a/solr/core/src/test/org/apache/solr/core/QueryResultKeyTest.java
+++ b/solr/core/src/test/org/apache/solr/core/QueryResultKeyTest.java
@@ -90,12 +90,12 @@ public class QueryResultKeyTest extends SolrTestCaseJ4 {
     assertEquals(fq_ac, fq_aa);
     assertEquals(fq_ac, fq_ab);
 
-    assertTrue(!fq_aa.equals(fq_zz));
-    assertTrue(!fq_ab.equals(fq_zz));
-    assertTrue(!fq_ac.equals(fq_zz));
-    assertTrue(!fq_zz.equals(fq_aa));
-    assertTrue(!fq_zz.equals(fq_ab));
-    assertTrue(!fq_zz.equals(fq_ac));
+    assertNotEquals(fq_aa, fq_zz);
+    assertNotEquals(fq_ab, fq_zz);
+    assertNotEquals(fq_ac, fq_zz);
+    assertNotEquals(fq_zz, fq_aa);
+    assertNotEquals(fq_zz, fq_ab);
+    assertNotEquals(fq_zz, fq_ac);
 
     List<Query> filters1 = Arrays.asList(fq_aa, fq_ab);
     List<Query> filters2 = Arrays.asList(fq_zz, fq_ac);
@@ -134,7 +134,6 @@ public class QueryResultKeyTest extends SolrTestCaseJ4 {
         assertKeyNotEquals(aa, bb);
       }
     }
-    assert minIters <= iter;
   }
 
   public void testMinExactCount() {
@@ -166,8 +165,8 @@ public class QueryResultKeyTest extends SolrTestCaseJ4 {
 
   /** does bi-directional check that the keys are <em>not</em> equals */
   public void assertKeyNotEquals(QueryResultKey key1, QueryResultKey key2) {
-    assertTrue(!key1.equals(key2));
-    assertTrue(!key2.equals(key1));
+    assertNotEquals(key1, key2);
+    assertNotEquals(key2, key1);
   }
 
   /**
diff --git a/solr/core/src/test/org/apache/solr/core/RequestHandlersTest.java b/solr/core/src/test/org/apache/solr/core/RequestHandlersTest.java
index 80d8c1f9c62..7ac9d6a107e 100644
--- a/solr/core/src/test/org/apache/solr/core/RequestHandlersTest.java
+++ b/solr/core/src/test/org/apache/solr/core/RequestHandlersTest.java
@@ -131,6 +131,6 @@ public class RequestHandlersTest extends SolrTestCaseJ4 {
     Long updateTime = (Long) updateStats.get("UPDATE./update.totalTime");
     Long termTime = (Long) termStats.get("QUERY./terms.totalTime");
 
-    assertFalse("RequestHandlers should not share statistics!", updateTime.equals(termTime));
+    assertNotEquals("RequestHandlers should not share statistics!", updateTime, termTime);
   }
 }
diff --git a/solr/core/src/test/org/apache/solr/core/ResourceLoaderTest.java b/solr/core/src/test/org/apache/solr/core/ResourceLoaderTest.java
index 9a49035e796..1e81af74233 100644
--- a/solr/core/src/test/org/apache/solr/core/ResourceLoaderTest.java
+++ b/solr/core/src/test/org/apache/solr/core/ResourceLoaderTest.java
@@ -27,7 +27,6 @@ import java.nio.charset.CharacterCodingException;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
@@ -166,11 +165,12 @@ public class ResourceLoaderTest extends SolrTestCaseJ4 {
       assertEquals(
           "Should have been able to read 3 bytes from bomStream", 3, bomStream.read(firstBytes));
 
-      assertTrue(
+      assertArrayEquals(
           "This test only works if "
               + fileWithBom
               + " contains a BOM -- it appears someone removed it.",
-          Arrays.equals(bomExpected, firstBytes));
+          bomExpected,
+          firstBytes);
     } finally {
       try {
         bomStream.close();
diff --git a/solr/core/src/test/org/apache/solr/core/SOLR749Test.java b/solr/core/src/test/org/apache/solr/core/SOLR749Test.java
index cdc5e63dbd4..7af7beb55bb 100644
--- a/solr/core/src/test/org/apache/solr/core/SOLR749Test.java
+++ b/solr/core/src/test/org/apache/solr/core/SOLR749Test.java
@@ -38,15 +38,15 @@ public class SOLR749Test extends SolrTestCaseJ4 {
 
   public void testConstruction() {
     SolrCore core = h.getCore();
-    assertTrue("core is null and it shouldn't be", core != null);
+    assertNotNull("core is null and it shouldn't be", core);
     QParserPlugin parserPlugin = core.getQueryPlugin(QParserPlugin.DEFAULT_QTYPE);
-    assertTrue("parserPlugin is null and it shouldn't be", parserPlugin != null);
+    assertNotNull("parserPlugin is null and it shouldn't be", parserPlugin);
     assertTrue(
         "parserPlugin is not an instanceof " + FooQParserPlugin.class,
         parserPlugin instanceof FooQParserPlugin);
 
     ValueSourceParser vsp = core.getValueSourceParser("boost");
-    assertTrue("vsp is null and it shouldn't be", vsp != null);
+    assertNotNull("vsp is null and it shouldn't be", vsp);
     assertTrue(
         "vsp is not an instanceof " + DummyValueSourceParser.class,
         vsp instanceof DummyValueSourceParser);
diff --git a/solr/core/src/test/org/apache/solr/core/SolrCoreTest.java b/solr/core/src/test/org/apache/solr/core/SolrCoreTest.java
index a84eec13a99..b7cd61e99e7 100644
--- a/solr/core/src/test/org/apache/solr/core/SolrCoreTest.java
+++ b/solr/core/src/test/org/apache/solr/core/SolrCoreTest.java
@@ -158,17 +158,17 @@ public class SolrCoreTest extends SolrTestCaseJ4 {
     assertEquals(core.getRequestHandlers().get(path), handler1);
     core.close();
     cores.shutdown();
-    assertTrue("Handler not closed", handler1.closed == true);
+    assertTrue("Handler not closed", handler1.closed);
   }
 
   @Test
   public void testRefCount() {
     SolrCore core = h.getCore();
-    assertTrue("Refcount != 1", core.getOpenCount() == 1);
+    assertEquals("Refcount != 1", 1, core.getOpenCount());
 
     final CoreContainer cores = h.getCoreContainer();
     SolrCore c1 = cores.getCore(SolrTestCaseJ4.DEFAULT_TEST_CORENAME);
-    assertTrue("Refcount != 2", core.getOpenCount() == 2);
+    assertEquals("Refcount != 2", 2, core.getOpenCount());
 
     ClosingRequestHandler handler1 = new ClosingRequestHandler();
     handler1.inform(core);
@@ -181,26 +181,26 @@ public class SolrCoreTest extends SolrTestCaseJ4 {
     SolrCore c2 = cores.getCore(SolrTestCaseJ4.DEFAULT_TEST_CORENAME);
     c1.close();
     assertTrue("Refcount < 1", core.getOpenCount() >= 1);
-    assertTrue("Handler is closed", handler1.closed == false);
+    assertFalse("Handler is closed", handler1.closed);
 
     c1 = cores.getCore(SolrTestCaseJ4.DEFAULT_TEST_CORENAME);
     assertTrue("Refcount < 2", core.getOpenCount() >= 2);
-    assertTrue("Handler is closed", handler1.closed == false);
+    assertFalse("Handler is closed", handler1.closed);
 
     c2.close();
     assertTrue("Refcount < 1", core.getOpenCount() >= 1);
-    assertTrue("Handler is closed", handler1.closed == false);
+    assertFalse("Handler is closed", handler1.closed);
 
     c1.close();
     cores.shutdown();
-    assertTrue("Refcount != 0", core.getOpenCount() == 0);
+    assertEquals("Refcount != 0", 0, core.getOpenCount());
     assertTrue("Handler not closed", core.isClosed() && handler1.closed == true);
   }
 
   @Test
   public void testRefCountMT() throws Exception {
     SolrCore core = h.getCore();
-    assertTrue("Refcount != 1", core.getOpenCount() == 1);
+    assertEquals("Refcount != 1", 1, core.getOpenCount());
 
     final ClosingRequestHandler handler1 = new ClosingRequestHandler();
     handler1.inform(core);
@@ -239,7 +239,7 @@ public class SolrCoreTest extends SolrTestCaseJ4 {
                   yieldInt(l);
                   assertTrue("Refcount > 17", core.getOpenCount() <= 17);
                   yieldInt(l);
-                  assertTrue("Handler is closed", handler1.closed == false);
+                  assertFalse("Handler is closed", handler1.closed);
                   yieldInt(l);
                   core.close();
                   core = null;
@@ -260,7 +260,7 @@ public class SolrCoreTest extends SolrTestCaseJ4 {
     }
 
     cores.shutdown();
-    assertTrue("Refcount != 0", core.getOpenCount() == 0);
+    assertEquals("Refcount != 0", 0, core.getOpenCount());
     assertTrue("Handler not closed", core.isClosed() && handler1.closed == true);
 
     service.shutdown();
@@ -292,8 +292,7 @@ public class SolrCoreTest extends SolrTestCaseJ4 {
     assertEquals(
         "wrong config for slowQueryThresholdMillis", 2000, solrConfig.slowQueryThresholdMillis);
     assertEquals("wrong config for maxBooleanClauses", 1024, solrConfig.booleanQueryMaxClauseCount);
-    assertEquals(
-        "wrong config for enableLazyFieldLoading", true, solrConfig.enableLazyFieldLoading);
+    assertTrue("wrong config for enableLazyFieldLoading", solrConfig.enableLazyFieldLoading);
     assertEquals("wrong config for queryResultWindowSize", 10, solrConfig.queryResultWindowSize);
   }
 
@@ -311,7 +310,7 @@ public class SolrCoreTest extends SolrTestCaseJ4 {
     // make up for the fact that opening a searcher in this empty core is very fast by opening new
     // searchers continuously to increase the likelihood for race.
     SolrCore core = h.getCore();
-    assertTrue("Refcount != 1", core.getOpenCount() == 1);
+    assertEquals("Refcount != 1", 1, core.getOpenCount());
     executor.execute(new NewSearcherRunnable(core));
 
     // Since we called getCore() vs getCoreInc() and don't own a refCount, the container should
diff --git a/solr/core/src/test/org/apache/solr/core/TestConfig.java b/solr/core/src/test/org/apache/solr/core/TestConfig.java
index 6e5a3a24220..2c17cbf1e1a 100644
--- a/solr/core/src/test/org/apache/solr/core/TestConfig.java
+++ b/solr/core/src/test/org/apache/solr/core/TestConfig.java
@@ -31,7 +31,6 @@ import org.apache.solr.schema.IndexSchema;
 import org.apache.solr.schema.IndexSchemaFactory;
 import org.apache.solr.search.CacheConfig;
 import org.apache.solr.update.SolrIndexConfig;
-import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -164,7 +163,7 @@ public class TestConfig extends SolrTestCaseJ4 {
     SolrIndexConfig sic = sc.indexConfig;
 
     ++numDefaultsTested;
-    assertEquals("default useCompoundFile", false, sic.useCompoundFile);
+    assertFalse("default useCompoundFile", sic.useCompoundFile);
 
     ++numDefaultsTested;
     assertEquals("default maxBufferedDocs", -1, sic.maxBufferedDocs);
@@ -221,16 +220,14 @@ public class TestConfig extends SolrTestCaseJ4 {
   public void testConvertAutoCommitMaxSizeStringToBytes() {
 
     // Valid values
-    Assert.assertEquals(300, SolrConfig.convertHeapOptionStyleConfigStringToBytes("300"));
-    Assert.assertEquals(307200, SolrConfig.convertHeapOptionStyleConfigStringToBytes("300k"));
-    Assert.assertEquals(307200, SolrConfig.convertHeapOptionStyleConfigStringToBytes("300K"));
-    Assert.assertEquals(314572800, SolrConfig.convertHeapOptionStyleConfigStringToBytes("300m"));
-    Assert.assertEquals(314572800, SolrConfig.convertHeapOptionStyleConfigStringToBytes("300M"));
-    Assert.assertEquals(
-        322122547200L, SolrConfig.convertHeapOptionStyleConfigStringToBytes("300g"));
-    Assert.assertEquals(
-        322122547200L, SolrConfig.convertHeapOptionStyleConfigStringToBytes("300G"));
-    Assert.assertEquals(-1, SolrConfig.convertHeapOptionStyleConfigStringToBytes(""));
+    assertEquals(300, SolrConfig.convertHeapOptionStyleConfigStringToBytes("300"));
+    assertEquals(307200, SolrConfig.convertHeapOptionStyleConfigStringToBytes("300k"));
+    assertEquals(307200, SolrConfig.convertHeapOptionStyleConfigStringToBytes("300K"));
+    assertEquals(314572800, SolrConfig.convertHeapOptionStyleConfigStringToBytes("300m"));
+    assertEquals(314572800, SolrConfig.convertHeapOptionStyleConfigStringToBytes("300M"));
+    assertEquals(322122547200L, SolrConfig.convertHeapOptionStyleConfigStringToBytes("300g"));
+    assertEquals(322122547200L, SolrConfig.convertHeapOptionStyleConfigStringToBytes("300G"));
+    assertEquals(-1, SolrConfig.convertHeapOptionStyleConfigStringToBytes(""));
 
     // Invalid values
     RuntimeException thrown =
@@ -256,9 +253,9 @@ public class TestConfig extends SolrTestCaseJ4 {
   public void testMaxSizeSettingWithoutAutoCommit() throws Exception {
     SolrConfig solrConfig =
         new SolrConfig(TEST_PATH().resolve("collection1"), "bad-solrconfig-no-autocommit-tag.xml");
-    Assert.assertEquals(-1, solrConfig.getUpdateHandlerInfo().autoCommitMaxSizeBytes);
-    Assert.assertEquals(-1, solrConfig.getUpdateHandlerInfo().autoCommmitMaxDocs);
-    Assert.assertEquals(-1, solrConfig.getUpdateHandlerInfo().autoCommmitMaxTime);
+    assertEquals(-1, solrConfig.getUpdateHandlerInfo().autoCommitMaxSizeBytes);
+    assertEquals(-1, solrConfig.getUpdateHandlerInfo().autoCommmitMaxDocs);
+    assertEquals(-1, solrConfig.getUpdateHandlerInfo().autoCommmitMaxTime);
   }
 
   // sanity check that sys properties are working as expected
diff --git a/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java b/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java
index d27bff8fbd8..1fde25d409c 100644
--- a/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java
+++ b/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java
@@ -51,7 +51,6 @@ import org.apache.solr.servlet.SolrDispatchFilter;
 import org.apache.solr.util.ModuleUtils;
 import org.hamcrest.MatcherAssert;
 import org.junit.AfterClass;
-import org.junit.Assert;
 import org.junit.Assume;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -455,7 +454,7 @@ public class TestCoreContainer extends SolrTestCaseJ4 {
         SolrDispatchFilter.SOLR_INSTALL_DIR_ATTRIBUTE, tmpRoot.toAbsolutePath().toString());
     final CoreContainer cc1 = init(tmpRoot, "<solr></solr>");
     try {
-      Assert.assertThrows(
+      assertThrows(
           SolrResourceNotFoundException.class,
           () -> cc1.loader.openResource("moduleLibFile").close());
     } finally {
@@ -471,7 +470,7 @@ public class TestCoreContainer extends SolrTestCaseJ4 {
     }
 
     SolrException ex =
-        Assert.assertThrows(
+        assertThrows(
             SolrException.class,
             () -> init(tmpRoot, "<solr><str name=\"modules\">nope</str></solr>"));
     assertEquals("No module with name nope", ex.getMessage());
diff --git a/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java b/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java
index 971928978c0..5aa4ef6cc96 100644
--- a/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java
+++ b/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java
@@ -129,13 +129,15 @@ public class TestCoreDiscovery extends SolrTestCaseJ4 {
 
     long status = container.getStatus();
 
-    assertTrue("Load complete flag should be set", (status & LOAD_COMPLETE) == LOAD_COMPLETE);
-    assertTrue(
+    assertEquals("Load complete flag should be set", LOAD_COMPLETE, (status & LOAD_COMPLETE));
+    assertEquals(
         "Core discovery should be complete",
-        (status & CORE_DISCOVERY_COMPLETE) == CORE_DISCOVERY_COMPLETE);
-    assertTrue(
+        CORE_DISCOVERY_COMPLETE,
+        (status & CORE_DISCOVERY_COMPLETE));
+    assertEquals(
         "Initial core loading should be complete",
-        (status & INITIAL_CORE_LOAD_COMPLETE) == INITIAL_CORE_LOAD_COMPLETE);
+        INITIAL_CORE_LOAD_COMPLETE,
+        (status & INITIAL_CORE_LOAD_COMPLETE));
     return container;
   }
 
diff --git a/solr/core/src/test/org/apache/solr/core/TestCorePropertiesReload.java b/solr/core/src/test/org/apache/solr/core/TestCorePropertiesReload.java
index af838144fb7..c2fe57d39ac 100644
--- a/solr/core/src/test/org/apache/solr/core/TestCorePropertiesReload.java
+++ b/solr/core/src/test/org/apache/solr/core/TestCorePropertiesReload.java
@@ -45,7 +45,7 @@ public class TestCorePropertiesReload extends SolrTestCaseJ4 {
     SolrCore core = h.getCore();
     CoreDescriptor coreDescriptor = core.getCoreDescriptor();
     String testProp = coreDescriptor.getCoreProperty("test", null);
-    assertTrue(testProp.equals("Before reload"));
+    assertEquals("Before reload", testProp);
 
     // Re-write the properties file
     Properties props = new Properties();
@@ -57,7 +57,7 @@ public class TestCorePropertiesReload extends SolrTestCaseJ4 {
     coreDescriptor = core.getCoreDescriptor();
 
     testProp = coreDescriptor.getCoreProperty("test", null);
-    assertTrue(testProp.equals("After reload"));
+    assertEquals("After reload", testProp);
   }
 
   private void writeProperties(Properties props) throws Exception {
diff --git a/solr/core/src/test/org/apache/solr/core/TestMergePolicyConfig.java b/solr/core/src/test/org/apache/solr/core/TestMergePolicyConfig.java
index ab5acbda0db..126c2219134 100644
--- a/solr/core/src/test/org/apache/solr/core/TestMergePolicyConfig.java
+++ b/solr/core/src/test/org/apache/solr/core/TestMergePolicyConfig.java
@@ -69,7 +69,7 @@ public class TestMergePolicyConfig extends SolrTestCaseJ4 {
   public void testDefaultMergePolicyConfig() throws Exception {
     initCore("solrconfig-mergepolicy-defaults.xml", "schema-minimal.xml");
     IndexWriterConfig iwc = solrConfig.indexConfig.toIndexWriterConfig(h.getCore());
-    assertEquals(false, iwc.getUseCompoundFile());
+    assertFalse(iwc.getUseCompoundFile());
 
     TieredMergePolicy tieredMP = assertAndCast(TieredMergePolicy.class, iwc.getMergePolicy());
     assertEquals(TieredMergePolicy.DEFAULT_NO_CFS_RATIO, tieredMP.getNoCFSRatio(), 0.0D);
diff --git a/solr/core/src/test/org/apache/solr/core/TestQuerySenderListener.java b/solr/core/src/test/org/apache/solr/core/TestQuerySenderListener.java
index a37ce82f4a5..c61e0d2f0e5 100644
--- a/solr/core/src/test/org/apache/solr/core/TestQuerySenderListener.java
+++ b/solr/core/src/test/org/apache/solr/core/TestQuerySenderListener.java
@@ -78,9 +78,10 @@ public class TestQuerySenderListener extends SolrTestCaseJ4 {
               {
                 String evt = mock.req.getParams().get(EventParams.EVENT);
                 assertNotNull("Event is null", evt);
-                assertTrue(
+                assertEquals(
                     evt + " is not equal to " + EventParams.FIRST_SEARCHER,
-                    evt.equals(EventParams.FIRST_SEARCHER) == true);
+                    EventParams.FIRST_SEARCHER,
+                    evt);
 
                 assertU(adoc("id", "1"));
                 assertU(commit());
@@ -91,9 +92,10 @@ public class TestQuerySenderListener extends SolrTestCaseJ4 {
                       newSearcher -> {
                         String evt = mock.req.getParams().get(EventParams.EVENT);
                         assertNotNull("Event is null", evt);
-                        assertTrue(
+                        assertEquals(
                             evt + " is not equal to " + EventParams.NEW_SEARCHER,
-                            evt.equals(EventParams.NEW_SEARCHER) == true);
+                            EventParams.NEW_SEARCHER,
+                            evt);
                         return null;
                       });
 
diff --git a/solr/core/src/test/org/apache/solr/core/TestSolrDeletionPolicy1.java b/solr/core/src/test/org/apache/solr/core/TestSolrDeletionPolicy1.java
index 47a0ad3a6ba..75efcb3b508 100644
--- a/solr/core/src/test/org/apache/solr/core/TestSolrDeletionPolicy1.java
+++ b/solr/core/src/test/org/apache/solr/core/TestSolrDeletionPolicy1.java
@@ -109,6 +109,6 @@ public class TestSolrDeletionPolicy1 extends SolrTestCaseJ4 {
     assertQ("return all docs", req("id:[0 TO 6]"), "*[count(//doc)=6]");
 
     commits = delPolicy.getCommits();
-    assertTrue(!commits.containsKey(ic.getGeneration()));
+    assertFalse(commits.containsKey(ic.getGeneration()));
   }
 }
diff --git a/solr/core/src/test/org/apache/solr/core/TestSolrDeletionPolicy2.java b/solr/core/src/test/org/apache/solr/core/TestSolrDeletionPolicy2.java
index b072721c8e4..74a2301d07b 100644
--- a/solr/core/src/test/org/apache/solr/core/TestSolrDeletionPolicy2.java
+++ b/solr/core/src/test/org/apache/solr/core/TestSolrDeletionPolicy2.java
@@ -35,19 +35,18 @@ public class TestSolrDeletionPolicy2 extends SolrTestCaseJ4 {
 
     FakeDeletionPolicy f = (FakeDeletionPolicy) delPolicy.getWrappedDeletionPolicy();
 
-    assertTrue("value1".equals(f.getVar1()));
-    assertTrue("value2".equals(f.getVar2()));
+    assertEquals("value1", f.getVar1());
+    assertEquals("value2", f.getVar2());
 
     assertU(adoc("id", String.valueOf(1), "name", "name" + String.valueOf(1)));
 
-    assertTrue(
-        System.getProperty("onInit").equals("test.org.apache.solr.core.FakeDeletionPolicy.onInit"));
+    assertEquals(
+        "test.org.apache.solr.core.FakeDeletionPolicy.onInit", System.getProperty("onInit"));
     assertU(commit());
     assertQ("return all docs", req("id:[0 TO 1]"), "*[count(//doc)=1]");
 
-    assertTrue(
-        System.getProperty("onCommit")
-            .equals("test.org.apache.solr.core.FakeDeletionPolicy.onCommit"));
+    assertEquals(
+        "test.org.apache.solr.core.FakeDeletionPolicy.onCommit", System.getProperty("onCommit"));
 
     System.clearProperty("onInit");
     System.clearProperty("onCommit");
diff --git a/solr/core/src/test/org/apache/solr/core/backup/BackupFilePathsTest.java b/solr/core/src/test/org/apache/solr/core/backup/BackupFilePathsTest.java
index 06dde0c0eb9..8b382ac7a4e 100644
--- a/solr/core/src/test/org/apache/solr/core/backup/BackupFilePathsTest.java
+++ b/solr/core/src/test/org/apache/solr/core/backup/BackupFilePathsTest.java
@@ -16,16 +16,13 @@
  */
 package org.apache.solr.core.backup;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
 import java.util.List;
 import java.util.Optional;
+import org.apache.solr.SolrTestCase;
 import org.junit.Test;
 
 /** Unit tests for {@link BackupFilePaths} */
-public class BackupFilePathsTest {
+public class BackupFilePathsTest extends SolrTestCase {
 
   @Test
   public void testGetBackupPropsName() {
diff --git a/solr/core/src/test/org/apache/solr/core/snapshots/TestSolrCoreSnapshots.java b/solr/core/src/test/org/apache/solr/core/snapshots/TestSolrCoreSnapshots.java
index 93d74aecfbd..ed4788f63c3 100644
--- a/solr/core/src/test/org/apache/solr/core/snapshots/TestSolrCoreSnapshots.java
+++ b/solr/core/src/test/org/apache/solr/core/snapshots/TestSolrCoreSnapshots.java
@@ -276,7 +276,7 @@ public class TestSolrCoreSnapshots extends SolrCloudTestCase {
       // Verify that the index directory contains only 1 index commit (which is not the same as the
       // snapshotted commit).
       Collection<IndexCommit> commits = listCommits(metaData.getIndexDirPath());
-      assertTrue(commits.size() == 1);
+      assertEquals(1, commits.size());
       assertFalse(
           commits.stream()
               .filter(x -> x.getGeneration() == metaData.getGenerationNumber())
diff --git a/solr/core/src/test/org/apache/solr/handler/BinaryUpdateRequestHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/BinaryUpdateRequestHandlerTest.java
index 1e74ce58842..11bcd7cf96f 100644
--- a/solr/core/src/test/org/apache/solr/handler/BinaryUpdateRequestHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/BinaryUpdateRequestHandlerTest.java
@@ -64,7 +64,7 @@ public class BinaryUpdateRequestHandlerTest extends SolrTestCaseJ4 {
       csl.load(req, rsp, cs, p);
       AddUpdateCommand add = p.addCommands.get(0);
       System.out.println(add.solrDoc);
-      assertEquals(false, add.overwrite);
+      assertFalse(add.overwrite);
       assertEquals(100, add.commitWithin);
     }
   }
diff --git a/solr/core/src/test/org/apache/solr/handler/FieldAnalysisRequestHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/FieldAnalysisRequestHandlerTest.java
index 45f19dae200..b6f8cbd1f34 100644
--- a/solr/core/src/test/org/apache/solr/handler/FieldAnalysisRequestHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/FieldAnalysisRequestHandlerTest.java
@@ -192,7 +192,7 @@ public class FieldAnalysisRequestHandlerTest extends AnalysisRequestHandlerTestB
     @SuppressWarnings({"rawtypes"})
     NamedList<NamedList> result =
         handler.handleAnalysisRequest(request, h.getCore().getLatestSchema());
-    assertTrue("result is null and it shouldn't be", result != null);
+    assertNotNull("result is null and it shouldn't be", result);
 
     @SuppressWarnings({"rawtypes"})
     NamedList<NamedList> fieldTypes = result.get("field_types");
@@ -521,7 +521,7 @@ public class FieldAnalysisRequestHandlerTest extends AnalysisRequestHandlerTestB
     @SuppressWarnings({"rawtypes"})
     NamedList<NamedList> result =
         handler.handleAnalysisRequest(request, h.getCore().getLatestSchema());
-    assertTrue("result is null and it shouldn't be", result != null);
+    assertNotNull("result is null and it shouldn't be", result);
 
     @SuppressWarnings({"unchecked", "rawtypes"})
     NamedList<NamedList> fieldTypes = result.get("field_types");
@@ -561,7 +561,7 @@ public class FieldAnalysisRequestHandlerTest extends AnalysisRequestHandlerTestB
     @SuppressWarnings({"rawtypes"})
     NamedList<NamedList> result =
         handler.handleAnalysisRequest(request, h.getCore().getLatestSchema());
-    assertTrue("result is null and it shouldn't be", result != null);
+    assertNotNull("result is null and it shouldn't be", result);
 
     @SuppressWarnings({"unchecked", "rawtypes"})
     NamedList<NamedList> fieldTypes = result.get("field_types");
@@ -645,7 +645,7 @@ public class FieldAnalysisRequestHandlerTest extends AnalysisRequestHandlerTestB
     @SuppressWarnings({"rawtypes"})
     NamedList<NamedList> result =
         handler.handleAnalysisRequest(request, h.getCore().getLatestSchema());
-    assertTrue("result is null and it shouldn't be", result != null);
+    assertNotNull("result is null and it shouldn't be", result);
 
     @SuppressWarnings({"rawtypes"})
     NamedList<NamedList> fieldTypes = result.get("field_types");
diff --git a/solr/core/src/test/org/apache/solr/handler/JsonLoaderTest.java b/solr/core/src/test/org/apache/solr/handler/JsonLoaderTest.java
index ca4067c6ebe..cba62c4fd54 100644
--- a/solr/core/src/test/org/apache/solr/handler/JsonLoaderTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/JsonLoaderTest.java
@@ -467,7 +467,7 @@ public class JsonLoaderTest extends SolrTestCaseJ4 {
 
     AddUpdateCommand add = p.addCommands.get(0);
     assertEquals(add.commitWithin, -1);
-    assertEquals(add.overwrite, true);
+    assertTrue(add.overwrite);
     assertEquals("SolrInputDocument(fields: [id=1, val_s={add=foo}])", add.solrDoc.toString());
 
     req.close();
@@ -706,47 +706,47 @@ public class JsonLoaderTest extends SolrTestCaseJ4 {
     assertEquals(9, p.deleteCommands.size());
     DeleteUpdateCommand delete = p.deleteCommands.get(0);
     assertEquals(delete.id, "10");
-    assertEquals(delete.query, null);
+    assertNull(delete.query);
     assertEquals(delete.commitWithin, -1);
 
     delete = p.deleteCommands.get(1);
     assertEquals(delete.id, "20");
-    assertEquals(delete.query, null);
+    assertNull(delete.query);
     assertEquals(delete.commitWithin, -1);
 
     delete = p.deleteCommands.get(2);
     assertEquals(delete.id, "30");
-    assertEquals(delete.query, null);
+    assertNull(delete.query);
     assertEquals(delete.commitWithin, -1);
 
     delete = p.deleteCommands.get(3);
     assertEquals(delete.id, "40");
-    assertEquals(delete.query, null);
+    assertNull(delete.query);
     assertEquals(delete.commitWithin, -1);
 
     delete = p.deleteCommands.get(4);
     assertEquals(delete.id, "50");
-    assertEquals(delete.query, null);
+    assertNull(delete.query);
     assertEquals(delete.getVersion(), 12345L);
 
     delete = p.deleteCommands.get(5);
     assertEquals(delete.id, "60");
-    assertEquals(delete.query, null);
+    assertNull(delete.query);
     assertEquals(delete.getVersion(), 67890L);
 
     delete = p.deleteCommands.get(6);
     assertEquals(delete.id, "70");
-    assertEquals(delete.query, null);
+    assertNull(delete.query);
     assertEquals(delete.getVersion(), 77777L);
 
     delete = p.deleteCommands.get(7);
-    assertEquals(delete.id, null);
+    assertNull(delete.id);
     assertEquals(delete.query, "id:80");
     assertEquals(delete.getVersion(), 88888L);
 
     delete = p.deleteCommands.get(8);
     assertEquals(delete.id, "90");
-    assertEquals(delete.query, null);
+    assertNull(delete.query);
     assertEquals(delete.getRoute(), "shard1");
     assertEquals(delete.getVersion(), 88888L);
 
@@ -815,7 +815,7 @@ public class JsonLoaderTest extends SolrTestCaseJ4 {
   @Test
   public void testChildDocWithoutId() throws Exception {
     final String json = DUP_KEYS_ANON_CHILD_DOCS_JSON.replace("\"id\": \"3\",\n", "");
-    assert !json.equals(DUP_KEYS_ANON_CHILD_DOCS_JSON);
+    assertFalse(json.equals(DUP_KEYS_ANON_CHILD_DOCS_JSON));
     checkTwoAnonymousChildDocs(json, false);
   }
 
diff --git a/solr/core/src/test/org/apache/solr/handler/PingRequestHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/PingRequestHandlerTest.java
index 29b085c6049..a904a438ba4 100644
--- a/solr/core/src/test/org/apache/solr/handler/PingRequestHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/PingRequestHandlerTest.java
@@ -87,7 +87,7 @@ public class PingRequestHandlerTest extends SolrTestCaseJ4 {
 
   public void testEnablingServer() throws Exception {
 
-    assertTrue(!healthcheckFile.exists());
+    assertFalse(healthcheckFile.exists());
 
     // first make sure that ping responds back that the service is disabled
     SolrQueryResponse sqr = makeRequest(handler, req());
@@ -116,7 +116,7 @@ public class PingRequestHandlerTest extends SolrTestCaseJ4 {
 
   public void testDisablingServer() throws Exception {
 
-    assertTrue(!healthcheckFile.exists());
+    assertFalse(healthcheckFile.exists());
 
     healthcheckFile.createNewFile();
 
diff --git a/solr/core/src/test/org/apache/solr/handler/ReplicationTestHelper.java b/solr/core/src/test/org/apache/solr/handler/ReplicationTestHelper.java
index a6523454389..ab4743f189a 100644
--- a/solr/core/src/test/org/apache/solr/handler/ReplicationTestHelper.java
+++ b/solr/core/src/test/org/apache/solr/handler/ReplicationTestHelper.java
@@ -16,9 +16,6 @@
  */
 package org.apache.solr.handler;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileInputStream;
@@ -111,7 +108,7 @@ public final class ReplicationTestHelper {
     Long maxVersionClient2 = getVersion(client2);
 
     if (maxVersionClient1 > 0 && maxVersionClient2 > 0) {
-      assertEquals(maxVersionClient1, maxVersionClient2);
+      SolrTestCaseJ4.assertEquals(maxVersionClient1, maxVersionClient2);
     }
 
     // check vs /replication?command=indexversion call
@@ -123,13 +120,13 @@ public final class ReplicationTestHelper {
     NamedList<Object> resp = client1.request(req);
     assertReplicationResponseSucceeded(resp);
     Long version = (Long) resp.get("indexversion");
-    assertEquals(maxVersionClient1, version);
+    SolrTestCaseJ4.assertEquals(maxVersionClient1, version);
 
     // check vs /replication?command=indexversion call
     resp = client2.request(req);
     assertReplicationResponseSucceeded(resp);
     version = (Long) resp.get("indexversion");
-    assertEquals(maxVersionClient2, version);
+    SolrTestCaseJ4.assertEquals(maxVersionClient2, version);
   }
 
   @SuppressWarnings({"unchecked"})
@@ -202,15 +199,16 @@ public final class ReplicationTestHelper {
     @SuppressWarnings("unchecked")
     NamedList<Object> details = (NamedList<Object>) res.get("details");
 
-    assertNotNull("null details", details);
+    SolrTestCaseJ4.assertNotNull("null details", details);
 
     return details;
   }
 
   public static void assertReplicationResponseSucceeded(NamedList<?> response) {
-    assertNotNull("null response from server", response);
-    assertNotNull("Expected replication response to have 'status' field", response.get("status"));
-    assertEquals("OK", response.get("status"));
+    SolrTestCaseJ4.assertNotNull("null response from server", response);
+    SolrTestCaseJ4.assertNotNull(
+        "Expected replication response to have 'status' field", response.get("status"));
+    SolrTestCaseJ4.assertEquals("OK", response.get("status"));
   }
 
   public static void pullFromTo(String srcUrl, String destUrl) throws IOException {
diff --git a/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java b/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
index 4a894b25052..ccb342ee316 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
@@ -877,7 +877,7 @@ public class TestReplicationHandler extends SolrTestCaseJ4 {
     // compare results
     String cmp =
         BaseDistributedSearchTestCase.compare(leaderQueryResult, followerQueryResult, 0, null);
-    assertEquals(null, cmp);
+    assertNull(cmp);
 
     // index fetch from the follower to the leader
 
@@ -896,7 +896,7 @@ public class TestReplicationHandler extends SolrTestCaseJ4 {
     leaderQueryRsp = rQuery(nDocs + 3, "*:*", leaderClient);
     leaderQueryResult = (SolrDocumentList) leaderQueryRsp.get("response");
     cmp = BaseDistributedSearchTestCase.compare(leaderQueryResult, followerQueryResult, 0, null);
-    assertEquals(null, cmp);
+    assertNull(cmp);
 
     assertVersions(leaderClient, followerClient);
 
@@ -910,7 +910,7 @@ public class TestReplicationHandler extends SolrTestCaseJ4 {
     leaderQueryRsp = rQuery(nDocs + 3, "*:*", leaderClient);
     leaderQueryResult = (SolrDocumentList) leaderQueryRsp.get("response");
     cmp = BaseDistributedSearchTestCase.compare(leaderQueryResult, followerQueryResult, 0, null);
-    assertEquals(null, cmp);
+    assertNull(cmp);
 
     assertVersions(leaderClient, followerClient);
 
@@ -932,7 +932,7 @@ public class TestReplicationHandler extends SolrTestCaseJ4 {
     leaderQueryRsp = rQuery(nDocs + 3, "*:*", leaderClient);
     leaderQueryResult = (SolrDocumentList) leaderQueryRsp.get("response");
     cmp = BaseDistributedSearchTestCase.compare(leaderQueryResult, followerQueryResult, 0, null);
-    assertEquals(null, cmp);
+    assertNull(cmp);
 
     assertVersions(leaderClient, followerClient);
     pullFromTo(followerJetty, leaderJetty);
@@ -945,7 +945,7 @@ public class TestReplicationHandler extends SolrTestCaseJ4 {
     leaderQueryRsp = rQuery(nDocs + 3, "*:*", leaderClient);
     leaderQueryResult = (SolrDocumentList) leaderQueryRsp.get("response");
     cmp = BaseDistributedSearchTestCase.compare(leaderQueryResult, followerQueryResult, 0, null);
-    assertEquals(null, cmp);
+    assertNull(cmp);
 
     assertVersions(leaderClient, followerClient);
 
@@ -1031,7 +1031,7 @@ public class TestReplicationHandler extends SolrTestCaseJ4 {
         // compare results
         String cmp =
             BaseDistributedSearchTestCase.compare(leaderQueryResult, followerQueryResult, 0, null);
-        assertEquals(null, cmp);
+        assertNull(cmp);
 
         assertVersions(leaderClient, followerClient);
 
@@ -1080,7 +1080,7 @@ public class TestReplicationHandler extends SolrTestCaseJ4 {
               livePaths.toString() + ":" + livePaths.size(),
               3 == livePaths.size() || 4 == livePaths.size());
         } else {
-          assertTrue(livePaths.toString() + ":" + livePaths.size(), 3 == livePaths.size());
+          assertEquals(livePaths.toString() + ":" + livePaths.size(), 3, livePaths.size());
         }
 
         // :TODO: assert that one of the paths is a subpath of hte other
@@ -1093,7 +1093,7 @@ public class TestReplicationHandler extends SolrTestCaseJ4 {
         if (afterReload) {
           assertTrue("found:" + cnt + Arrays.asList(new File(ddir).list()), 1 == cnt || 2 == cnt);
         } else {
-          assertTrue("found:" + cnt + Arrays.asList(new File(ddir).list()), 1 == cnt);
+          assertEquals("found:" + cnt + Arrays.asList(new File(ddir).list()), 1, cnt);
         }
       }
     }
@@ -1239,7 +1239,7 @@ public class TestReplicationHandler extends SolrTestCaseJ4 {
     // compare results
     String cmp =
         BaseDistributedSearchTestCase.compare(leaderQueryResult, followerQueryResult, 0, null);
-    assertEquals(null, cmp);
+    assertNull(cmp);
   }
 
   @Test
@@ -1298,7 +1298,7 @@ public class TestReplicationHandler extends SolrTestCaseJ4 {
       // compare results
       String cmp =
           BaseDistributedSearchTestCase.compare(leaderQueryResult, followerQueryResult, 0, null);
-      assertEquals(null, cmp);
+      assertNull(cmp);
 
     } finally {
       resetFactory();
@@ -1348,7 +1348,7 @@ public class TestReplicationHandler extends SolrTestCaseJ4 {
     // compare results
     String cmp =
         BaseDistributedSearchTestCase.compare(leaderQueryResult, followerQueryResult, 0, null);
-    assertEquals(null, cmp);
+    assertNull(cmp);
 
     Object version = getIndexVersion(leaderClient).get("indexversion");
 
@@ -1394,7 +1394,7 @@ public class TestReplicationHandler extends SolrTestCaseJ4 {
     // compare results
     String cmp =
         BaseDistributedSearchTestCase.compare(leaderQueryResult, followerQueryResult, 0, null);
-    assertEquals(null, cmp);
+    assertNull(cmp);
 
     // start config files replication test
     // clear leader index
diff --git a/solr/core/src/test/org/apache/solr/handler/TestSampleDocumentsLoader.java b/solr/core/src/test/org/apache/solr/handler/TestSampleDocumentsLoader.java
index bfb3d3960a9..6ecb27c7f02 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestSampleDocumentsLoader.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestSampleDocumentsLoader.java
@@ -17,15 +17,10 @@
 
 package org.apache.solr.handler;
 
-import static org.apache.solr.handler.designer.DefaultSampleDocumentsLoader.CSV_MULTI_VALUE_DELIM_PARAM;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
 import java.io.File;
 import java.io.IOException;
 import java.util.List;
+import org.apache.solr.SolrTestCase;
 import org.apache.solr.common.SolrInputDocument;
 import org.apache.solr.common.SolrInputField;
 import org.apache.solr.common.params.ModifiableSolrParams;
@@ -40,7 +35,7 @@ import org.apache.solr.util.ExternalPaths;
 import org.junit.Before;
 import org.junit.Test;
 
-public class TestSampleDocumentsLoader {
+public class TestSampleDocumentsLoader extends SolrTestCase {
 
   SampleDocumentsLoader loader;
   File exampleDir;
@@ -63,7 +58,7 @@ public class TestSampleDocumentsLoader {
   @Test
   public void testCsv() throws Exception {
     ModifiableSolrParams params = new ModifiableSolrParams();
-    params.set(CSV_MULTI_VALUE_DELIM_PARAM, "\\|");
+    params.set(DefaultSampleDocumentsLoader.CSV_MULTI_VALUE_DELIM_PARAM, "\\|");
     List<SolrInputDocument> docs =
         loadTestDocs(params, new File(exampleDir, "films/films.csv"), -1, 1100);
     boolean foundIt = false;
diff --git a/solr/core/src/test/org/apache/solr/handler/TestStressThreadBackup.java b/solr/core/src/test/org/apache/solr/handler/TestStressThreadBackup.java
index b01e3ecec66..ac560e6863a 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestStressThreadBackup.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestStressThreadBackup.java
@@ -243,8 +243,6 @@ public class TestStressThreadBackup extends SolrCloudTestCase {
         // and how few iterations we have left
         if (3 < namedSnapshots.size()
             && random().nextInt(3 + numBackupIters - i) < random().nextInt(namedSnapshots.size())) {
-
-          assert 0 < namedSnapshots.size() : "Something broke the conditional";
           final String snapshotName = namedSnapshots.poll();
           final String backupName = "backup_as_of_" + snapshotName;
           log.info("Creating {} from {} in iter={}", backupName, snapshotName, i);
diff --git a/solr/core/src/test/org/apache/solr/handler/V2ClusterAPIMappingTest.java b/solr/core/src/test/org/apache/solr/handler/V2ClusterAPIMappingTest.java
index c405a0551c8..9eb5bb845bd 100644
--- a/solr/core/src/test/org/apache/solr/handler/V2ClusterAPIMappingTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/V2ClusterAPIMappingTest.java
@@ -17,11 +17,9 @@
 
 package org.apache.solr.handler;
 
-import static org.apache.solr.SolrTestCaseJ4.assumeWorkingMockito;
 import static org.apache.solr.cloud.api.collections.CollectionHandlingUtils.REQUESTID;
 import static org.apache.solr.common.params.CommonParams.ACTION;
 import static org.apache.solr.common.params.CommonParams.NAME;
-import static org.junit.Assert.assertEquals;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
@@ -31,6 +29,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.api.Api;
 import org.apache.solr.api.ApiBag;
 import org.apache.solr.common.params.CollectionParams;
@@ -49,7 +48,7 @@ import org.junit.Test;
 import org.mockito.ArgumentCaptor;
 
 /** Unit tests for the v2 to v1 API mappings found in {@link ClusterAPI} */
-public class V2ClusterAPIMappingTest {
+public class V2ClusterAPIMappingTest extends SolrTestCaseJ4 {
   private ApiBag apiBag;
   private ArgumentCaptor<SolrQueryRequest> queryRequestCaptor;
   private CollectionsHandler mockCollectionsHandler;
diff --git a/solr/core/src/test/org/apache/solr/handler/V2UpdateAPIMappingTest.java b/solr/core/src/test/org/apache/solr/handler/V2UpdateAPIMappingTest.java
index 2c8d11fed48..ae4b31c9d9d 100644
--- a/solr/core/src/test/org/apache/solr/handler/V2UpdateAPIMappingTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/V2UpdateAPIMappingTest.java
@@ -17,9 +17,7 @@
 
 package org.apache.solr.handler;
 
-import static org.apache.solr.SolrTestCaseJ4.assumeWorkingMockito;
 import static org.apache.solr.common.params.CommonParams.PATH;
-import static org.junit.Assert.assertEquals;
 import static org.mockito.Mockito.mock;
 
 import com.google.common.collect.Maps;
@@ -27,6 +25,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.api.Api;
 import org.apache.solr.api.ApiBag;
 import org.apache.solr.common.util.CommandOperation;
@@ -39,7 +38,7 @@ import org.junit.BeforeClass;
 import org.junit.Test;
 
 /** Unit tests for the v2 to v1 mapping logic in {@link UpdateAPI} */
-public class V2UpdateAPIMappingTest {
+public class V2UpdateAPIMappingTest extends SolrTestCaseJ4 {
   private ApiBag apiBag;
   private UpdateRequestHandler mockUpdateHandler;
 
diff --git a/solr/core/src/test/org/apache/solr/handler/XmlUpdateRequestHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/XmlUpdateRequestHandlerTest.java
index 2297a3f6618..da3adaa75b3 100644
--- a/solr/core/src/test/org/apache/solr/handler/XmlUpdateRequestHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/XmlUpdateRequestHandlerTest.java
@@ -99,7 +99,7 @@ public class XmlUpdateRequestHandlerTest extends SolrTestCaseJ4 {
 
     AddUpdateCommand add = p.addCommands.get(0);
     assertEquals(100, add.commitWithin);
-    assertEquals(false, add.overwrite);
+    assertFalse(add.overwrite);
     req.close();
   }
 
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java
index 870c603113b..8b2461b5c98 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java
@@ -257,7 +257,7 @@ public class LukeRequestHandlerTest extends SolrTestCaseJ4 {
             field("title") + "/arr[@name='copyDests']/str[.='title_stemmed']",
             dynfield("bar_copydest_*") + "/arr[@name='copySources']/str[.='foo_copysource_*']",
             dynfield("foo_copysource_*") + "/arr[@name='copyDests']/str[.='bar_copydest_*']");
-    assertEquals(xml, null, r);
+    assertNull(xml, r);
   }
 
   public void testCatchAllCopyField() throws Exception {
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/MetricsHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/admin/MetricsHandlerTest.java
index 53145352b1a..dd4eeb2d73e 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/MetricsHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/MetricsHandlerTest.java
@@ -736,15 +736,13 @@ public class MetricsHandlerTest extends SolrTestCaseJ4 {
             "solr.core.collection1:QUERY./dumphandler.dumphandlergauge"),
         resp);
 
-    assertEquals(
-        null,
+    assertNull(
         resp.getValues()
             ._getStr(
                 Arrays.asList(
                     "metrics", "solr.core.collection1:QUERY./dumphandler.dumphandlergauge", "d_k1"),
                 null));
-    assertEquals(
-        null,
+    assertNull(
         resp.getValues()
             ._getStr(
                 Arrays.asList(
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/SecurityConfHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/admin/SecurityConfHandlerTest.java
index a35c8120953..c9335b2a7b6 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/SecurityConfHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/SecurityConfHandlerTest.java
@@ -153,7 +153,7 @@ public class SecurityConfHandlerTest extends SolrTestCaseJ4 {
     assertEquals(1, permissions.size());
 
     for (Map permission : permissions) {
-      assertFalse("some-permission".equals(permission.get("name")));
+      assertNotEquals("some-permission", permission.get("name"));
     }
     // -ve test security edit is a well-known permission, only role attribute should be provided
     command =
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/SolrEnvironmentTest.java b/solr/core/src/test/org/apache/solr/handler/admin/SolrEnvironmentTest.java
index a5668bb4518..bfc02ba34a6 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/SolrEnvironmentTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/SolrEnvironmentTest.java
@@ -17,13 +17,11 @@
 
 package org.apache.solr.handler.admin;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-
+import org.apache.solr.SolrTestCase;
 import org.apache.solr.common.SolrException;
 import org.junit.Test;
 
-public class SolrEnvironmentTest {
+public class SolrEnvironmentTest extends SolrTestCase {
 
   @Test(expected = SolrException.class)
   public void parseWrongKey() {
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/ThreadDumpHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/admin/ThreadDumpHandlerTest.java
index 93250636f38..962092db5fc 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/ThreadDumpHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/ThreadDumpHandlerTest.java
@@ -117,7 +117,7 @@ public class ThreadDumpHandlerTest extends SolrTestCaseJ4 {
             // (which *MAY* also be waiting on doneWithTestLatch, but may not have reached that line
             // yet)
             NamedList<?> monitorOwnerThreadInfo = getThreadInfo(rsp, "test-thread-monitor-owner");
-            assert monitorOwnerThreadInfo != null;
+            assertNotNull(monitorOwnerThreadInfo);
             assertTrue(
                 "Thread monitor ownerT: ",
                 monitorOwnerThreadInfo
@@ -145,7 +145,7 @@ public class ThreadDumpHandlerTest extends SolrTestCaseJ4 {
                 // same monitor owner 'ownerT'
                 final NamedList<?> monitorOwnerThreadInfo =
                     getThreadInfo(rsp, "test-thread-monitor-owner");
-                assert monitorOwnerThreadInfo != null;
+                assertNotNull(monitorOwnerThreadInfo);
                 assertTrue(
                     "Same thread ownerT: ",
                     monitorOwnerThreadInfo
@@ -155,7 +155,7 @@ public class ThreadDumpHandlerTest extends SolrTestCaseJ4 {
                 // blocked thread 'blockedT', waiting on the monitor
                 final NamedList<?> blockedThreadInfo =
                     getThreadInfo(rsp, "test-thread-monitor-blocked");
-                assert blockedThreadInfo != null;
+                assertNotNull(blockedThreadInfo);
                 assertTrue(
                     "blocked thread blockedT waiting on the monitor: ",
                     blockedThreadInfo._getStr("state", "").contains("BLOCKED")
@@ -245,7 +245,7 @@ public class ThreadDumpHandlerTest extends SolrTestCaseJ4 {
             // yet)
             final NamedList<?> lockOwnerThreadInfo =
                 getThreadInfo(rsp, "test-thread-sync-lock-owner");
-            assert lockOwnerThreadInfo != null;
+            assertNotNull(lockOwnerThreadInfo);
             assertTrue(
                 "Thread lock:",
                 lockOwnerThreadInfo._getStr("synchronizers-locked", "").contains("ReentrantLock"));
@@ -271,7 +271,7 @@ public class ThreadDumpHandlerTest extends SolrTestCaseJ4 {
                 // lock owner 'ownerT'
                 final NamedList<?> lockOwnerThreadInfo =
                     getThreadInfo(rsp, "test-thread-sync-lock-owner");
-                assert lockOwnerThreadInfo != null;
+                assertNotNull(lockOwnerThreadInfo);
                 assertTrue(
                     "Thread locked: ",
                     lockOwnerThreadInfo
@@ -281,7 +281,7 @@ public class ThreadDumpHandlerTest extends SolrTestCaseJ4 {
                 // blocked thread 'blockedT', waiting on the lock
                 final NamedList<?> blockedThreadInfo =
                     getThreadInfo(rsp, "test-thread-sync-lock-blocked");
-                assert blockedThreadInfo != null;
+                assertNotNull(blockedThreadInfo);
                 assertTrue(
                     "Waiting on the lock: ",
                     blockedThreadInfo._getStr("state", "").contains("WAITING")
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/V2ApiMappingTest.java b/solr/core/src/test/org/apache/solr/handler/admin/V2ApiMappingTest.java
index 38f9220344d..1cdbdc9f0fb 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/V2ApiMappingTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/V2ApiMappingTest.java
@@ -206,9 +206,8 @@ public abstract class V2ApiMappingTest<T extends RequestHandlerBase> extends Sol
 
   protected AnnotatedApi assertAnnotatedApiExistsFor(String method, String path) {
     final AnnotatedApi api = getAnnotatedApiFor(method, path);
-    assertTrue(
-        "Expected to find API mapping for [" + method + " " + path + "] but none found!",
-        api != null);
+    assertNotNull(
+        "Expected to find API mapping for [" + method + " " + path + "] but none found!", api);
     return api;
   }
 
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/V2CollectionBackupsAPIMappingTest.java b/solr/core/src/test/org/apache/solr/handler/admin/V2CollectionBackupsAPIMappingTest.java
index 57cb85d95fb..a4ff7d2ebe2 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/V2CollectionBackupsAPIMappingTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/V2CollectionBackupsAPIMappingTest.java
@@ -66,7 +66,7 @@ public class V2CollectionBackupsAPIMappingTest extends V2ApiMappingTest<Collecti
     assertEquals("someRepository", v1Params.get(CoreAdminParams.BACKUP_REPOSITORY));
     assertEquals(123, v1Params.getPrimitiveInt(CoreAdminParams.BACKUP_ID));
     assertEquals(456, v1Params.getPrimitiveInt(CoreAdminParams.MAX_NUM_BACKUP_POINTS));
-    assertEquals(true, v1Params.getPrimitiveBool(CoreAdminParams.BACKUP_PURGE_UNUSED));
+    assertTrue(v1Params.getPrimitiveBool(CoreAdminParams.BACKUP_PURGE_UNUSED));
     assertEquals("requestTrackingId", v1Params.get(CommonAdminParams.ASYNC));
   }
 
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/V2CollectionsAPIMappingTest.java b/solr/core/src/test/org/apache/solr/handler/admin/V2CollectionsAPIMappingTest.java
index bf0b2db17cb..230bf604f73 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/V2CollectionsAPIMappingTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/V2CollectionsAPIMappingTest.java
@@ -104,13 +104,12 @@ public class V2CollectionsAPIMappingTest extends V2ApiMappingTest<CollectionsHan
     assertEquals(
         "localhost:8983_solr,localhost:7574_solr",
         v1Params.get(CollectionAdminParams.CREATE_NODE_SET_PARAM));
-    assertEquals(
-        true, v1Params.getPrimitiveBool(CollectionAdminParams.CREATE_NODE_SET_SHUFFLE_PARAM));
+    assertTrue(v1Params.getPrimitiveBool(CollectionAdminParams.CREATE_NODE_SET_SHUFFLE_PARAM));
     assertEquals("bar", v1Params.get("property.foo"));
     assertEquals("bar2", v1Params.get("property.foo2"));
     assertEquals("requestTrackingId", v1Params.get(CommonAdminParams.ASYNC));
-    assertEquals(false, v1Params.getPrimitiveBool(CommonAdminParams.WAIT_FOR_FINAL_STATE));
-    assertEquals(false, v1Params.getPrimitiveBool(CollectionAdminParams.PER_REPLICA_STATE));
+    assertFalse(v1Params.getPrimitiveBool(CommonAdminParams.WAIT_FOR_FINAL_STATE));
+    assertFalse(v1Params.getPrimitiveBool(CollectionAdminParams.PER_REPLICA_STATE));
     assertEquals(1, v1Params.getPrimitiveInt(CollectionAdminParams.NUM_SHARDS));
   }
 
@@ -239,10 +238,10 @@ public class V2CollectionsAPIMappingTest extends V2ApiMappingTest<CollectionsHan
     assertEquals("collectionName", v1Params.get(BackupManager.COLLECTION_NAME_PROP));
     assertEquals("/some/location/uri", v1Params.get(CoreAdminParams.BACKUP_LOCATION));
     assertEquals("someRepository", v1Params.get(CoreAdminParams.BACKUP_REPOSITORY));
-    assertEquals(true, v1Params.getPrimitiveBool(CollectionAdminParams.FOLLOW_ALIASES));
+    assertTrue(v1Params.getPrimitiveBool(CollectionAdminParams.FOLLOW_ALIASES));
     assertEquals("copy-files", v1Params.get(CollectionAdminParams.INDEX_BACKUP_STRATEGY));
     assertEquals("someSnapshotName", v1Params.get(CoreAdminParams.COMMIT_NAME));
-    assertEquals(true, v1Params.getPrimitiveBool(CoreAdminParams.BACKUP_INCREMENTAL));
+    assertTrue(v1Params.getPrimitiveBool(CoreAdminParams.BACKUP_INCREMENTAL));
     assertEquals("requestTrackingId", v1Params.get(CommonAdminParams.ASYNC));
   }
 
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/V2CoresAPIMappingTest.java b/solr/core/src/test/org/apache/solr/handler/admin/V2CoresAPIMappingTest.java
index fe847b20d89..6c692880ec8 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/V2CoresAPIMappingTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/V2CoresAPIMappingTest.java
@@ -111,8 +111,8 @@ public class V2CoresAPIMappingTest extends V2ApiMappingTest<CoreAdminHandler> {
     assertEquals("some-schema-file-name", v1Params.get(SCHEMA));
     assertEquals("some-config-file-name", v1Params.get(CONFIG));
     assertEquals("someConfigSetName", v1Params.get(CONFIGSET));
-    assertEquals(true, v1Params.getPrimitiveBool(LOAD_ON_STARTUP));
-    assertEquals(true, v1Params.getPrimitiveBool(TRANSIENT));
+    assertTrue(v1Params.getPrimitiveBool(LOAD_ON_STARTUP));
+    assertTrue(v1Params.getPrimitiveBool(TRANSIENT));
     assertEquals("someShardName", v1Params.get(SHARD));
     assertEquals("someCollectionName", v1Params.get(COLLECTION));
     assertEquals("TLOG", v1Params.get(REPLICA_TYPE));
@@ -121,7 +121,7 @@ public class V2CoresAPIMappingTest extends V2ApiMappingTest<CoreAdminHandler> {
     assertEquals("role1,role2", v1Params.get(ROLES));
     assertEquals("val1", v1Params.get("property.prop1"));
     assertEquals("val2", v1Params.get("property.prop2"));
-    assertEquals(true, v1Params.getPrimitiveBool(NEW_COLLECTION));
+    assertTrue(v1Params.getPrimitiveBool(NEW_COLLECTION));
     assertEquals("requestTrackingId", v1Params.get(ASYNC));
   }
 
@@ -133,7 +133,7 @@ public class V2CoresAPIMappingTest extends V2ApiMappingTest<CoreAdminHandler> {
 
     assertEquals(STATUS.name().toLowerCase(Locale.ROOT), v1Params.get(ACTION));
     assertEquals("someCore", v1Params.get(CORE));
-    assertEquals(true, v1Params.getPrimitiveBool(INDEX_INFO));
+    assertTrue(v1Params.getPrimitiveBool(INDEX_INFO));
   }
 
   @Test
@@ -143,6 +143,6 @@ public class V2CoresAPIMappingTest extends V2ApiMappingTest<CoreAdminHandler> {
 
     assertEquals(STATUS.name().toLowerCase(Locale.ROOT), v1Params.get(ACTION));
     assertNull("Expected 'core' parameter to be null", v1Params.get(CORE));
-    assertEquals(true, v1Params.getPrimitiveBool(INDEX_INFO));
+    assertTrue(v1Params.getPrimitiveBool(INDEX_INFO));
   }
 }
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/api/V2CollectionAPIMappingTest.java b/solr/core/src/test/org/apache/solr/handler/admin/api/V2CollectionAPIMappingTest.java
index 7724f530588..e57e6d4829f 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/api/V2CollectionAPIMappingTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/api/V2CollectionAPIMappingTest.java
@@ -97,7 +97,7 @@ public class V2CollectionAPIMappingTest extends V2ApiMappingTest<CollectionsHand
         CollectionParams.CollectionAction.MODIFYCOLLECTION.lowerName, v1Params.get(ACTION));
     assertEquals("collName", v1Params.get(COLLECTION));
     assertEquals(123, v1Params.getPrimitiveInt(ZkStateReader.REPLICATION_FACTOR));
-    assertEquals(true, v1Params.getPrimitiveBool(ZkStateReader.READ_ONLY));
+    assertTrue(v1Params.getPrimitiveBool(ZkStateReader.READ_ONLY));
     assertEquals("techproducts_config", v1Params.get(COLL_CONF));
     assertEquals("requestTrackingId", v1Params.get(ASYNC));
     assertEquals("bar", v1Params.get("property.foo"));
@@ -138,10 +138,10 @@ public class V2CollectionAPIMappingTest extends V2ApiMappingTest<CollectionsHand
     assertEquals("someTargetNode", v1Params.get("targetNode"));
     assertEquals("someReplica", v1Params.get("replica"));
     assertEquals("someShard", v1Params.get("shard"));
-    assertEquals(true, v1Params.getPrimitiveBool("waitForFinalState"));
+    assertTrue(v1Params.getPrimitiveBool("waitForFinalState"));
     assertEquals(123, v1Params.getPrimitiveInt("timeout"));
-    assertEquals(true, v1Params.getPrimitiveBool("inPlaceMove"));
-    assertEquals(true, v1Params.getPrimitiveBool("followAliases"));
+    assertTrue(v1Params.getPrimitiveBool("inPlaceMove"));
+    assertTrue(v1Params.getPrimitiveBool("followAliases"));
   }
 
   @Test
@@ -163,7 +163,7 @@ public class V2CollectionAPIMappingTest extends V2ApiMappingTest<CollectionsHand
     assertEquals("someTargetCollection", v1Params.get("target.collection"));
     assertEquals("someSplitKey", v1Params.get("split.key"));
     assertEquals(123, v1Params.getPrimitiveInt("forward.timeout"));
-    assertEquals(true, v1Params.getPrimitiveBool("followAliases"));
+    assertTrue(v1Params.getPrimitiveBool("followAliases"));
     assertEquals("requestTrackingId", v1Params.get(ASYNC));
   }
 
@@ -183,8 +183,8 @@ public class V2CollectionAPIMappingTest extends V2ApiMappingTest<CollectionsHand
         CollectionParams.CollectionAction.BALANCESHARDUNIQUE.lowerName, v1Params.get(ACTION));
     assertEquals("collName", v1Params.get(COLLECTION));
     assertEquals("somePropertyToBalance", v1Params.get("property"));
-    assertEquals(false, v1Params.getPrimitiveBool("onlyactivenodes"));
-    assertEquals(true, v1Params.getPrimitiveBool("shardUnique"));
+    assertFalse(v1Params.getPrimitiveBool("onlyactivenodes"));
+    assertTrue(v1Params.getPrimitiveBool("shardUnique"));
   }
 
   @Test
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/api/V2CoreAPIMappingTest.java b/solr/core/src/test/org/apache/solr/handler/admin/api/V2CoreAPIMappingTest.java
index fc5ffb51a9e..e6ecf9fd903 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/api/V2CoreAPIMappingTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/api/V2CoreAPIMappingTest.java
@@ -215,9 +215,9 @@ public class V2CoreAPIMappingTest extends V2ApiMappingTest<CoreAdminHandler> {
     assertEquals("someNodeName", v1Params.get("nodeName"));
     assertEquals("someCoreNodeName", v1Params.get(CORE_NODE_NAME));
     assertEquals("someState", v1Params.get(ZkStateReader.STATE_PROP));
-    assertEquals(true, v1Params.getPrimitiveBool("checkLive"));
-    assertEquals(true, v1Params.getPrimitiveBool("onlyIfLeader"));
-    assertEquals(true, v1Params.getPrimitiveBool("onlyIfLeaderActive"));
+    assertTrue(v1Params.getPrimitiveBool("checkLive"));
+    assertTrue(v1Params.getPrimitiveBool("onlyIfLeader"));
+    assertTrue(v1Params.getPrimitiveBool("onlyIfLeaderActive"));
   }
 
   @Test
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/api/V2NodeAPIMappingTest.java b/solr/core/src/test/org/apache/solr/handler/admin/api/V2NodeAPIMappingTest.java
index caa3882302f..fb133c63297 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/api/V2NodeAPIMappingTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/api/V2NodeAPIMappingTest.java
@@ -17,10 +17,7 @@
 
 package org.apache.solr.handler.admin.api;
 
-import static org.apache.solr.SolrTestCaseJ4.assumeWorkingMockito;
 import static org.apache.solr.common.params.CommonParams.ACTION;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
@@ -32,6 +29,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.api.Api;
 import org.apache.solr.api.ApiBag;
 import org.apache.solr.common.params.ModifiableSolrParams;
@@ -55,7 +53,7 @@ import org.junit.Test;
 import org.mockito.ArgumentCaptor;
 
 /** Unit tests for the v2 to v1 mapping for /node/ APIs. */
-public class V2NodeAPIMappingTest {
+public class V2NodeAPIMappingTest extends SolrTestCaseJ4 {
   private ApiBag apiBag;
   private ArgumentCaptor<SolrQueryRequest> queryRequestCaptor;
   private CoreAdminHandler mockCoresHandler;
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/api/V2ShardsAPIMappingTest.java b/solr/core/src/test/org/apache/solr/handler/admin/api/V2ShardsAPIMappingTest.java
index 895b95a348d..a76de226675 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/api/V2ShardsAPIMappingTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/api/V2ShardsAPIMappingTest.java
@@ -150,12 +150,12 @@ public class V2ShardsAPIMappingTest extends V2ApiMappingTest<CollectionsHandler>
     assertEquals("someSplitKey", v1Params.get(SPLIT_KEY));
     assertEquals(123, v1Params.getPrimitiveInt(NUM_SUB_SHARDS));
     assertEquals("some_fuzz_value", v1Params.get(SPLIT_FUZZ));
-    assertEquals(true, v1Params.getPrimitiveBool(TIMING));
-    assertEquals(true, v1Params.getPrimitiveBool(SPLIT_BY_PREFIX));
-    assertEquals(true, v1Params.getPrimitiveBool(FOLLOW_ALIASES));
+    assertTrue(v1Params.getPrimitiveBool(TIMING));
+    assertTrue(v1Params.getPrimitiveBool(SPLIT_BY_PREFIX));
+    assertTrue(v1Params.getPrimitiveBool(FOLLOW_ALIASES));
     assertEquals("rewrite", v1Params.get(SPLIT_METHOD));
     assertEquals("some_async_id", v1Params.get(ASYNC));
-    assertEquals(true, v1Params.getPrimitiveBool(WAIT_FOR_FINAL_STATE));
+    assertTrue(v1Params.getPrimitiveBool(WAIT_FOR_FINAL_STATE));
     assertEquals("foo1", v1Params.get("property.foo"));
     assertEquals("bar1", v1Params.get("property.bar"));
   }
@@ -185,9 +185,9 @@ public class V2ShardsAPIMappingTest extends V2ApiMappingTest<CollectionsHandler>
     assertEquals("collName", v1Params.get(COLLECTION));
     assertEquals("shard1", v1Params.get(SHARD_ID_PROP));
     assertEquals("foo,bar,baz", v1Params.get(CREATE_NODE_SET_PARAM));
-    assertEquals(true, v1Params.getPrimitiveBool(FOLLOW_ALIASES));
+    assertTrue(v1Params.getPrimitiveBool(FOLLOW_ALIASES));
     assertEquals("some_async_id", v1Params.get(ASYNC));
-    assertEquals(true, v1Params.getPrimitiveBool(WAIT_FOR_FINAL_STATE));
+    assertTrue(v1Params.getPrimitiveBool(WAIT_FOR_FINAL_STATE));
     assertEquals(123, v1Params.getPrimitiveInt(REPLICATION_FACTOR));
     assertEquals(456, v1Params.getPrimitiveInt(NRT_REPLICAS));
     assertEquals(789, v1Params.getPrimitiveInt(TLOG_REPLICAS));
@@ -231,10 +231,10 @@ public class V2ShardsAPIMappingTest extends V2ApiMappingTest<CollectionsHandler>
     assertEquals("dir1", v1Params.get("instanceDir"));
     assertEquals("dir2", v1Params.get("dataDir"));
     assertEquals("dir3", v1Params.get("ulogDir"));
-    assertEquals(true, v1Params.getPrimitiveBool(FOLLOW_ALIASES));
+    assertTrue(v1Params.getPrimitiveBool(FOLLOW_ALIASES));
     assertEquals("some_async_id", v1Params.get(ASYNC));
-    assertEquals(true, v1Params.getPrimitiveBool(WAIT_FOR_FINAL_STATE));
-    assertEquals(true, v1Params.getPrimitiveBool("skipNodeAssignment"));
+    assertTrue(v1Params.getPrimitiveBool(WAIT_FOR_FINAL_STATE));
+    assertTrue(v1Params.getPrimitiveBool("skipNodeAssignment"));
     assertEquals("tlog", v1Params.get("type"));
     assertEquals("foo1", v1Params.get("property.foo"));
     assertEquals("bar1", v1Params.get("property.bar"));
diff --git a/solr/core/src/test/org/apache/solr/handler/component/DistributedDebugComponentTest.java b/solr/core/src/test/org/apache/solr/handler/component/DistributedDebugComponentTest.java
index bf95cbbc302..58cbe43717d 100644
--- a/solr/core/src/test/org/apache/solr/handler/component/DistributedDebugComponentTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/component/DistributedDebugComponentTest.java
@@ -464,7 +464,7 @@ public class DistributedDebugComponentTest extends SolrJettyTestBase {
     for (String element : elements) {
       String value = namedList.get(element);
       assertNotNull("Expected element '" + element + "' but was not found", value);
-      assertTrue("Expected element '" + element + "' but was empty", !value.isEmpty());
+      assertFalse("Expected element '" + element + "' but was empty", value.isEmpty());
     }
   }
 }
diff --git a/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotLongTailTest.java b/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotLongTailTest.java
index 69060841a6a..2afc6ea3b8b 100644
--- a/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotLongTailTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotLongTailTest.java
@@ -161,7 +161,7 @@ public class DistributedFacetPivotLongTailTest extends BaseDistributedSearchTest
     }
     { // even w/o the long tail, we should have still asked shard2 to refine bbb0
       pivot = pivots.get(5);
-      assertTrue(pivot.toString(), pivot.getValue().equals("bbb0"));
+      assertEquals(pivot.toString(), "bbb0", pivot.getValue());
       assertEquals(pivot.toString(), 101, pivot.getCount());
       // basic check of refined stats
       FieldStatsInfo bbb0Stats = pivot.getFieldStatsInfo().get(STAT_FIELD);
diff --git a/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotSmallAdvancedTest.java b/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotSmallAdvancedTest.java
index 8ae9929b557..bb9959cf2f3 100644
--- a/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotSmallAdvancedTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotSmallAdvancedTest.java
@@ -272,13 +272,14 @@ public class DistributedFacetPivotSmallAdvancedTest extends BaseDistributedSearc
             .get("place_t,company_t")
             .get(0)
             .getValue();
-    assertFalse(
+    assertNotEquals(
         "both shards have same top constraint, test is invalid"
             + "(did someone change the test data?) ==> "
             + s0pivValue
             + "=="
             + s1pivValue,
-        s0pivValue.equals(s1pivValue));
+        s0pivValue,
+        s1pivValue);
   }
 
   private void doTestDeepPivotStatsOnString() throws Exception {
diff --git a/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotSmallTest.java b/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotSmallTest.java
index ff77a3186b3..83a51980349 100644
--- a/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotSmallTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotSmallTest.java
@@ -490,8 +490,8 @@ public class DistributedFacetPivotSmallTest extends BaseDistributedSearchTestCas
       assertNull(krakowFujitsuStatsInfo.getSumOfSquares());
       assertNull(krakowFujitsuStatsInfo.getStddev());
     } else {
-      assertEquals(null, krakowFujitsuStatsInfo.getMin());
-      assertEquals(null, krakowFujitsuStatsInfo.getMax());
+      assertNull(krakowFujitsuStatsInfo.getMin());
+      assertNull(krakowFujitsuStatsInfo.getMax());
       assertEquals(0, (long) krakowFujitsuStatsInfo.getCount());
       assertEquals(1, (long) krakowFujitsuStatsInfo.getMissing());
       assertEquals(0.0, krakowFujitsuStatsInfo.getSum());
diff --git a/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryComponentOptimizationTest.java b/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryComponentOptimizationTest.java
index 1982d5089b6..5f00e3f4264 100644
--- a/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryComponentOptimizationTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryComponentOptimizationTest.java
@@ -608,9 +608,10 @@ public class DistributedQueryComponentOptimizationTest extends SolrCloudTestCase
     for (int i = 0; i < q.length; i += 2) {
       if (ShardParams.DISTRIB_SINGLE_PASS.equals(q[i].toString())
           && Boolean.parseBoolean(q[i + 1].toString())) {
-        assertTrue(
+        assertEquals(
             "distrib.singlePass=true made more requests than number of shards",
-            numRequests == sliceCount);
+            sliceCount,
+            numRequests);
         distribSinglePass = true;
       }
       if (CommonParams.FL.equals(q[i].toString())) {
diff --git a/solr/core/src/test/org/apache/solr/handler/component/DistributedSpellCheckComponentTest.java b/solr/core/src/test/org/apache/solr/handler/component/DistributedSpellCheckComponentTest.java
index b5d19730109..72fd63f1004 100644
--- a/solr/core/src/test/org/apache/solr/handler/component/DistributedSpellCheckComponentTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/component/DistributedSpellCheckComponentTest.java
@@ -26,7 +26,6 @@ import org.apache.solr.client.solrj.response.QueryResponse;
 import org.apache.solr.common.params.ModifiableSolrParams;
 import org.apache.solr.common.params.SpellingParams;
 import org.apache.solr.common.util.NamedList;
-import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -79,7 +78,7 @@ public class DistributedSpellCheckComponentTest extends BaseDistributedSearchTes
           explicitNumSuggestExpected,
           Integer.toString(sug.size()));
     } else if (sug.size() == 0) {
-      Assert.fail("Control data did not return any suggestions.");
+      fail("Control data did not return any suggestions.");
     }
   }
 
diff --git a/solr/core/src/test/org/apache/solr/handler/component/DistributedSuggestComponentTest.java b/solr/core/src/test/org/apache/solr/handler/component/DistributedSuggestComponentTest.java
index 832f8a3e9e3..f916427d6ae 100644
--- a/solr/core/src/test/org/apache/solr/handler/component/DistributedSuggestComponentTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/component/DistributedSuggestComponentTest.java
@@ -24,7 +24,6 @@ import org.apache.solr.client.solrj.response.QueryResponse;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.common.util.SimpleOrderedMap;
 import org.apache.solr.spelling.suggest.SuggesterParams;
-import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -57,7 +56,7 @@ public class DistributedSuggestComponentTest extends BaseDistributedSearchTestCa
         (NamedList<SimpleOrderedMap<NamedList<Object>>>) nl.get("suggest");
     String command = (String) nl.get("command");
     if (sc.size() == 0 && command == null) {
-      Assert.fail("Control data did not return any suggestions or execute any command");
+      fail("Control data did not return any suggestions or execute any command");
     }
   }
 
diff --git a/solr/core/src/test/org/apache/solr/handler/component/PhrasesIdentificationComponentTest.java b/solr/core/src/test/org/apache/solr/handler/component/PhrasesIdentificationComponentTest.java
index 10f57fb5515..ed3fd4a9880 100644
--- a/solr/core/src/test/org/apache/solr/handler/component/PhrasesIdentificationComponentTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/component/PhrasesIdentificationComponentTest.java
@@ -239,7 +239,7 @@ public class PhrasesIdentificationComponentTest extends SolrTestCaseJ4 {
       final int inputPositionLength,
       final int maxIndexedPositionLength,
       final int maxQueryPositionLength) {
-    assert 0 < phrases.size() : "Don't use this method if phrases might be empty";
+    assertTrue("Don't use this method if phrases might be empty", 0 < phrases.size());
 
     assertEmptyStream(
         "no phrase should be longer then " + maxQueryPositionLength + " positions",
diff --git a/solr/core/src/test/org/apache/solr/handler/component/ShardsAllowListTest.java b/solr/core/src/test/org/apache/solr/handler/component/ShardsAllowListTest.java
index 39458e7dc19..f54536d314e 100644
--- a/solr/core/src/test/org/apache/solr/handler/component/ShardsAllowListTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/component/ShardsAllowListTest.java
@@ -308,7 +308,7 @@ public class ShardsAllowListTest extends MultiSolrCloudTestCase {
       q.set("shards", shardsParamValue);
     }
     if (otherParams != null) {
-      assert otherParams.length % 2 == 0;
+      assertEquals(0, otherParams.length % 2);
       for (int i = 0; i < otherParams.length; i += 2) {
         q.set(otherParams[i], otherParams[i + 1]);
       }
diff --git a/solr/core/src/test/org/apache/solr/handler/component/SpellCheckComponentTest.java b/solr/core/src/test/org/apache/solr/handler/component/SpellCheckComponentTest.java
index 56911b30a05..4a0eda8e506 100644
--- a/solr/core/src/test/org/apache/solr/handler/component/SpellCheckComponentTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/component/SpellCheckComponentTest.java
@@ -609,7 +609,7 @@ public class SpellCheckComponentTest extends SolrTestCaseJ4 {
     // TODO:  how do we make this into a 1-liner using "assertQ()" ???
     SolrCore core = h.getCore();
     SearchComponent speller = core.getSearchComponent("spellcheck");
-    assertTrue("speller is null and it shouldn't be", speller != null);
+    assertNotNull("speller is null and it shouldn't be", speller);
 
     ModifiableSolrParams params = new ModifiableSolrParams();
     params.add(SpellCheckComponent.COMPONENT_NAME, "true");
@@ -627,8 +627,8 @@ public class SpellCheckComponentTest extends SolrTestCaseJ4 {
     NamedList<?> values = rsp.getValues();
     NamedList<?> spellCheck = (NamedList<?>) values.get("spellcheck");
     NamedList<?> suggestions = (NamedList<?>) spellCheck.get("suggestions");
-    assertTrue(suggestions.get("suggestion") == null);
-    assertTrue((Boolean) spellCheck.get("correctlySpelled") == false);
+    assertNull(suggestions.get("suggestion"));
+    assertFalse((Boolean) spellCheck.get("correctlySpelled"));
 
     params.remove(SpellingParams.SPELLCHECK_DICT);
     params.add(SpellingParams.SPELLCHECK_DICT, "threshold_direct");
@@ -640,7 +640,7 @@ public class SpellCheckComponentTest extends SolrTestCaseJ4 {
     values = rsp.getValues();
     spellCheck = (NamedList<?>) values.get("spellcheck");
     suggestions = (NamedList<?>) spellCheck.get("suggestions");
-    assertTrue(suggestions.get("suggestion") == null);
-    assertTrue((Boolean) spellCheck.get("correctlySpelled") == false);
+    assertNull(suggestions.get("suggestion"));
+    assertFalse((Boolean) spellCheck.get("correctlySpelled"));
   }
 }
diff --git a/solr/core/src/test/org/apache/solr/handler/component/StatsComponentTest.java b/solr/core/src/test/org/apache/solr/handler/component/StatsComponentTest.java
index a0a9f733a50..8519dbaa0fe 100644
--- a/solr/core/src/test/org/apache/solr/handler/component/StatsComponentTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/component/StatsComponentTest.java
@@ -1019,9 +1019,9 @@ public class StatsComponentTest extends SolrTestCaseJ4 {
     assertTrue(
         "schema no longer satisfies test requirements: foo_ss no longer multivalued",
         foo_ss.multiValued());
-    assertTrue(
+    assertFalse(
         "schema no longer satisfies test requirements: foo_ss's fieldtype no longer single valued",
-        !foo_ss.getType().isMultiValued());
+        foo_ss.getType().isMultiValued());
 
     assertQEx(
         "no failure trying to get stats facet on foo_ss",
@@ -1078,9 +1078,9 @@ public class StatsComponentTest extends SolrTestCaseJ4 {
     assertTrue(
         "schema no longer satisfies test requirements: cat_docValues no longer multivalued",
         catDocValues.multiValued());
-    assertTrue(
+    assertFalse(
         "schema no longer satisfies test requirements: cat_docValues fieldtype no longer single valued",
-        !catDocValues.getType().isMultiValued());
+        catDocValues.getType().isMultiValued());
     assertTrue(
         "schema no longer satisfies test requirements: cat_docValues no longer has docValues",
         catDocValues.hasDocValues());
@@ -1128,9 +1128,9 @@ public class StatsComponentTest extends SolrTestCaseJ4 {
     assertTrue(
         "schema no longer satisfies test requirements: cat_docValues no longer multivalued",
         catDocValues.multiValued());
-    assertTrue(
+    assertFalse(
         "schema no longer satisfies test requirements: cat_docValues fieldtype no longer single valued",
-        !catDocValues.getType().isMultiValued());
+        catDocValues.getType().isMultiValued());
     assertTrue(
         "schema no longer satisfies test requirements: cat_docValues no longer has docValues",
         catDocValues.hasDocValues());
@@ -1186,9 +1186,9 @@ public class StatsComponentTest extends SolrTestCaseJ4 {
     assertTrue(
         "schema no longer satisfies test requirements: cat_docValues no longer multivalued",
         catDocValues.multiValued());
-    assertTrue(
+    assertFalse(
         "schema no longer satisfies test requirements: cat_docValues fieldtype no longer single valued",
-        !catDocValues.getType().isMultiValued());
+        catDocValues.getType().isMultiValued());
     assertTrue(
         "schema no longer satisfies test requirements: cat_docValues no longer has docValues",
         catDocValues.hasDocValues());
@@ -1311,9 +1311,9 @@ public class StatsComponentTest extends SolrTestCaseJ4 {
     assertTrue(
         "schema no longer satisfies test requirements: cat_docValues no longer multivalued",
         catDocValues.multiValued());
-    assertTrue(
+    assertFalse(
         "schema no longer satisfies test requirements: cat_docValues fieldtype no longer single valued",
-        !catDocValues.getType().isMultiValued());
+        catDocValues.getType().isMultiValued());
     assertTrue(
         "schema no longer satisfies test requirements: cat_docValues no longer has docValues",
         catDocValues.hasDocValues());
diff --git a/solr/core/src/test/org/apache/solr/handler/component/TermsComponentTest.java b/solr/core/src/test/org/apache/solr/handler/component/TermsComponentTest.java
index ba041108157..764448dbb92 100644
--- a/solr/core/src/test/org/apache/solr/handler/component/TermsComponentTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/component/TermsComponentTest.java
@@ -725,7 +725,7 @@ public class TermsComponentTest extends SolrTestCaseJ4 {
         i += count;
         // if (i < 10) System.out.println("COUNT=" + count + " OBJ="+v.toObject());
       }
-      assert (i == nvals);
+      assertEquals(i, nvals);
 
       totBuff = random().nextInt(50) + 1;
       minSegBuff = random().nextInt(10) + 1;
@@ -741,7 +741,7 @@ public class TermsComponentTest extends SolrTestCaseJ4 {
         i += count;
         // if (i < 10) System.out.println("COUNT=" + count + " OBJ="+v.toObject());
       }
-      assert (i == nvals);
+      assertEquals(i, nvals);
 
       totBuff = random().nextInt(50) + 1;
       minSegBuff = random().nextInt(10) + 1;
@@ -757,7 +757,7 @@ public class TermsComponentTest extends SolrTestCaseJ4 {
         i += count;
         // if (i < 10) System.out.println("COUNT=" + count + " OBJ="+v.toObject());
       }
-      assert (i == nvals);
+      assertEquals(i, nvals);
 
       totBuff = random().nextInt(50) + 1;
       minSegBuff = random().nextInt(10) + 1;
@@ -773,7 +773,7 @@ public class TermsComponentTest extends SolrTestCaseJ4 {
         i += count;
         // if (i < 10) System.out.println("COUNT=" + count + " OBJ="+v.toObject());
       }
-      assert (i == nvals);
+      assertEquals(i, nvals);
 
       assertQ(
           req(
diff --git a/solr/core/src/test/org/apache/solr/handler/component/TestTrackingShardHandlerFactory.java b/solr/core/src/test/org/apache/solr/handler/component/TestTrackingShardHandlerFactory.java
index c9995fd2d7c..a860ac7c9ef 100644
--- a/solr/core/src/test/org/apache/solr/handler/component/TestTrackingShardHandlerFactory.java
+++ b/solr/core/src/test/org/apache/solr/handler/component/TestTrackingShardHandlerFactory.java
@@ -61,7 +61,7 @@ public class TestTrackingShardHandlerFactory extends AbstractFullDistribZkTestBa
     for (JettySolrRunner runner : runners) {
       CoreContainer container = runner.getCoreContainer();
       ShardHandlerFactory factory = container.getShardHandlerFactory();
-      assert factory instanceof TrackingShardHandlerFactory;
+      assertTrue(factory instanceof TrackingShardHandlerFactory);
       @SuppressWarnings("resource")
       TrackingShardHandlerFactory trackingShardHandlerFactory =
           (TrackingShardHandlerFactory) factory;
@@ -130,7 +130,7 @@ public class TestTrackingShardHandlerFactory extends AbstractFullDistribZkTestBa
     for (JettySolrRunner runner : runners) {
       CoreContainer container = runner.getCoreContainer();
       ShardHandlerFactory factory = container.getShardHandlerFactory();
-      assert factory instanceof TrackingShardHandlerFactory;
+      assertTrue(factory instanceof TrackingShardHandlerFactory);
       @SuppressWarnings("resource")
       TrackingShardHandlerFactory trackingShardHandlerFactory =
           (TrackingShardHandlerFactory) factory;
diff --git a/solr/core/src/test/org/apache/solr/handler/designer/ManagedSchemaDiffTest.java b/solr/core/src/test/org/apache/solr/handler/designer/ManagedSchemaDiffTest.java
index 567622cfe20..a53521bfec9 100644
--- a/solr/core/src/test/org/apache/solr/handler/designer/ManagedSchemaDiffTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/designer/ManagedSchemaDiffTest.java
@@ -33,7 +33,6 @@ import org.apache.solr.schema.IntPointField;
 import org.apache.solr.schema.ManagedIndexSchema;
 import org.apache.solr.schema.SchemaField;
 import org.apache.solr.util.ExternalPaths;
-import org.junit.Assert;
 import org.junit.BeforeClass;
 
 public class ManagedSchemaDiffTest extends SolrCloudTestCase {
@@ -62,29 +61,29 @@ public class ManagedSchemaDiffTest extends SolrCloudTestCase {
     Map<String, Object> diff =
         ManagedSchemaDiff.diff(
             mapFieldsToPropertyValues(schema1FieldMap), mapFieldsToPropertyValues(schema2FieldMap));
-    Assert.assertTrue(diff.containsKey("updated"));
-    Assert.assertTrue(diff.containsKey("added"));
-    Assert.assertTrue(diff.containsKey("removed"));
+    assertTrue(diff.containsKey("updated"));
+    assertTrue(diff.containsKey("added"));
+    assertTrue(diff.containsKey("removed"));
 
     Map<String, Object> changedFields = getInnerMap(diff, "updated");
-    Assert.assertEquals(1, changedFields.size());
-    Assert.assertTrue(changedFields.containsKey("strfield"));
-    Assert.assertEquals(
+    assertEquals(1, changedFields.size());
+    assertTrue(changedFields.containsKey("strfield"));
+    assertEquals(
         Arrays.asList(
             Map.of("type", "string", "multiValued", false),
             Map.of("type", "strings", "multiValued", true)),
         changedFields.get("strfield"));
 
     Map<String, Object> addedFields = getInnerMap(diff, "added");
-    Assert.assertEquals(1, addedFields.size());
-    Assert.assertTrue(addedFields.containsKey("intfield"));
-    Assert.assertEquals(
+    assertEquals(1, addedFields.size());
+    assertTrue(addedFields.containsKey("intfield"));
+    assertEquals(
         schema2FieldMap.get("intfield").getNamedPropertyValues(true), addedFields.get("intfield"));
 
     Map<String, Object> removedFields = getInnerMap(diff, "removed");
-    Assert.assertEquals(1, removedFields.size());
-    Assert.assertTrue(removedFields.containsKey("boolfield"));
-    Assert.assertEquals(
+    assertEquals(1, removedFields.size());
+    assertTrue(removedFields.containsKey("boolfield"));
+    assertEquals(
         schema1FieldMap.get("boolfield").getNamedPropertyValues(true),
         removedFields.get("boolfield"));
   }
@@ -110,10 +109,10 @@ public class ManagedSchemaDiffTest extends SolrCloudTestCase {
     List<SimpleOrderedMap<Object>> list2 = Arrays.asList(obj1, obj3, obj4);
 
     Map<String, Object> diff = ManagedSchemaDiff.diff(list1, list2);
-    Assert.assertTrue(diff.containsKey("old"));
-    Assert.assertTrue(diff.containsKey("new"));
-    Assert.assertEquals(Collections.singletonList(obj2), diff.get("old"));
-    Assert.assertEquals(Arrays.asList(obj3, obj4), diff.get("new"));
+    assertTrue(diff.containsKey("old"));
+    assertTrue(diff.containsKey("new"));
+    assertEquals(Collections.singletonList(obj2), diff.get("old"));
+    assertEquals(Arrays.asList(obj3, obj4), diff.get("new"));
   }
 
   @SuppressWarnings("unchecked")
diff --git a/solr/core/src/test/org/apache/solr/handler/export/TestExportWriter.java b/solr/core/src/test/org/apache/solr/handler/export/TestExportWriter.java
index 3dd83702f10..7d0cf5e4e6a 100644
--- a/solr/core/src/test/org/apache/solr/handler/export/TestExportWriter.java
+++ b/solr/core/src/test/org/apache/solr/handler/export/TestExportWriter.java
@@ -1048,11 +1048,11 @@ public class TestExportWriter extends SolrTestCaseJ4 {
           String field = "number_" + type + mv + indexed;
           SchemaField sf = h.getCore().getLatestSchema().getField(field + "_t");
           assertTrue(sf.hasDocValues());
-          assertTrue(sf.getType().getNumberType() != null);
+          assertNotNull(sf.getType().getNumberType());
 
           sf = h.getCore().getLatestSchema().getField(field + "_p");
           assertTrue(sf.hasDocValues());
-          assertTrue(sf.getType().getNumberType() != null);
+          assertNotNull(sf.getType().getNumberType());
           assertTrue(sf.getType().isPointField());
 
           trieFields.add(field + "_t");
@@ -1354,7 +1354,7 @@ public class TestExportWriter extends SolrTestCaseJ4 {
     Map rsp = (Map) Utils.fromJSONString(response);
     List doclist = (List) (((Map) rsp.get("response")).get("docs"));
 
-    assert docs.size() == numDocs;
+    assertEquals(docs.size(), numDocs);
 
     for (int i = 0; i < docs.size() - 1; i++) { // docs..
       assertEquals(
diff --git a/solr/core/src/test/org/apache/solr/handler/loader/JavabinLoaderTest.java b/solr/core/src/test/org/apache/solr/handler/loader/JavabinLoaderTest.java
index b4d4b22e66a..66ac7c724db 100644
--- a/solr/core/src/test/org/apache/solr/handler/loader/JavabinLoaderTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/loader/JavabinLoaderTest.java
@@ -87,7 +87,7 @@ public class JavabinLoaderTest extends SolrTestCaseJ4 {
             mockUpdateProcessor);
     req.close();
 
-    assertTrue(mockUpdateProcessor.addCommands.size() == numDocsInBatch);
+    assertEquals(mockUpdateProcessor.addCommands.size(), numDocsInBatch);
     for (int i = 0; i < numDocsInBatch - 1; i++)
       assertFalse(mockUpdateProcessor.addCommands.get(i).isLastDocInBatch); // not last doc in batch
 
diff --git a/solr/core/src/test/org/apache/solr/handler/tagger/RandomizedTaggerTest.java b/solr/core/src/test/org/apache/solr/handler/tagger/RandomizedTaggerTest.java
index f4b8368dfb5..2b366f11311 100644
--- a/solr/core/src/test/org/apache/solr/handler/tagger/RandomizedTaggerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/tagger/RandomizedTaggerTest.java
@@ -113,7 +113,7 @@ public class RandomizedTaggerTest extends TaggerTestCase {
   }
 
   private void assertBruteForce(String input) throws Exception {
-    assert input.matches(" .* ");
+    assertTrue(input.matches(" .* "));
     baseParams.set("overlaps", "ALL");
 
     // loop through NAMES and find all tag offsets
diff --git a/solr/core/src/test/org/apache/solr/handler/tagger/TaggerTest.java b/solr/core/src/test/org/apache/solr/handler/tagger/TaggerTest.java
index 106f96e87fa..d8ce050dc07 100644
--- a/solr/core/src/test/org/apache/solr/handler/tagger/TaggerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/tagger/TaggerTest.java
@@ -303,14 +303,14 @@ public class TaggerTest extends TaggerTestCase {
   }
 
   private TestTag tt(String doc, String substring, int substringIndex, N name) {
-    assert substringIndex == 0;
+    assertEquals(0, substringIndex);
 
     // little bit of copy-paste code from super.tt()
     int startOffset = -1, endOffset;
     int substringIndex1 = 0;
     for (int i = 0; i <= substringIndex1; i++) {
       startOffset = doc.indexOf(substring, ++startOffset);
-      assert startOffset >= 0 : "The test itself is broken";
+      assertTrue("The test itself is broken", startOffset >= 0);
     }
     endOffset = startOffset + substring.length(); // 1 greater (exclusive)
     return new TestTag(startOffset, endOffset, substring, lookupByName(name.getName()));
diff --git a/solr/core/src/test/org/apache/solr/handler/tagger/TaggerTestCase.java b/solr/core/src/test/org/apache/solr/handler/tagger/TaggerTestCase.java
index f48e3f5a1ab..2f22e0de4c5 100644
--- a/solr/core/src/test/org/apache/solr/handler/tagger/TaggerTestCase.java
+++ b/solr/core/src/test/org/apache/solr/handler/tagger/TaggerTestCase.java
@@ -112,7 +112,7 @@ public abstract class TaggerTestCase extends SolrTestCaseJ4 {
     int substringIndex = 0;
     for (int i = 0; i <= substringIndex; i++) {
       startOffset = doc.indexOf(substring, ++startOffset);
-      assert startOffset >= 0 : "The test itself is broken";
+      assertTrue("The test itself is broken", startOffset >= 0);
     }
     endOffset = startOffset + substring.length(); // 1 greater (exclusive)
     return new TestTag(startOffset, endOffset, substring, lookupByName(substring));
diff --git a/solr/core/src/test/org/apache/solr/internal/csv/CSVParserTest.java b/solr/core/src/test/org/apache/solr/internal/csv/CSVParserTest.java
index 801e282b118..ab558c50c9f 100644
--- a/solr/core/src/test/org/apache/solr/internal/csv/CSVParserTest.java
+++ b/solr/core/src/test/org/apache/solr/internal/csv/CSVParserTest.java
@@ -19,7 +19,6 @@ package org.apache.solr.internal.csv;
 import java.io.IOException;
 import java.io.Reader;
 import java.io.StringReader;
-import java.util.Arrays;
 import org.apache.solr.SolrTestCase;
 
 /**
@@ -218,10 +217,10 @@ public class CSVParserTest extends SolrTestCase {
     String[] tmp = null;
     for (String[] re : res) {
       tmp = parser.getLine();
-      assertTrue(Arrays.equals(re, tmp));
+      assertArrayEquals(re, tmp);
     }
     tmp = parser.getLine();
-    assertTrue(tmp == null);
+    assertNull(tmp);
   }
 
   public void testNextValue() throws IOException {
@@ -234,7 +233,7 @@ public class CSVParserTest extends SolrTestCase {
       }
     }
     tmp = parser.nextValue();
-    assertTrue(tmp == null);
+    assertNull(tmp);
   }
 
   public void testGetAllValues() throws IOException {
@@ -243,7 +242,7 @@ public class CSVParserTest extends SolrTestCase {
     assertEquals(res.length, tmp.length);
     assertTrue(tmp.length > 0);
     for (int i = 0; i < res.length; i++) {
-      assertTrue(Arrays.equals(res[i], tmp[i]));
+      assertArrayEquals(res[i], tmp[i]);
     }
   }
 
@@ -263,7 +262,7 @@ public class CSVParserTest extends SolrTestCase {
     assertEquals(res.length, tmp.length);
     assertTrue(tmp.length > 0);
     for (int i = 0; i < res.length; i++) {
-      assertTrue(Arrays.equals(res[i], tmp[i]));
+      assertArrayEquals(res[i], tmp[i]);
     }
   }
 
@@ -281,7 +280,7 @@ public class CSVParserTest extends SolrTestCase {
     assertEquals(res.length, tmp.length);
     assertTrue(tmp.length > 0);
     for (int i = 0; i < res.length; i++) {
-      assertTrue(Arrays.equals(res[i], tmp[i]));
+      assertArrayEquals(res[i], tmp[i]);
     }
   }
 
@@ -307,7 +306,7 @@ public class CSVParserTest extends SolrTestCase {
       assertEquals(res.length, tmp.length);
       assertTrue(tmp.length > 0);
       for (int i = 0; i < res.length; i++) {
-        assertTrue(Arrays.equals(res[i], tmp[i]));
+        assertArrayEquals(res[i], tmp[i]);
       }
     }
   }
@@ -334,7 +333,7 @@ public class CSVParserTest extends SolrTestCase {
       assertEquals(res.length, tmp.length);
       assertTrue(tmp.length > 0);
       for (int i = 0; i < res.length; i++) {
-        assertTrue(Arrays.equals(res[i], tmp[i]));
+        assertArrayEquals(res[i], tmp[i]);
       }
     }
   }
@@ -354,7 +353,7 @@ public class CSVParserTest extends SolrTestCase {
       assertEquals(res.length, tmp.length);
       assertTrue(tmp.length > 0);
       for (int i = 0; i < res.length; i++) {
-        assertTrue(Arrays.equals(res[i], tmp[i]));
+        assertArrayEquals(res[i], tmp[i]);
       }
     }
   }
@@ -372,7 +371,7 @@ public class CSVParserTest extends SolrTestCase {
       assertEquals(res.length, tmp.length);
       assertTrue(tmp.length > 0);
       for (int i = 0; i < res.length; i++) {
-        assertTrue(Arrays.equals(res[i], tmp[i]));
+        assertArrayEquals(res[i], tmp[i]);
       }
     }
   }
@@ -416,7 +415,7 @@ public class CSVParserTest extends SolrTestCase {
     String[][] tmp = parser.getAllValues();
     assertTrue(tmp.length > 0);
     for (int i = 0; i < res.length; i++) {
-      assertTrue(Arrays.equals(res[i], tmp[i]));
+      assertArrayEquals(res[i], tmp[i]);
     }
   }
 
@@ -455,7 +454,7 @@ public class CSVParserTest extends SolrTestCase {
     assertTrue(tmp.length > 0);
 
     if (!CSVPrinterTest.equals(res, tmp)) {
-      assertTrue(false);
+      fail();
     }
   }
 
@@ -481,7 +480,7 @@ public class CSVParserTest extends SolrTestCase {
     assertTrue(tmp.length > 0);
 
     if (!CSVPrinterTest.equals(res, tmp)) {
-      assertTrue(false);
+      fail();
     }
 
     String[][] res_comments = {
@@ -495,7 +494,7 @@ public class CSVParserTest extends SolrTestCase {
     tmp = parser.getAllValues();
 
     if (!CSVPrinterTest.equals(res_comments, tmp)) {
-      assertTrue(false);
+      fail();
     }
   }
 
@@ -542,7 +541,7 @@ public class CSVParserTest extends SolrTestCase {
     parser = new CSVParser(new StringReader(code));
     CSVParser parser1 = new CSVParser(new StringReader(code));
     for (String[] datum : data) {
-      assertTrue(Arrays.equals(parser1.getLine(), datum));
+      assertArrayEquals(parser1.getLine(), datum);
       for (String d : datum) {
         assertEquals(parser.nextValue(), d);
       }
diff --git a/solr/core/src/test/org/apache/solr/internal/csv/CSVPrinterTest.java b/solr/core/src/test/org/apache/solr/internal/csv/CSVPrinterTest.java
index 72038c44779..ee7e7507ffb 100644
--- a/solr/core/src/test/org/apache/solr/internal/csv/CSVPrinterTest.java
+++ b/solr/core/src/test/org/apache/solr/internal/csv/CSVPrinterTest.java
@@ -131,7 +131,7 @@ public class CSVPrinterTest extends SolrTestCase {
 
     if (!equals(lines, parseResult)) {
       System.out.println("Printer output :" + printable(result));
-      assertTrue(false);
+      fail();
     }
   }
 
diff --git a/solr/core/src/test/org/apache/solr/internal/csv/CSVStrategyTest.java b/solr/core/src/test/org/apache/solr/internal/csv/CSVStrategyTest.java
index 9163ac7a32e..e9fd504b551 100644
--- a/solr/core/src/test/org/apache/solr/internal/csv/CSVStrategyTest.java
+++ b/solr/core/src/test/org/apache/solr/internal/csv/CSVStrategyTest.java
@@ -52,16 +52,16 @@ public class CSVStrategyTest extends SolrTestCase {
     assertEquals(strategy.getDelimiter(), ',');
     assertEquals(strategy.getEncapsulator(), '"');
     assertEquals(strategy.getCommentStart(), CSVStrategy.COMMENTS_DISABLED);
-    assertEquals(true, strategy.getIgnoreLeadingWhitespaces());
-    assertEquals(false, strategy.getUnicodeEscapeInterpretation());
-    assertEquals(true, strategy.getIgnoreEmptyLines());
+    assertTrue(strategy.getIgnoreLeadingWhitespaces());
+    assertFalse(strategy.getUnicodeEscapeInterpretation());
+    assertTrue(strategy.getIgnoreEmptyLines());
     // explicit csv settings
     assertEquals(strategy.getDelimiter(), ',');
     assertEquals(strategy.getEncapsulator(), '"');
     assertEquals(strategy.getCommentStart(), CSVStrategy.COMMENTS_DISABLED);
-    assertEquals(true, strategy.getIgnoreLeadingWhitespaces());
-    assertEquals(false, strategy.getUnicodeEscapeInterpretation());
-    assertEquals(true, strategy.getIgnoreEmptyLines());
+    assertTrue(strategy.getIgnoreLeadingWhitespaces());
+    assertFalse(strategy.getUnicodeEscapeInterpretation());
+    assertTrue(strategy.getIgnoreEmptyLines());
   }
 
   public void testSetExcelStrategy() {
@@ -69,8 +69,8 @@ public class CSVStrategyTest extends SolrTestCase {
     assertEquals(strategy.getDelimiter(), ',');
     assertEquals(strategy.getEncapsulator(), '"');
     assertEquals(strategy.getCommentStart(), CSVStrategy.COMMENTS_DISABLED);
-    assertEquals(false, strategy.getIgnoreLeadingWhitespaces());
-    assertEquals(false, strategy.getUnicodeEscapeInterpretation());
-    assertEquals(false, strategy.getIgnoreEmptyLines());
+    assertFalse(strategy.getIgnoreLeadingWhitespaces());
+    assertFalse(strategy.getUnicodeEscapeInterpretation());
+    assertFalse(strategy.getIgnoreEmptyLines());
   }
 }
diff --git a/solr/core/src/test/org/apache/solr/internal/csv/ExtendedBufferedReaderTest.java b/solr/core/src/test/org/apache/solr/internal/csv/ExtendedBufferedReaderTest.java
index 3fc74da5b44..bc5885f05f1 100644
--- a/solr/core/src/test/org/apache/solr/internal/csv/ExtendedBufferedReaderTest.java
+++ b/solr/core/src/test/org/apache/solr/internal/csv/ExtendedBufferedReaderTest.java
@@ -17,7 +17,6 @@
 package org.apache.solr.internal.csv;
 
 import java.io.StringReader;
-import java.util.Arrays;
 import org.apache.solr.SolrTestCase;
 
 /** ExtendedBufferedReaderTest */
@@ -89,20 +88,20 @@ public class ExtendedBufferedReaderTest extends SolrTestCase {
 
     ExtendedBufferedReader br = getEBR("");
     assertEquals(0, br.read(res, 0, 0));
-    assertTrue(Arrays.equals(res, ref));
+    assertArrayEquals(res, ref);
 
     br = getEBR("abcdefg");
     ref[0] = 'a';
     ref[1] = 'b';
     ref[2] = 'c';
     assertEquals(3, br.read(res, 0, 3));
-    assertTrue(Arrays.equals(res, ref));
+    assertArrayEquals(res, ref);
     assertEquals('c', br.readAgain());
 
     assertEquals('d', br.lookAhead());
     ref[4] = 'd';
     assertEquals(1, br.read(res, 4, 1));
-    assertTrue(Arrays.equals(res, ref));
+    assertArrayEquals(res, ref);
     assertEquals('d', br.readAgain());
   }
 
@@ -112,43 +111,43 @@ public class ExtendedBufferedReaderTest extends SolrTestCase {
 
   public void testReadLine() throws Exception {
     ExtendedBufferedReader br = getEBR("");
-    assertTrue(br.readLine() == null);
+    assertNull(br.readLine());
 
     br = getEBR("\n");
-    assertTrue(br.readLine().equals(""));
-    assertTrue(br.readLine() == null);
+    assertEquals("", br.readLine());
+    assertNull(br.readLine());
 
     br = getEBR("foo\n\nhello");
     assertEquals(0, br.getLineNumber());
-    assertTrue(br.readLine().equals("foo"));
+    assertEquals("foo", br.readLine());
     assertEquals(1, br.getLineNumber());
-    assertTrue(br.readLine().equals(""));
+    assertEquals("", br.readLine());
     assertEquals(2, br.getLineNumber());
-    assertTrue(br.readLine().equals("hello"));
+    assertEquals("hello", br.readLine());
     assertEquals(3, br.getLineNumber());
-    assertTrue(br.readLine() == null);
+    assertNull(br.readLine());
     assertEquals(3, br.getLineNumber());
 
     br = getEBR("foo\n\nhello");
     assertEquals('f', br.read());
     assertEquals('o', br.lookAhead());
-    assertTrue(br.readLine().equals("oo"));
+    assertEquals("oo", br.readLine());
     assertEquals(1, br.getLineNumber());
     assertEquals('\n', br.lookAhead());
-    assertTrue(br.readLine().equals(""));
+    assertEquals("", br.readLine());
     assertEquals(2, br.getLineNumber());
     assertEquals('h', br.lookAhead());
-    assertTrue(br.readLine().equals("hello"));
-    assertTrue(br.readLine() == null);
+    assertEquals("hello", br.readLine());
+    assertNull(br.readLine());
     assertEquals(3, br.getLineNumber());
 
     br = getEBR("foo\rbaar\r\nfoo");
-    assertTrue(br.readLine().equals("foo"));
+    assertEquals("foo", br.readLine());
     assertEquals('b', br.lookAhead());
-    assertTrue(br.readLine().equals("baar"));
+    assertEquals("baar", br.readLine());
     assertEquals('f', br.lookAhead());
-    assertTrue(br.readLine().equals("foo"));
-    assertTrue(br.readLine() == null);
+    assertEquals("foo", br.readLine());
+    assertNull(br.readLine());
   }
 
   public void testSkip0() throws Exception {
@@ -171,11 +170,11 @@ public class ExtendedBufferedReaderTest extends SolrTestCase {
     assertEquals(3, br.skip(3));
     assertEquals('f', br.lookAhead());
     assertEquals(2, br.skip(5));
-    assertTrue(br.readLine() == null);
+    assertNull(br.readLine());
 
     br = getEBR("12345");
     assertEquals(5, br.skip(5));
-    assertTrue(br.lookAhead() == ExtendedBufferedReader.END_OF_STREAM);
+    assertEquals(ExtendedBufferedReader.END_OF_STREAM, br.lookAhead());
   }
 
   public void testSkipUntil() throws Exception {
@@ -194,16 +193,16 @@ public class ExtendedBufferedReaderTest extends SolrTestCase {
 
   public void testReadUntil() throws Exception {
     ExtendedBufferedReader br = getEBR("");
-    assertTrue(br.readUntil(';').equals(""));
+    assertEquals("", br.readUntil(';'));
     br = getEBR("ABCDEF;GHL;;MN");
-    assertTrue(br.readUntil(';').equals("ABCDEF"));
-    assertTrue(br.readUntil(';').length() == 0);
+    assertEquals("ABCDEF", br.readUntil(';'));
+    assertEquals(0, br.readUntil(';').length());
     br.skip(1);
-    assertTrue(br.readUntil(';').equals("GHL"));
+    assertEquals("GHL", br.readUntil(';'));
     br.skip(1);
-    assertTrue(br.readUntil(';').equals(""));
+    assertEquals("", br.readUntil(';'));
     br.skip(1);
-    assertTrue(br.readUntil(',').equals("MN"));
+    assertEquals("MN", br.readUntil(','));
   }
 
   private ExtendedBufferedReader getEBR(String s) {
diff --git a/solr/core/src/test/org/apache/solr/legacy/TestLegacyFieldReuse.java b/solr/core/src/test/org/apache/solr/legacy/TestLegacyFieldReuse.java
index 80c1faa6032..ac0dd9b16f3 100644
--- a/solr/core/src/test/org/apache/solr/legacy/TestLegacyFieldReuse.java
+++ b/solr/core/src/test/org/apache/solr/legacy/TestLegacyFieldReuse.java
@@ -53,7 +53,6 @@ public class TestLegacyFieldReuse extends BaseTokenStreamTestCase {
 
     // pass another bogus stream (numeric, but different precision step!)
     legacyIntField = new LegacyIntField("foo", 42, Field.Store.NO);
-    assert 3 != LegacyNumericUtils.PRECISION_STEP_DEFAULT;
     bogus = new LegacyNumericTokenStream(3);
     ts = legacyIntField.tokenStream(null, bogus);
     assertNotSame(bogus, ts);
diff --git a/solr/core/src/test/org/apache/solr/legacy/TestLegacyNumericUtils.java b/solr/core/src/test/org/apache/solr/legacy/TestLegacyNumericUtils.java
index 07fd9726e49..b05aaf248d4 100644
--- a/solr/core/src/test/org/apache/solr/legacy/TestLegacyNumericUtils.java
+++ b/solr/core/src/test/org/apache/solr/legacy/TestLegacyNumericUtils.java
@@ -224,9 +224,10 @@ public class TestLegacyNumericUtils extends SolrTestCase {
     // check forward and back conversion
     for (int i = 0; i < vals.length; i++) {
       longVals[i] = NumericUtils.doubleToSortableLong(vals[i]);
-      assertTrue(
+      assertEquals(
           "forward and back conversion should generate same double",
-          Double.compare(vals[i], NumericUtils.sortableLongToDouble(longVals[i])) == 0);
+          0,
+          Double.compare(vals[i], NumericUtils.sortableLongToDouble(longVals[i])));
     }
 
     // check sort order (prefixVals should be ascending)
@@ -283,9 +284,10 @@ public class TestLegacyNumericUtils extends SolrTestCase {
     // check forward and back conversion
     for (int i = 0; i < vals.length; i++) {
       intVals[i] = NumericUtils.floatToSortableInt(vals[i]);
-      assertTrue(
+      assertEquals(
           "forward and back conversion should generate same double",
-          Float.compare(vals[i], NumericUtils.sortableIntToFloat(intVals[i])) == 0);
+          0,
+          Float.compare(vals[i], NumericUtils.sortableIntToFloat(intVals[i])));
     }
 
     // check sort order (prefixVals should be ascending)
diff --git a/solr/core/src/test/org/apache/solr/legacy/TestNumericRangeQuery32.java b/solr/core/src/test/org/apache/solr/legacy/TestNumericRangeQuery32.java
index 308a4c12488..73481b5f0b5 100644
--- a/solr/core/src/test/org/apache/solr/legacy/TestNumericRangeQuery32.java
+++ b/solr/core/src/test/org/apache/solr/legacy/TestNumericRangeQuery32.java
@@ -543,7 +543,7 @@ public class TestNumericRangeQuery32 extends SolrTestCase {
     // only test equality:
     Query q1 = LegacyNumericRangeQuery.newIntRange("test14", 4, 10, 20, true, true);
     Query q2 = LegacyNumericRangeQuery.newLongRange("test14", 4, 10L, 20L, true, true);
-    assertFalse(q1.equals(q2));
-    assertFalse(q2.equals(q1));
+    assertNotEquals(q1, q2);
+    assertNotEquals(q2, q1);
   }
 }
diff --git a/solr/core/src/test/org/apache/solr/metrics/DelegateRegistryTimerTest.java b/solr/core/src/test/org/apache/solr/metrics/DelegateRegistryTimerTest.java
index 4a6f44453e6..71e816fa4f3 100644
--- a/solr/core/src/test/org/apache/solr/metrics/DelegateRegistryTimerTest.java
+++ b/solr/core/src/test/org/apache/solr/metrics/DelegateRegistryTimerTest.java
@@ -17,18 +17,16 @@
 
 package org.apache.solr.metrics;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
 import com.codahale.metrics.Clock;
 import com.codahale.metrics.MetricRegistry;
 import com.codahale.metrics.Timer;
 import java.time.Duration;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicLong;
+import org.apache.solr.SolrTestCase;
 import org.junit.Test;
 
-public class DelegateRegistryTimerTest {
+public class DelegateRegistryTimerTest extends SolrTestCase {
 
   MetricRegistry.MetricSupplier<Timer> timerSupplier =
       new MetricSuppliers.DefaultTimerSupplier(null);
diff --git a/solr/core/src/test/org/apache/solr/metrics/MetricsConfigTest.java b/solr/core/src/test/org/apache/solr/metrics/MetricsConfigTest.java
index 2b0d4b69525..45c1e3f7601 100644
--- a/solr/core/src/test/org/apache/solr/metrics/MetricsConfigTest.java
+++ b/solr/core/src/test/org/apache/solr/metrics/MetricsConfigTest.java
@@ -91,7 +91,7 @@ public class MetricsConfigTest extends SolrTestCaseJ4 {
     MockMeterSupplier mockMeterSupplier = ((MockMeterSupplier) mgr.getMeterSupplier());
     assertEquals("bar", mockMeterSupplier.foo);
     MockTimerSupplier mockTimerSupplier = ((MockTimerSupplier) mgr.getTimerSupplier());
-    assertEquals(true, mockTimerSupplier.boolParam);
+    assertTrue(mockTimerSupplier.boolParam);
     assertEquals("strParam", mockTimerSupplier.strParam);
     assertEquals(-100, mockTimerSupplier.intParam);
 
@@ -118,7 +118,7 @@ public class MetricsConfigTest extends SolrTestCaseJ4 {
     NodeConfig cfg = loadNodeConfig("solr-metricsconfig1.xml");
     SolrMetricManager mgr =
         new SolrMetricManager(cfg.getSolrResourceLoader(), cfg.getMetricsConfig());
-    assertEquals("nullNumber", null, mgr.nullNumber());
+    assertNull("nullNumber", mgr.nullNumber());
     assertEquals("notANumber", -1, mgr.notANumber());
     assertEquals("nullNumber", "", mgr.nullString());
     assertTrue("nullObject", mgr.nullObject() instanceof Map);
diff --git a/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterTest.java b/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterTest.java
index b3fc5a49055..4be3a5a583c 100644
--- a/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterTest.java
+++ b/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterTest.java
@@ -272,7 +272,7 @@ public class SolrJmxReporterTest extends SolrTestCaseJ4 {
         coreMetricManager.getTag());
 
     String root2 = PREFIX + TestUtil.randomSimpleString(random(), 5, 10);
-    assertFalse(root2.equals(root1));
+    assertNotEquals(root2, root1);
     PluginInfo pluginInfo2 = createReporterPluginInfo(root2, false);
     metricManager.loadReporter(
         coreMetricManager.getRegistryName(),
diff --git a/solr/core/src/test/org/apache/solr/parser/SolrQueryParserBaseTest.java b/solr/core/src/test/org/apache/solr/parser/SolrQueryParserBaseTest.java
index 41315b95137..be64a28fe9e 100644
--- a/solr/core/src/test/org/apache/solr/parser/SolrQueryParserBaseTest.java
+++ b/solr/core/src/test/org/apache/solr/parser/SolrQueryParserBaseTest.java
@@ -16,8 +16,6 @@
  */
 package org.apache.solr.parser;
 
-import static org.apache.solr.SolrTestCaseJ4.assumeWorkingMockito;
-import static org.junit.Assert.assertEquals;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doReturn;
@@ -26,6 +24,7 @@ import java.util.Arrays;
 import java.util.List;
 import org.apache.lucene.queryparser.charstream.CharStream;
 import org.apache.lucene.search.Query;
+import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.schema.IndexSchema;
@@ -33,12 +32,9 @@ import org.apache.solr.search.QParser;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.mockito.Mockito;
 
-@RunWith(MockitoJUnitRunner.class)
-public class SolrQueryParserBaseTest {
+public class SolrQueryParserBaseTest extends SolrTestCaseJ4 {
 
   @BeforeClass
   public static void setUpClass() {
@@ -55,16 +51,17 @@ public class SolrQueryParserBaseTest {
     }
   }
 
-  @Mock private QParser qParser;
-  @Mock private QParser subQParser;
-  @Mock private SolrQueryRequest solrQueryRequest;
-  @Mock private Query query;
-  @Mock private IndexSchema indexSchema;
+  private final QParser qParser = Mockito.mock(QParser.class);
+  private final QParser subQParser = Mockito.mock(QParser.class);
+  private final SolrQueryRequest solrQueryRequest = Mockito.mock(SolrQueryRequest.class);
+  private final Query query = Mockito.mock(Query.class);
+  private final IndexSchema indexSchema = Mockito.mock(IndexSchema.class);
 
   private MockSolrQueryParser solrQueryParser;
 
   @Before
-  public void setUp() {
+  public void setUp() throws Exception {
+    super.setUp();
     solrQueryParser = new MockSolrQueryParser();
   }
 
diff --git a/solr/core/src/test/org/apache/solr/request/TestIntervalFaceting.java b/solr/core/src/test/org/apache/solr/request/TestIntervalFaceting.java
index 6221f424d93..d66e6c6fa45 100644
--- a/solr/core/src/test/org/apache/solr/request/TestIntervalFaceting.java
+++ b/solr/core/src/test/org/apache/solr/request/TestIntervalFaceting.java
@@ -559,7 +559,7 @@ public class TestIntervalFaceting extends SolrTestCaseJ4 {
     Number[] values = new Number[2];
     FieldType ft = h.getCore().getLatestSchema().getField(fieldName).getType();
     if (ft.getNumberType() == null) {
-      assert ft instanceof StrField;
+      assertTrue(ft instanceof StrField);
       values[0] = randomInt(max);
       values[1] = randomInt(max);
       Arrays.sort(values, (o1, o2) -> String.valueOf(o1).compareTo(String.valueOf(o2)));
@@ -1050,7 +1050,7 @@ public class TestIntervalFaceting extends SolrTestCaseJ4 {
   private void assertIntervalKey(
       String fieldName, String intervalStr, String expectedKey, String... params)
       throws SyntaxError {
-    assert (params.length & 1) == 0 : "Params must have an even number of elements";
+    assertEquals("Params must have an even number of elements", 0, (params.length & 1));
     SchemaField f = h.getCore().getLatestSchema().getField(fieldName);
     ModifiableSolrParams solrParams = new ModifiableSolrParams();
     for (int i = 0; i < params.length - 1; ) {
@@ -1612,7 +1612,7 @@ public class TestIntervalFaceting extends SolrTestCaseJ4 {
 
   private void assertIntervalQuery(
       String field, String query, int resultCount, String... intervals) {
-    assert (intervals.length & 1) == 0;
+    assertEquals(0, (intervals.length & 1));
     int idx = 0;
     String[] params = new String[intervals.length + 6];
     params[idx++] = "q";
diff --git a/solr/core/src/test/org/apache/solr/request/macro/TestMacroExpander.java b/solr/core/src/test/org/apache/solr/request/macro/TestMacroExpander.java
index 680b85985b5..a02c400cce8 100644
--- a/solr/core/src/test/org/apache/solr/request/macro/TestMacroExpander.java
+++ b/solr/core/src/test/org/apache/solr/request/macro/TestMacroExpander.java
@@ -108,7 +108,7 @@ public class TestMacroExpander extends SolrTestCase {
         "q=popularity:[ " + expandedLow + " TO " + expandedHigh + " ]",
         meSkipOnMissingParams.expand(testQuery));
     if (testParams.size() < 2) { // at least one of the two parameters missing
-      assertEquals(null, meFailOnMissingParams.expand(testQuery));
+      assertNull(meFailOnMissingParams.expand(testQuery));
     }
   }
 
diff --git a/solr/core/src/test/org/apache/solr/response/TestRetrieveFieldsOptimizer.java b/solr/core/src/test/org/apache/solr/response/TestRetrieveFieldsOptimizer.java
index 79b4ce3765a..66c4f80edb6 100644
--- a/solr/core/src/test/org/apache/solr/response/TestRetrieveFieldsOptimizer.java
+++ b/solr/core/src/test/org/apache/solr/response/TestRetrieveFieldsOptimizer.java
@@ -21,7 +21,6 @@ import static org.apache.lucene.tests.util.LuceneTestCase.random;
 import static org.apache.solr.search.SolrReturnFields.FIELD_SOURCES.ALL_FROM_DV;
 import static org.apache.solr.search.SolrReturnFields.FIELD_SOURCES.ALL_FROM_STORED;
 import static org.apache.solr.search.SolrReturnFields.FIELD_SOURCES.MIXED_SOURCES;
-import static org.junit.Assert.fail;
 
 import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
 import java.io.ByteArrayInputStream;
@@ -616,7 +615,7 @@ class RetrieveField {
         break;
 
       default:
-        fail("Found no case for field " + name + " type " + type);
+        SolrTestCaseJ4.fail("Found no case for field " + name + " type " + type);
         break;
     }
     // There are tricky cases with multiValued fields that are sometimes fetched from docValues that
@@ -677,7 +676,7 @@ class RetrieveField {
         break;
 
       default:
-        fail("Found no case for field " + name + " type " + type);
+        SolrTestCaseJ4.fail("Found no case for field " + name + " type " + type);
         break;
     }
   }
diff --git a/solr/core/src/test/org/apache/solr/response/TestSolrQueryResponse.java b/solr/core/src/test/org/apache/solr/response/TestSolrQueryResponse.java
index 060a6f9b320..3d6fbe46e57 100644
--- a/solr/core/src/test/org/apache/solr/response/TestSolrQueryResponse.java
+++ b/solr/core/src/test/org/apache/solr/response/TestSolrQueryResponse.java
@@ -79,7 +79,7 @@ public class TestSolrQueryResponse extends SolrTestCase {
   @Test
   public void testResponse() {
     final SolrQueryResponse response = new SolrQueryResponse();
-    assertEquals("response initial value", null, response.getResponse());
+    assertNull("response initial value", response.getResponse());
     final Object newValue =
         (random().nextBoolean() ? (random().nextBoolean() ? "answer" : Integer.valueOf(42)) : null);
     response.addResponse(newValue);
@@ -278,20 +278,20 @@ public class TestSolrQueryResponse extends SolrTestCase {
   @Test
   public void testResponseHeader() {
     final SolrQueryResponse response = new SolrQueryResponse();
-    assertEquals("responseHeader initially present", null, response.getResponseHeader());
+    assertNull("responseHeader initially present", response.getResponseHeader());
     final NamedList<Object> newValue = new SimpleOrderedMap<>();
     newValue.add("key1", "value1");
     response.add("key2", "value2");
     response.addResponseHeader(newValue);
     assertEquals("responseHeader new value", newValue, response.getResponseHeader());
     response.removeResponseHeader();
-    assertEquals("responseHeader removed value", null, response.getResponseHeader());
+    assertNull("responseHeader removed value", response.getResponseHeader());
   }
 
   @Test
   public void testHttpCaching() {
     final SolrQueryResponse response = new SolrQueryResponse();
-    assertEquals("httpCaching initial value", true, response.isHttpCaching());
+    assertTrue("httpCaching initial value", response.isHttpCaching());
     final boolean newValue = random().nextBoolean();
     response.setHttpCaching(newValue);
     assertEquals("httpCaching new value", newValue, response.isHttpCaching());
diff --git a/solr/core/src/test/org/apache/solr/response/transform/TestSubQueryTransformer.java b/solr/core/src/test/org/apache/solr/response/transform/TestSubQueryTransformer.java
index 9fa02edf51f..40091a7bfba 100644
--- a/solr/core/src/test/org/apache/solr/response/transform/TestSubQueryTransformer.java
+++ b/solr/core/src/test/org/apache/solr/response/transform/TestSubQueryTransformer.java
@@ -661,7 +661,7 @@ public class TestSubQueryTransformer extends SolrTestCaseJ4 {
         for (int deptNum : new int[] {0, deptMultiplier - 1}) {
           SolrDocument deptDoc = subDoc.get(deptNum);
           Object expectedDept = (subResult.equals("depts") ? engText : engId);
-          assertTrue("" + expectedDept + " equals to " + deptDoc, expectedDept.equals(deptDoc));
+          assertEquals("" + expectedDept + " equals to " + deptDoc, expectedDept, deptDoc);
         }
       }
     }
diff --git a/solr/core/src/test/org/apache/solr/schema/ChangedSchemaMergeTest.java b/solr/core/src/test/org/apache/solr/schema/ChangedSchemaMergeTest.java
index 7906b6399ed..6dbc2b2111e 100644
--- a/solr/core/src/test/org/apache/solr/schema/ChangedSchemaMergeTest.java
+++ b/solr/core/src/test/org/apache/solr/schema/ChangedSchemaMergeTest.java
@@ -133,7 +133,7 @@ public class ChangedSchemaMergeTest extends SolrTestCaseJ4 {
 
       assertSimilarity(changed, simfac2);
       // sanity check our sanity check
-      assertFalse("test is broken: both simfacs are the same", simfac1.equals(simfac2));
+      assertNotEquals("test is broken: both simfacs are the same", simfac1, simfac2);
 
       addDoc(changed, "id", "1", "text", "some stuff without which");
       addDoc(changed, "id", "5", "text", "some stuff without which");
diff --git a/solr/core/src/test/org/apache/solr/schema/CopyFieldTest.java b/solr/core/src/test/org/apache/solr/schema/CopyFieldTest.java
index 81767b3ec44..a09c5003d36 100644
--- a/solr/core/src/test/org/apache/solr/schema/CopyFieldTest.java
+++ b/solr/core/src/test/org/apache/solr/schema/CopyFieldTest.java
@@ -198,30 +198,32 @@ public class CopyFieldTest extends SolrTestCaseJ4 {
         "schema should contain explicit field 'sku2'", schema.getFields().containsKey("sku2"));
     assertNull("'sku*' should not be (or match) a dynamic field", schema.getDynamicPattern("sku*"));
 
-    assertTrue(
-        "schema should contain dynamic field '*_s'", schema.getDynamicPattern("*_s").equals("*_s"));
+    assertEquals(
+        "schema should contain dynamic field '*_s'", "*_s", schema.getDynamicPattern("*_s"));
 
     final String subsetPattern = "*_dest_sub_s";
     final String dynamicPattern1 = schema.getDynamicPattern(subsetPattern);
-    assertTrue(
+    assertEquals(
         "'"
             + subsetPattern
             + "' should match dynamic field '*_s', but instead matches '"
             + dynamicPattern1
             + "'",
-        dynamicPattern1.equals("*_s"));
+        "*_s",
+        dynamicPattern1);
 
     final String dest_sub_no_ast_s = "dest_sub_no_ast_s";
     assertFalse(
         schema.getFields().containsKey(dest_sub_no_ast_s)); // Should not be an explicit field
     final String dynamicPattern2 = schema.getDynamicPattern(dest_sub_no_ast_s);
-    assertTrue(
+    assertEquals(
         "'"
             + dest_sub_no_ast_s
             + "' should match dynamic field '*_s', but instead matches '"
             + dynamicPattern2
             + "'",
-        dynamicPattern2.equals("*_s"));
+        "*_s",
+        dynamicPattern2);
 
     assertU(adoc("id", "5", "sku1", "10-1839ACX-93", "sku2", "AAM46"));
     assertU(commit());
@@ -270,8 +272,8 @@ public class CopyFieldTest extends SolrTestCaseJ4 {
         "'testing123_*' should not be (or match) a dynamic or explicit field",
         schema.getFieldOrNull("testing123_*"));
 
-    assertTrue(
-        "schema should contain dynamic field '*_s'", schema.getDynamicPattern("*_s").equals("*_s"));
+    assertEquals(
+        "schema should contain dynamic field '*_s'", "*_s", schema.getDynamicPattern("*_s"));
 
     assertU(adoc("id", "5", "sku1", "10-1839ACX-93", "testing123_s", "AAM46"));
     assertU(commit());
diff --git a/solr/core/src/test/org/apache/solr/schema/DenseVectorFieldTest.java b/solr/core/src/test/org/apache/solr/schema/DenseVectorFieldTest.java
index eb84ee237d1..46f3541551f 100644
--- a/solr/core/src/test/org/apache/solr/schema/DenseVectorFieldTest.java
+++ b/solr/core/src/test/org/apache/solr/schema/DenseVectorFieldTest.java
@@ -24,7 +24,6 @@ import org.apache.solr.common.SolrException;
 import org.apache.solr.common.SolrInputDocument;
 import org.apache.solr.core.AbstractBadConfigTestBase;
 import org.hamcrest.MatcherAssert;
-import org.junit.Assert;
 import org.junit.Test;
 
 public class DenseVectorFieldTest extends AbstractBadConfigTestBase {
@@ -167,7 +166,7 @@ public class DenseVectorFieldTest extends AbstractBadConfigTestBase {
   @Test
   public void parseVector_NotAList_shouldThrowException() {
     RuntimeException thrown =
-        Assert.assertThrows(
+        assertThrows(
             "Single string value should throw an exception",
             SolrException.class,
             () -> {
@@ -180,7 +179,7 @@ public class DenseVectorFieldTest extends AbstractBadConfigTestBase {
                 + " The expected format is an array :'[f1,f2..f3]' where each element f is a float"));
 
     thrown =
-        Assert.assertThrows(
+        assertThrows(
             "Single float value should throw an exception",
             SolrException.class,
             () -> {
@@ -198,7 +197,7 @@ public class DenseVectorFieldTest extends AbstractBadConfigTestBase {
     toTest = new DenseVectorField(3);
 
     RuntimeException thrown =
-        Assert.assertThrows(
+        assertThrows(
             "Incorrect elements should throw an exception",
             SolrException.class,
             () -> {
@@ -217,7 +216,7 @@ public class DenseVectorFieldTest extends AbstractBadConfigTestBase {
     toTest = new DenseVectorField(3);
 
     RuntimeException thrown =
-        Assert.assertThrows(
+        assertThrows(
             "Incorrect vector dimension should throw an exception",
             SolrException.class,
             () -> {
@@ -234,7 +233,7 @@ public class DenseVectorFieldTest extends AbstractBadConfigTestBase {
     toTest = new DenseVectorField(3);
 
     RuntimeException thrown =
-        Assert.assertThrows(
+        assertThrows(
             "Incorrect elements should throw an exception",
             SolrException.class,
             () -> {
diff --git a/solr/core/src/test/org/apache/solr/schema/OpenExchangeRatesOrgProviderTest.java b/solr/core/src/test/org/apache/solr/schema/OpenExchangeRatesOrgProviderTest.java
index 17a2a7b7ef1..d38e21aea09 100644
--- a/solr/core/src/test/org/apache/solr/schema/OpenExchangeRatesOrgProviderTest.java
+++ b/solr/core/src/test/org/apache/solr/schema/OpenExchangeRatesOrgProviderTest.java
@@ -107,6 +107,6 @@ public class OpenExchangeRatesOrgProviderTest extends SolrTestCaseJ4 {
   @Test(expected = SolrException.class)
   public void testNoInit() {
     oerp.getExchangeRate("ABC", "DEF");
-    assertTrue("Should have thrown exception if not initialized", false);
+    fail("Should have thrown exception if not initialized");
   }
 }
diff --git a/solr/core/src/test/org/apache/solr/schema/PolyFieldTest.java b/solr/core/src/test/org/apache/solr/schema/PolyFieldTest.java
index 14401db3646..1be999ab371 100644
--- a/solr/core/src/test/org/apache/solr/schema/PolyFieldTest.java
+++ b/solr/core/src/test/org/apache/solr/schema/PolyFieldTest.java
@@ -113,7 +113,7 @@ public class PolyFieldTest extends SolrTestCaseJ4 {
     assertNotNull(home);
     try {
       fields = home.createFields("35.0,foo");
-      assertTrue(false);
+      fail();
     } catch (Exception e) {
       //
     }
diff --git a/solr/core/src/test/org/apache/solr/schema/PreAnalyzedFieldTest.java b/solr/core/src/test/org/apache/solr/schema/PreAnalyzedFieldTest.java
index b33b68ac0c1..69d7b19a51b 100644
--- a/solr/core/src/test/org/apache/solr/schema/PreAnalyzedFieldTest.java
+++ b/solr/core/src/test/org/apache/solr/schema/PreAnalyzedFieldTest.java
@@ -221,7 +221,7 @@ public class PreAnalyzedFieldTest extends SolrTestCaseJ4 {
     CharTermAttribute termAttr = stream.addAttribute(CharTermAttribute.class);
     stream.reset();
     while (stream.incrementToken()) {
-      assertFalse("zero-length token", termAttr.length() == 0);
+      assertNotEquals("zero-length token", 0, termAttr.length());
     }
     stream.end();
     stream.close();
diff --git a/solr/core/src/test/org/apache/solr/schema/SchemaVersionSpecificBehaviorTest.java b/solr/core/src/test/org/apache/solr/schema/SchemaVersionSpecificBehaviorTest.java
index 91cbfab85a5..d0e54314777 100644
--- a/solr/core/src/test/org/apache/solr/schema/SchemaVersionSpecificBehaviorTest.java
+++ b/solr/core/src/test/org/apache/solr/schema/SchemaVersionSpecificBehaviorTest.java
@@ -71,10 +71,8 @@ public class SchemaVersionSpecificBehaviorTest extends SolrTestCaseJ4 {
               field.useDocValuesAsStored());
 
           // uninvertable defaults to true (for now)
-          assertEquals(
-              f + " field's type has wrong uninvertable for ver=" + ver,
-              true,
-              field.isUninvertible());
+          assertTrue(
+              f + " field's type has wrong uninvertable for ver=" + ver, field.isUninvertible());
         }
 
         // regardless of version, explicit multiValued values on field or type
diff --git a/solr/core/src/test/org/apache/solr/schema/TestPointFields.java b/solr/core/src/test/org/apache/solr/schema/TestPointFields.java
index e930e00f8e9..64ffb41c072 100644
--- a/solr/core/src/test/org/apache/solr/schema/TestPointFields.java
+++ b/solr/core/src/test/org/apache/solr/schema/TestPointFields.java
@@ -3147,9 +3147,10 @@ public class TestPointFields extends SolrTestCaseJ4 {
         toStringArray(getRandomInstants(2, false).stream().sorted().collect(Collectors.toList()));
     String[] min = new String[] {ints[0], longs[0], doubles[0], floats[0], dates[0]};
     String[] max = new String[] {ints[1], longs[1], doubles[1], floats[1], dates[1]};
-    assert fieldTypeNames.length == fieldTypes.length
-        && fieldTypeNames.length == max.length
-        && fieldTypeNames.length == min.length;
+    assertTrue(
+        fieldTypeNames.length == fieldTypes.length
+            && fieldTypeNames.length == max.length
+            && fieldTypeNames.length == min.length);
     for (int i = 0; i < fieldTypeNames.length; i++) {
       SchemaField fieldIndexed = h.getCore().getLatestSchema().getField("foo_" + fieldTypeNames[i]);
       SchemaField fieldIndexedAndDv =
@@ -3264,7 +3265,7 @@ public class TestPointFields extends SolrTestCaseJ4 {
   }
 
   private List<Integer> getRandomInts(int length, boolean missingVals, int boundPosNeg) {
-    assert boundPosNeg > 0L;
+    assertTrue(boundPosNeg > 0L);
     return getRandomList(
         length,
         missingVals,
@@ -3276,7 +3277,7 @@ public class TestPointFields extends SolrTestCaseJ4 {
   }
 
   private List<Long> getRandomLongs(int length, boolean missingVals, long boundPosNeg) {
-    assert boundPosNeg > 0L;
+    assertTrue(boundPosNeg > 0L);
     return getRandomList(
         length,
         missingVals,
@@ -3300,7 +3301,7 @@ public class TestPointFields extends SolrTestCaseJ4 {
   }
 
   private String[] getSequentialStringArrayWithDates(int length) {
-    assert length < 60;
+    assertTrue(length < 60);
     String[] arr = new String[length];
     for (int i = 0; i < length; i++) {
       arr[i] = String.format(Locale.ROOT, "1995-12-11T19:59:%02dZ", i);
@@ -3317,7 +3318,7 @@ public class TestPointFields extends SolrTestCaseJ4 {
   }
 
   private void doTestFieldNotIndexed(String field, String[] values) throws IOException {
-    assert values.length == 10;
+    assertTrue(values.length == 10);
     // test preconditions
     SchemaField sf = h.getCore().getLatestSchema().getField(field);
     assertFalse("Field should be indexed=false", sf.indexed());
@@ -3411,8 +3412,9 @@ public class TestPointFields extends SolrTestCaseJ4 {
 
   private void doTestPointFieldReturn(String field, String type, String[] values) {
     SchemaField sf = h.getCore().getLatestSchema().getField(field);
-    assert sf.stored() || (sf.hasDocValues() && sf.useDocValuesAsStored())
-        : "Unexpected field definition for " + field;
+    assertTrue(
+        "Unexpected field definition for " + field,
+        sf.stored() || (sf.hasDocValues() && sf.useDocValuesAsStored()));
     for (int i = 0; i < values.length; i++) {
       assertU(adoc("id", String.valueOf(i), field, values[i]));
     }
@@ -3627,7 +3629,7 @@ public class TestPointFields extends SolrTestCaseJ4 {
 
   private void doTestPointFieldFacetField(
       String nonDocValuesField, String docValuesField, String[] numbers) {
-    assert numbers != null && numbers.length == 10;
+    assertTrue(numbers != null && numbers.length == 10);
 
     assertFalse(h.getCore().getLatestSchema().getField(docValuesField).multiValued());
     assertTrue(h.getCore().getLatestSchema().getField(docValuesField).hasDocValues());
@@ -4009,7 +4011,7 @@ public class TestPointFields extends SolrTestCaseJ4 {
     final String MATCH_ONE = "//*[@numFound='" + (searchable ? "1" : "0") + "']";
     final String MATCH_TWO = "//*[@numFound='" + (searchable ? "2" : "0") + "']";
 
-    assert numbers != null && numbers.length == 20;
+    assertTrue(numbers != null && numbers.length == 20);
     assertTrue(h.getCore().getLatestSchema().getField(fieldName).multiValued());
     assertTrue(h.getCore().getLatestSchema().getField(fieldName).getType() instanceof PointField);
     for (int i = 0; i < 10; i++) {
@@ -4057,7 +4059,7 @@ public class TestPointFields extends SolrTestCaseJ4 {
   }
 
   private void doTestPointFieldMultiValuedReturn(String fieldName, String type, String[] numbers) {
-    assert numbers != null && numbers.length == 20;
+    assertTrue(numbers != null && numbers.length == 20);
     assertTrue(h.getCore().getLatestSchema().getField(fieldName).multiValued());
     assertTrue(h.getCore().getLatestSchema().getField(fieldName).getType() instanceof PointField);
     for (int i = 9; i >= 0; i--) {
@@ -4116,7 +4118,7 @@ public class TestPointFields extends SolrTestCaseJ4 {
 
   private void doTestPointFieldMultiValuedRangeQuery(
       String fieldName, String type, String[] numbers) {
-    assert numbers != null && numbers.length == 20;
+    assertTrue(numbers != null && numbers.length == 20);
     SchemaField sf = h.getCore().getLatestSchema().getField(fieldName);
     assertTrue(sf.multiValued());
     assertTrue(sf.getType() instanceof PointField);
@@ -4279,7 +4281,7 @@ public class TestPointFields extends SolrTestCaseJ4 {
 
   private void doTestPointFieldMultiValuedFacetField(
       String nonDocValuesField, String dvFieldName, String[] numbers) {
-    assert numbers != null && numbers.length == 20;
+    assertTrue(numbers != null && numbers.length == 20);
     assertTrue(h.getCore().getLatestSchema().getField(dvFieldName).multiValued());
     assertTrue(h.getCore().getLatestSchema().getField(dvFieldName).hasDocValues());
     assertTrue(h.getCore().getLatestSchema().getField(dvFieldName).getType() instanceof PointField);
@@ -4590,7 +4592,7 @@ public class TestPointFields extends SolrTestCaseJ4 {
 
   private void doTestPointMultiValuedFunctionQuery(
       String nonDocValuesField, String docValuesField, String[] numbers) {
-    assert numbers != null && numbers.length == 20;
+    assertTrue(numbers != null && numbers.length == 20);
     for (int i = 0; i < 10; i++) {
       assertU(
           adoc(
@@ -4804,7 +4806,7 @@ public class TestPointFields extends SolrTestCaseJ4 {
    * @param values list of values in ascending order
    */
   private <T extends Comparable<T>> void doTestPointFieldSort(String field, List<T> values) {
-    assert values != null && 2 <= values.size();
+    assertTrue(values != null && 2 <= values.size());
 
     final List<SolrInputDocument> docs = new ArrayList<>(values.size());
     final String[] ascXpathChecks = new String[values.size() + 1];
@@ -5749,34 +5751,34 @@ public class TestPointFields extends SolrTestCaseJ4 {
                     PointValues.size(ir, field));
               }
               if (ignoredField) {
-                assertTrue(
+                assertEquals(
                     "Field " + field + " should not have docValues",
-                    DocValues.getSortedNumeric(leafReaderForCheckingDVs, field).nextDoc()
-                        == DocIdSetIterator.NO_MORE_DOCS);
-                assertTrue(
+                    DocIdSetIterator.NO_MORE_DOCS,
+                    DocValues.getSortedNumeric(leafReaderForCheckingDVs, field).nextDoc());
+                assertEquals(
                     "Field " + field + " should not have docValues",
-                    DocValues.getNumeric(leafReaderForCheckingDVs, field).nextDoc()
-                        == DocIdSetIterator.NO_MORE_DOCS);
-                assertTrue(
+                    DocIdSetIterator.NO_MORE_DOCS,
+                    DocValues.getNumeric(leafReaderForCheckingDVs, field).nextDoc());
+                assertEquals(
                     "Field " + field + " should not have docValues",
-                    DocValues.getSorted(leafReaderForCheckingDVs, field).nextDoc()
-                        == DocIdSetIterator.NO_MORE_DOCS);
-                assertTrue(
+                    DocIdSetIterator.NO_MORE_DOCS,
+                    DocValues.getSorted(leafReaderForCheckingDVs, field).nextDoc());
+                assertEquals(
                     "Field " + field + " should not have docValues",
-                    DocValues.getBinary(leafReaderForCheckingDVs, field).nextDoc()
-                        == DocIdSetIterator.NO_MORE_DOCS);
+                    DocIdSetIterator.NO_MORE_DOCS,
+                    DocValues.getBinary(leafReaderForCheckingDVs, field).nextDoc());
               } else {
                 if (sf.hasDocValues()) {
                   if (sf.multiValued()) {
-                    assertFalse(
+                    assertNotEquals(
                         "Field " + field + " should have docValues",
-                        DocValues.getSortedNumeric(leafReaderForCheckingDVs, field).nextDoc()
-                            == DocIdSetIterator.NO_MORE_DOCS);
+                        DocIdSetIterator.NO_MORE_DOCS,
+                        DocValues.getSortedNumeric(leafReaderForCheckingDVs, field).nextDoc());
                   } else {
-                    assertFalse(
+                    assertNotEquals(
                         "Field " + field + " should have docValues",
-                        DocValues.getNumeric(leafReaderForCheckingDVs, field).nextDoc()
-                            == DocIdSetIterator.NO_MORE_DOCS);
+                        DocIdSetIterator.NO_MORE_DOCS,
+                        DocValues.getNumeric(leafReaderForCheckingDVs, field).nextDoc());
                   }
                 } else {
                   expectThrows(
diff --git a/solr/core/src/test/org/apache/solr/schema/TestSchemalessBufferedUpdates.java b/solr/core/src/test/org/apache/solr/schema/TestSchemalessBufferedUpdates.java
index d2aa64899b9..6e35ea5b11e 100644
--- a/solr/core/src/test/org/apache/solr/schema/TestSchemalessBufferedUpdates.java
+++ b/solr/core/src/test/org/apache/solr/schema/TestSchemalessBufferedUpdates.java
@@ -116,7 +116,7 @@ public class TestSchemalessBufferedUpdates extends SolrTestCaseJ4 {
 
       Future<UpdateLog.RecoveryInfo> rinfoFuture = ulog.applyBufferedUpdates();
 
-      assertTrue(rinfoFuture != null);
+      assertNotNull(rinfoFuture);
 
       assertEquals(UpdateLog.State.APPLYING_BUFFERED, ulog.getState());
 
diff --git a/solr/core/src/test/org/apache/solr/schema/TestSortableTextField.java b/solr/core/src/test/org/apache/solr/schema/TestSortableTextField.java
index 5b5e0d763c4..a326edbcf1c 100644
--- a/solr/core/src/test/org/apache/solr/schema/TestSortableTextField.java
+++ b/solr/core/src/test/org/apache/solr/schema/TestSortableTextField.java
@@ -430,16 +430,14 @@ public class TestSortableTextField extends SolrTestCaseJ4 {
     for (String n : Arrays.asList("keyword_stxt", "whitespace_max0_stxt", "whitespace_max6_stxt")) {
       {
         FieldType ft = h.getCore().getLatestSchema().getFieldTypeByName(n);
-        assertEquals(
+        assertFalse(
             "type " + ft.getTypeName() + " should not default to useDocValuesAsStored",
-            false,
             ft.useDocValuesAsStored());
       }
       {
         SchemaField sf = h.getCore().getLatestSchema().getField(n);
-        assertEquals(
+        assertFalse(
             "field " + sf.getName() + " should not default to useDocValuesAsStored",
-            false,
             sf.useDocValuesAsStored());
       }
     }
@@ -451,9 +449,8 @@ public class TestSortableTextField extends SolrTestCaseJ4 {
       if (entry.getKey().endsWith("_has_usedvs")) {
         num_types_found++;
         FieldType ft = entry.getValue();
-        assertEquals(
+        assertTrue(
             "type " + ft.getTypeName() + " has unexpected useDocValuesAsStored value",
-            true,
             ft.useDocValuesAsStored());
       }
     }
diff --git a/solr/core/src/test/org/apache/solr/search/MergeStrategyTest.java b/solr/core/src/test/org/apache/solr/search/MergeStrategyTest.java
index 1427f73b7e6..0cde4d58e28 100644
--- a/solr/core/src/test/org/apache/solr/search/MergeStrategyTest.java
+++ b/solr/core/src/test/org/apache/solr/search/MergeStrategyTest.java
@@ -167,9 +167,9 @@ public class MergeStrategyTest extends BaseDistributedSearchTestCase {
 
     MergeStrategy[] merges = {m1, m2, m3};
     Arrays.sort(merges, MergeStrategy.MERGE_COMP);
-    assert (merges[0].getCost() == 1);
-    assert (merges[1].getCost() == 50);
-    assert (merges[2].getCost() == 100);
+    assertEquals(1, merges[0].getCost());
+    assertEquals(50, merges[1].getCost());
+    assertEquals(100, merges[2].getCost());
   }
 
   private void assertOrder(QueryResponse rsp, String... docs) throws Exception {
diff --git a/solr/core/src/test/org/apache/solr/search/RankQueryTestPlugin.java b/solr/core/src/test/org/apache/solr/search/RankQueryTestPlugin.java
index fa0def076d5..1cbaee0a957 100644
--- a/solr/core/src/test/org/apache/solr/search/RankQueryTestPlugin.java
+++ b/solr/core/src/test/org/apache/solr/search/RankQueryTestPlugin.java
@@ -47,6 +47,7 @@ import org.apache.lucene.search.TotalHits;
 import org.apache.lucene.search.Weight;
 import org.apache.lucene.util.InPlaceMergeSorter;
 import org.apache.lucene.util.PriorityQueue;
+import org.apache.solr.SolrTestCase;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.common.SolrDocument;
 import org.apache.solr.common.SolrDocumentList;
@@ -664,8 +665,10 @@ public class RankQueryTestPlugin extends QParserPlugin {
 
         final String sortFieldName = sortField.getField();
         final String valueFieldName = sortFieldValues.getName(marshalledFieldNum);
-        assert sortFieldName.equals(valueFieldName)
-            : "sortFieldValues name key does not match expected SortField.getField";
+        SolrTestCase.assertEquals(
+            "sortFieldValues name key does not match expected SortField.getField",
+            sortFieldName,
+            valueFieldName);
 
         List sortVals = (List) sortFieldValues.getVal(marshalledFieldNum);
 
diff --git a/solr/core/src/test/org/apache/solr/search/ReturnFieldsTest.java b/solr/core/src/test/org/apache/solr/search/ReturnFieldsTest.java
index 568095d5421..0db966e01f3 100644
--- a/solr/core/src/test/org/apache/solr/search/ReturnFieldsTest.java
+++ b/solr/core/src/test/org/apache/solr/search/ReturnFieldsTest.java
@@ -572,12 +572,13 @@ public class ReturnFieldsTest extends SolrTestCaseJ4 {
       int offset = TestUtil.nextInt(r, 0, WHITESPACE_CHARACTERS.length - 1);
       char c = WHITESPACE_CHARACTERS[offset];
       // sanity check
-      assert Character.isWhitespace(c)
-          : String.format(
+      assertTrue(
+          String.format(
               Locale.ENGLISH,
               "Not really whitespace? WHITESPACE_CHARACTERS[%d] is '\\u%04X'",
               offset,
-              (int) c);
+              (int) c),
+          Character.isWhitespace(c));
       out.append(c);
     }
     return out.toString();
diff --git a/solr/core/src/test/org/apache/solr/search/SolrIndexSearcherTest.java b/solr/core/src/test/org/apache/solr/search/SolrIndexSearcherTest.java
index 2736ec78ba4..2a13531e345 100644
--- a/solr/core/src/test/org/apache/solr/search/SolrIndexSearcherTest.java
+++ b/solr/core/src/test/org/apache/solr/search/SolrIndexSearcherTest.java
@@ -451,7 +451,7 @@ public class SolrIndexSearcherTest extends SolrTestCaseJ4 {
 
     public MockPostFilter(int maxDocsToCollect, int cost, ScoreMode scoreMode) {
       super(new Term("foo", "bar")); // The term won't really be used. just the collector
-      assert cost > 100;
+      assertTrue(cost > 100);
       this.cost = cost;
       this.maxDocsToCollect = maxDocsToCollect;
       this.scoreMode = scoreMode;
diff --git a/solr/core/src/test/org/apache/solr/search/SortSpecParsingTest.java b/solr/core/src/test/org/apache/solr/search/SortSpecParsingTest.java
index 613f267356d..dfe4ff6b313 100644
--- a/solr/core/src/test/org/apache/solr/search/SortSpecParsingTest.java
+++ b/solr/core/src/test/org/apache/solr/search/SortSpecParsingTest.java
@@ -74,14 +74,14 @@ public class SortSpecParsingTest extends SolrTestCaseJ4 {
     flds = sort.getSort();
     assertEquals(flds[0].getType(), SortField.Type.FLOAT);
     assertEquals(flds[0].getField(), "weight");
-    assertEquals(flds[0].getReverse(), true);
+    assertTrue(flds[0].getReverse());
 
     spec = doParseSortSpec("weight dEsC", req);
     flds = spec.getSort().getSort();
     assertEquals(1, flds.length);
     assertEquals(flds[0].getType(), SortField.Type.FLOAT);
     assertEquals(flds[0].getField(), "weight");
-    assertEquals(flds[0].getReverse(), true);
+    assertTrue(flds[0].getReverse());
     assertEquals(1, spec.getSchemaFields().size());
     assertNotNull(spec.getSchemaFields().get(0));
     assertEquals("weight", spec.getSchemaFields().get(0).getName());
@@ -90,27 +90,27 @@ public class SortSpecParsingTest extends SolrTestCaseJ4 {
     flds = sort.getSort();
     assertEquals(flds[0].getType(), SortField.Type.FLOAT);
     assertEquals(flds[0].getField(), "weight");
-    assertEquals(flds[0].getReverse(), true);
+    assertTrue(flds[0].getReverse());
     assertEquals(flds[1].getType(), SortField.Type.LONG);
     assertEquals(flds[1].getField(), "bday");
-    assertEquals(flds[1].getReverse(), false);
+    assertFalse(flds[1].getReverse());
     // order aliases
     sort = doParseSortSpec("weight top,bday asc", req).getSort();
     flds = sort.getSort();
     assertEquals(flds[0].getType(), SortField.Type.FLOAT);
     assertEquals(flds[0].getField(), "weight");
-    assertEquals(flds[0].getReverse(), true);
+    assertTrue(flds[0].getReverse());
     assertEquals(flds[1].getType(), SortField.Type.LONG);
     assertEquals(flds[1].getField(), "bday");
-    assertEquals(flds[1].getReverse(), false);
+    assertFalse(flds[1].getReverse());
     sort = doParseSortSpec("weight top,bday bottom", req).getSort();
     flds = sort.getSort();
     assertEquals(flds[0].getType(), SortField.Type.FLOAT);
     assertEquals(flds[0].getField(), "weight");
-    assertEquals(flds[0].getReverse(), true);
+    assertTrue(flds[0].getReverse());
     assertEquals(flds[1].getType(), SortField.Type.LONG);
     assertEquals(flds[1].getField(), "bday");
-    assertEquals(flds[1].getReverse(), false);
+    assertFalse(flds[1].getReverse());
 
     // test weird spacing
     sort = doParseSortSpec("weight         DESC,            bday         asc", req).getSort();
@@ -237,40 +237,40 @@ public class SortSpecParsingTest extends SolrTestCaseJ4 {
     // test some bad vals
     try {
       sort = doParseSortSpec("weight, desc", req).getSort();
-      assertTrue(false);
+      fail();
     } catch (SolrException e) {
       // expected
     }
     try {
       sort = doParseSortSpec("w", req).getSort();
-      assertTrue(false);
+      fail();
     } catch (SolrException e) {
       // expected
     }
     try {
       sort = doParseSortSpec("weight desc, bday", req).getSort();
-      assertTrue(false);
+      fail();
     } catch (SolrException e) {
     }
 
     try {
       // bad number of commas
       sort = SortSpecParsing.parseSortSpec("pow(weight,,2) desc, bday asc", req).getSort();
-      assertTrue(false);
+      fail();
     } catch (SolrException e) {
     }
 
     try {
       // bad function
       sort = SortSpecParsing.parseSortSpec("pow() desc, bday asc", req).getSort();
-      assertTrue(false);
+      fail();
     } catch (SolrException e) {
     }
 
     try {
       // bad number of parens
       sort = SortSpecParsing.parseSortSpec("pow((weight,2) desc, bday asc", req).getSort();
-      assertTrue(false);
+      fail();
     } catch (SolrException e) {
     }
 
diff --git a/solr/core/src/test/org/apache/solr/search/TestCaffeineCache.java b/solr/core/src/test/org/apache/solr/search/TestCaffeineCache.java
index 30758369373..87ff29d5e6a 100644
--- a/solr/core/src/test/org/apache/solr/search/TestCaffeineCache.java
+++ b/solr/core/src/test/org/apache/solr/search/TestCaffeineCache.java
@@ -65,13 +65,13 @@ public class TestCaffeineCache extends SolrTestCase {
     }
     assertEquals("15", lfuCache.get(15));
     assertEquals("75", lfuCache.get(75));
-    assertEquals(null, lfuCache.get(110));
+    assertNull(lfuCache.get(110));
     Map<String, Object> nl = lfuCache.getMetricsMap().getValue();
     assertEquals(3L, nl.get("lookups"));
     assertEquals(2L, nl.get("hits"));
     assertEquals(101L, nl.get("inserts"));
 
-    assertEquals(null, lfuCache.get(1)); // first item put in should be the first out
+    assertNull(lfuCache.get(1)); // first item put in should be the first out
 
     // Test autowarming
     newLFUCache.init(params, initObj, regenerator);
@@ -81,7 +81,7 @@ public class TestCaffeineCache extends SolrTestCase {
     newLFUCache.put(103, "103");
     assertEquals("15", newLFUCache.get(15));
     assertEquals("75", newLFUCache.get(75));
-    assertEquals(null, newLFUCache.get(50));
+    assertNull(newLFUCache.get(50));
     nl = newLFUCache.getMetricsMap().getValue();
     assertEquals(3L, nl.get("lookups"));
     assertEquals(2L, nl.get("hits"));
diff --git a/solr/core/src/test/org/apache/solr/search/TestCollapseQParserPlugin.java b/solr/core/src/test/org/apache/solr/search/TestCollapseQParserPlugin.java
index e0c8cfe22ac..d6e20ed93d6 100644
--- a/solr/core/src/test/org/apache/solr/search/TestCollapseQParserPlugin.java
+++ b/solr/core/src/test/org/apache/solr/search/TestCollapseQParserPlugin.java
@@ -1139,21 +1139,21 @@ public class TestCollapseQParserPlugin extends SolrTestCaseJ4 {
     s = GroupHeadSelector.build(params("max", "foo_s"));
     assertEquals(GroupHeadSelectorType.MAX, s.type);
     assertEquals("foo_s", s.selectorText);
-    assertFalse(s.equals(GroupHeadSelector.build(params("min", "foo_s", "other", "stuff"))));
+    assertNotEquals(s, GroupHeadSelector.build(params("min", "foo_s", "other", "stuff")));
 
     s = GroupHeadSelector.build(params());
     assertEquals(GroupHeadSelectorType.SCORE, s.type);
     assertNotNull(s.selectorText);
     assertEquals(GroupHeadSelector.build(params()), s);
-    assertFalse(s.equals(GroupHeadSelector.build(params("min", "BAR_s"))));
+    assertNotEquals(s, GroupHeadSelector.build(params("min", "BAR_s")));
 
     s = GroupHeadSelector.build(params("sort", "foo_s asc"));
     assertEquals(GroupHeadSelectorType.SORT, s.type);
     assertEquals("foo_s asc", s.selectorText);
     assertEquals(GroupHeadSelector.build(params("sort", "foo_s asc")), s);
-    assertFalse(s.equals(GroupHeadSelector.build(params("sort", "BAR_s asc"))));
-    assertFalse(s.equals(GroupHeadSelector.build(params("min", "BAR_s"))));
-    assertFalse(s.equals(GroupHeadSelector.build(params())));
+    assertNotEquals(s, GroupHeadSelector.build(params("sort", "BAR_s asc")));
+    assertNotEquals(s, GroupHeadSelector.build(params("min", "BAR_s")));
+    assertNotEquals(s, GroupHeadSelector.build(params()));
 
     assertEquals(
         GroupHeadSelector.build(params("sort", "foo_s asc")).hashCode(),
diff --git a/solr/core/src/test/org/apache/solr/search/TestDocSet.java b/solr/core/src/test/org/apache/solr/search/TestDocSet.java
index 1ea09b2d8bf..3583ca385a6 100644
--- a/solr/core/src/test/org/apache/solr/search/TestDocSet.java
+++ b/solr/core/src/test/org/apache/solr/search/TestDocSet.java
@@ -157,7 +157,7 @@ public class TestDocSet extends SolrTestCase {
     DocIterator i1 = d1.iterator();
     DocIterator i2 = d2.iterator();
 
-    assert (i1.hasNext() == i2.hasNext());
+    assertEquals(i1.hasNext(), i2.hasNext());
 
     for (; ; ) {
       boolean b1 = i1.hasNext();
diff --git a/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java b/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java
index b86ca6aa636..98b94d04f2d 100644
--- a/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java
+++ b/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java
@@ -52,7 +52,6 @@ import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.util.BaseTestHarness;
 import org.apache.solr.util.SolrPluginUtils;
 import org.hamcrest.MatcherAssert;
-import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -1518,7 +1517,7 @@ public class TestExtendedDismaxParser extends SolrTestCaseJ4 {
     ExtendedDismaxQParser parser =
         new ExtendedDismaxQParser(query, null, request.getParams(), request);
     List<ExtendedDismaxQParser.Clause> clauses = parser.splitIntoClauses(query, false);
-    Assert.assertEquals(3, clauses.size());
+    assertEquals(3, clauses.size());
     assertClause(clauses.get(0), "\\(", false, true);
     assertClause(clauses.get(1), "foo\nfoo", true, false);
     assertClause(clauses.get(2), "\\)", false, true);
@@ -1527,7 +1526,7 @@ public class TestExtendedDismaxParser extends SolrTestCaseJ4 {
     request = req("q", query, "qf", "cat_s", "defType", "edismax");
     parser = new ExtendedDismaxQParser(query, null, request.getParams(), request);
     clauses = parser.splitIntoClauses(query, false);
-    Assert.assertEquals(5, clauses.size());
+    assertEquals(5, clauses.size());
     assertClause(clauses.get(0), "\\[", false, true, "cat_s");
     assertClause(clauses.get(1), "foo\nfoo", true, false);
     assertClause(clauses.get(2), "TO", true, false);
@@ -1538,7 +1537,7 @@ public class TestExtendedDismaxParser extends SolrTestCaseJ4 {
     request = req("q", query, "qf", "cat_s", "defType", "edismax");
     parser = new ExtendedDismaxQParser(query, null, request.getParams(), request);
     clauses = parser.splitIntoClauses(query, false);
-    Assert.assertEquals(5, clauses.size());
+    assertEquals(5, clauses.size());
     assertClause(clauses.get(0), "\\[", true, true, "cat_s");
     assertClause(clauses.get(1), "foo\nfoo", true, false);
     assertClause(clauses.get(2), "TO", true, false);
@@ -1554,7 +1553,7 @@ public class TestExtendedDismaxParser extends SolrTestCaseJ4 {
 
     parser = new ExtendedDismaxQParser(query, null, request.getParams(), request);
     clauses = parser.splitIntoClauses(query, false);
-    Assert.assertEquals(1, clauses.size());
+    assertEquals(1, clauses.size());
     assertClause(
         clauses.get(0), "\\!\\(\\)\\:\\^\\[\\]\\{\\}\\~\\*\\?\\\"\\+\\-\\\\\\|\\&\\/", false, true);
 
@@ -1563,7 +1562,7 @@ public class TestExtendedDismaxParser extends SolrTestCaseJ4 {
 
     parser = new ExtendedDismaxQParser(query, null, request.getParams(), request);
     clauses = parser.splitIntoClauses(query, false);
-    Assert.assertEquals(1, clauses.size());
+    assertEquals(1, clauses.size());
     assertClause(clauses.get(0), "foo\\/", false, true);
   }
 
@@ -1573,10 +1572,10 @@ public class TestExtendedDismaxParser extends SolrTestCaseJ4 {
       boolean hasWhitespace,
       boolean hasSpecialSyntax,
       String field) {
-    Assert.assertEquals(value, clause.val);
-    Assert.assertEquals(hasWhitespace, clause.hasWhitespace);
-    Assert.assertEquals(hasSpecialSyntax, clause.hasSpecialSyntax);
-    Assert.assertEquals(field, clause.field);
+    assertEquals(value, clause.val);
+    assertEquals(hasWhitespace, clause.hasWhitespace);
+    assertEquals(hasSpecialSyntax, clause.hasSpecialSyntax);
+    assertEquals(field, clause.field);
   }
 
   private static void assertClause(
diff --git a/solr/core/src/test/org/apache/solr/search/TestFilteredDocIdSet.java b/solr/core/src/test/org/apache/solr/search/TestFilteredDocIdSet.java
index c29b28b96c2..153db65f0f7 100644
--- a/solr/core/src/test/org/apache/solr/search/TestFilteredDocIdSet.java
+++ b/solr/core/src/test/org/apache/solr/search/TestFilteredDocIdSet.java
@@ -38,7 +38,6 @@ import org.apache.lucene.search.Weight;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.tests.index.RandomIndexWriter;
 import org.apache.solr.SolrTestCase;
-import org.junit.Assert;
 
 public class TestFilteredDocIdSet extends SolrTestCase {
   public void testFilteredDocIdSet() throws Exception {
@@ -126,7 +125,7 @@ public class TestFilteredDocIdSet extends SolrTestCase {
 
     // First verify the document is searchable.
     IndexSearcher searcher = newSearcher(reader);
-    Assert.assertEquals(1, searcher.search(new MatchAllDocsQuery(), 10).totalHits.value);
+    assertEquals(1, searcher.search(new MatchAllDocsQuery(), 10).totalHits.value);
 
     // Now search w/ a Query which returns a null Scorer
     DocSetQuery f = new DocSetQuery(DocSet.empty());
@@ -136,7 +135,7 @@ public class TestFilteredDocIdSet extends SolrTestCase {
             .add(new MatchAllDocsQuery(), Occur.MUST)
             .add(f, Occur.FILTER)
             .build();
-    Assert.assertEquals(0, searcher.search(filtered, 10).totalHits.value);
+    assertEquals(0, searcher.search(filtered, 10).totalHits.value);
     reader.close();
     dir.close();
   }
@@ -152,7 +151,7 @@ public class TestFilteredDocIdSet extends SolrTestCase {
 
     // First verify the document is searchable.
     IndexSearcher searcher = newSearcher(reader);
-    Assert.assertEquals(1, searcher.search(new MatchAllDocsQuery(), 10).totalHits.value);
+    assertEquals(1, searcher.search(new MatchAllDocsQuery(), 10).totalHits.value);
 
     // Now search w/ a Query which returns a null Scorer
     Query f =
@@ -202,7 +201,7 @@ public class TestFilteredDocIdSet extends SolrTestCase {
             .add(new MatchAllDocsQuery(), Occur.MUST)
             .add(f, Occur.FILTER)
             .build();
-    Assert.assertEquals(0, searcher.search(filtered, 10).totalHits.value);
+    assertEquals(0, searcher.search(filtered, 10).totalHits.value);
     reader.close();
     dir.close();
   }
diff --git a/solr/core/src/test/org/apache/solr/search/TestFiltering.java b/solr/core/src/test/org/apache/solr/search/TestFiltering.java
index d00097a27ee..7d559d4d296 100644
--- a/solr/core/src/test/org/apache/solr/search/TestFiltering.java
+++ b/solr/core/src/test/org/apache/solr/search/TestFiltering.java
@@ -84,7 +84,7 @@ public class TestFiltering extends SolrTestCaseJ4 {
         if (live == null) {
           live = searcher.getLiveDocSet();
         }
-        assertTrue(set == live);
+        assertSame(set, live);
 
         QueryCommand cmd = new QueryCommand();
         cmd.setQuery(QParser.getParser(qstr, null, req).getQuery());
@@ -93,14 +93,14 @@ public class TestFiltering extends SolrTestCaseJ4 {
         QueryResult res = new QueryResult();
         searcher.search(res, cmd);
         set = res.getDocSet();
-        assertTrue(set == live);
+        assertSame(set, live);
 
         cmd.setQuery(QParser.getParser(qstr + " OR id:0", null, req).getQuery());
         cmd.setFilterList(QParser.getParser(qstr + " OR id:1", null, req).getQuery());
         res = new QueryResult();
         searcher.search(res, cmd);
         set = res.getDocSet();
-        assertTrue(set == live);
+        assertSame(set, live);
       }
 
     } finally {
diff --git a/solr/core/src/test/org/apache/solr/search/TestHashQParserPlugin.java b/solr/core/src/test/org/apache/solr/search/TestHashQParserPlugin.java
index 4170bfd3ca1..d8e7ce65808 100644
--- a/solr/core/src/test/org/apache/solr/search/TestHashQParserPlugin.java
+++ b/solr/core/src/test/org/apache/solr/search/TestHashQParserPlugin.java
@@ -194,10 +194,10 @@ public class TestHashQParserPlugin extends SolrTestCaseJ4 {
       }
     }
 
-    assert (set1.size() > 0);
-    assert (set2.size() > 0);
-    assert (set3.size() > 0);
-    assert (set1.size() + set2.size() + set3.size() == set.size());
+    assertTrue(set1.size() > 0);
+    assertTrue(set2.size() > 0);
+    assertTrue(set3.size() > 0);
+    assertTrue(set1.size() + set2.size() + set3.size() == set.size());
     assertNoOverLap(set1, set2);
     assertNoOverLap(set1, set3);
     assertNoOverLap(set2, set3);
@@ -244,9 +244,9 @@ public class TestHashQParserPlugin extends SolrTestCaseJ4 {
       }
     }
 
-    assert (set1.size() > 0);
-    assert (set2.size() > 0);
-    assert (set1.size() + set2.size() == set.size());
+    assertTrue(set1.size() > 0);
+    assertTrue(set2.size() > 0);
+    assertTrue(set1.size() + set2.size() == set.size());
     assertNoOverLap(set1, set2);
 
     // Test with 2 workers and compound partition Key
@@ -291,9 +291,9 @@ public class TestHashQParserPlugin extends SolrTestCaseJ4 {
       }
     }
 
-    assert (set1.size() > 0);
-    assert (set2.size() > 0);
-    assert (set1.size() + set2.size() == set.size());
+    assertTrue(set1.size() > 0);
+    assertTrue(set2.size() > 0);
+    assertEquals(set1.size() + set2.size(), set.size());
     assertNoOverLap(set1, set2);
   }
 
diff --git a/solr/core/src/test/org/apache/solr/search/TestIndexSearcher.java b/solr/core/src/test/org/apache/solr/search/TestIndexSearcher.java
index d44daee769f..6c0b6a4d908 100644
--- a/solr/core/src/test/org/apache/solr/search/TestIndexSearcher.java
+++ b/solr/core/src/test/org/apache/solr/search/TestIndexSearcher.java
@@ -174,12 +174,8 @@ public class TestIndexSearcher extends SolrTestCaseJ4 {
     IndexReaderContext rCtx6 = sr6.getSearcher().getTopReaderContext();
     assertEquals(
         1, rCtx6.leaves().get(0).reader().numDocs()); // only a single doc left in the first segment
-    assertTrue(
-        !rCtx5
-            .leaves()
-            .get(0)
-            .reader()
-            .equals(rCtx6.leaves().get(0).reader())); // readers now different
+    assertNotEquals(
+        rCtx5.leaves().get(0).reader(), rCtx6.leaves().get(0).reader()); // readers now different
 
     sr5.close();
     sr6.close();
@@ -495,8 +491,8 @@ public class TestIndexSearcher extends SolrTestCaseJ4 {
     @Override
     public void newSearcher(SolrIndexSearcher newSearcher, SolrIndexSearcher currentSearcher) {
       try {
-        assert currentSearcher == null
-            : "SlowSearcherListener should only be used as FirstSearcherListener";
+        assertNull(
+            "SlowSearcherListener should only be used as FirstSearcherListener", currentSearcher);
         // simulate a slow searcher listener
         latch.await(10, TimeUnit.SECONDS);
       } catch (InterruptedException e) {
diff --git a/solr/core/src/test/org/apache/solr/search/TestQueryUtils.java b/solr/core/src/test/org/apache/solr/search/TestQueryUtils.java
index 2a9a52a5022..2b8d3ec62fc 100644
--- a/solr/core/src/test/org/apache/solr/search/TestQueryUtils.java
+++ b/solr/core/src/test/org/apache/solr/search/TestQueryUtils.java
@@ -45,26 +45,26 @@ public class TestQueryUtils extends SolrTestCaseJ4 {
 
   public void positive(Query q) {
     assertFalse(QueryUtils.isNegative(q));
-    assertTrue(QueryUtils.getAbs(q) == q);
+    assertSame(QueryUtils.getAbs(q), q);
     Collection<BooleanClause> clauses =
         (q instanceof BooleanQuery) ? ((BooleanQuery) q).clauses() : null;
     if (clauses != null) {
       if (clauses.size() != 0) {
-        assertTrue(QueryUtils.makeQueryable(q) == q);
+        assertSame(QueryUtils.makeQueryable(q), q);
       }
     } else {
-      assertTrue(QueryUtils.makeQueryable(q) == q);
+      assertSame(QueryUtils.makeQueryable(q), q);
     }
   }
 
   public void negative(Query q) {
     assertTrue(QueryUtils.isNegative(q));
     Query abs = QueryUtils.getAbs(q);
-    assertTrue(q != abs);
+    assertNotSame(q, abs);
     Query neg2 = QueryUtils.fixNegativeQuery(q);
 
-    assertFalse(abs.equals(q));
-    assertFalse(neg2.equals(q));
+    assertNotEquals(abs, q);
+    assertNotEquals(neg2, q);
   }
 
   public void testNegativeQueries() {
diff --git a/solr/core/src/test/org/apache/solr/search/TestRandomCollapseQParserPlugin.java b/solr/core/src/test/org/apache/solr/search/TestRandomCollapseQParserPlugin.java
index 3c71eba2fe4..7701f05d4fc 100644
--- a/solr/core/src/test/org/apache/solr/search/TestRandomCollapseQParserPlugin.java
+++ b/solr/core/src/test/org/apache/solr/search/TestRandomCollapseQParserPlugin.java
@@ -190,14 +190,15 @@ public class TestRandomCollapseQParserPlugin extends SolrTestCaseJ4 {
                 continue;
               }
 
-              assertFalse(
+              assertNotEquals(
                   groupHeadId
                       + " has null collapseVal but nullPolicy==ignore; "
                       + "mainP: "
                       + mainP
                       + ", collapseP: "
                       + collapseP,
-                  nullPolicy.equals(CollapsingQParserPlugin.NullPolicy.IGNORE.getName()));
+                  nullPolicy,
+                  CollapsingQParserPlugin.NullPolicy.IGNORE.getName());
             }
 
             // workaround for SOLR-8082...
@@ -220,9 +221,9 @@ public class TestRandomCollapseQParserPlugin extends SolrTestCaseJ4 {
 
             final QueryResponse checkRsp = SOLR.query(SolrParams.wrapDefaults(checkP, mainP));
 
-            assertTrue(
+            assertFalse(
                 "not even 1 match for sanity check query? expected: " + doc,
-                !checkRsp.getResults().isEmpty());
+                checkRsp.getResults().isEmpty());
             final SolrDocument firstMatch = checkRsp.getResults().get(0);
             final Object firstMatchId = firstMatch.getFieldValue("id");
             assertEquals(
diff --git a/solr/core/src/test/org/apache/solr/search/TestRangeQuery.java b/solr/core/src/test/org/apache/solr/search/TestRangeQuery.java
index 705ac0bb211..b8e0380988f 100644
--- a/solr/core/src/test/org/apache/solr/search/TestRangeQuery.java
+++ b/solr/core/src/test/org/apache/solr/search/TestRangeQuery.java
@@ -771,7 +771,7 @@ public class TestRangeQuery extends SolrTestCaseJ4 {
     Number[] values = new Number[2];
     FieldType ft = h.getCore().getLatestSchema().getField("field_" + fieldName).getType();
     if (ft.getNumberType() == null) {
-      assert ft instanceof StrField;
+      assertTrue(ft instanceof StrField);
       values[0] = randomInt(max);
       values[1] = randomInt(max);
       Arrays.sort(values, (o1, o2) -> String.valueOf(o1).compareTo(String.valueOf(o2)));
@@ -958,7 +958,7 @@ public class TestRangeQuery extends SolrTestCaseJ4 {
   }
 
   private static <X extends Comparable<? super X>, Y> X randomKey(Map<X, Y> map) {
-    assert !map.isEmpty();
+    assertFalse(map.isEmpty());
     List<X> sortedKeys = new ArrayList<>(map.keySet());
     Collections.sort(sortedKeys);
     return sortedKeys.get(random().nextInt(sortedKeys.size()));
diff --git a/solr/core/src/test/org/apache/solr/search/TestReRankQParserPlugin.java b/solr/core/src/test/org/apache/solr/search/TestReRankQParserPlugin.java
index 06b41d7e2ac..8b978ff96e5 100644
--- a/solr/core/src/test/org/apache/solr/search/TestReRankQParserPlugin.java
+++ b/solr/core/src/test/org/apache/solr/search/TestReRankQParserPlugin.java
@@ -623,7 +623,7 @@ public class TestReRankQParserPlugin extends SolrTestCaseJ4 {
     stats = metrics.getValue();
     long inserts2 = (Long) stats.get("inserts");
     // Last query was NOT added to the cache
-    assertTrue(inserts1 == inserts2);
+    assertEquals(inserts1, inserts2);
 
     // Test range query embedded in larger query
     params = new ModifiableSolrParams();
@@ -894,7 +894,7 @@ public class TestReRankQParserPlugin extends SolrTestCaseJ4 {
                 + ReRankQParserPlugin.RERANK_QUERY
                 + " parameter is not specified",
             () -> h.query(req(params)));
-    assertTrue(se.code() == SolrException.ErrorCode.BAD_REQUEST.code);
+    assertEquals(se.code(), SolrException.ErrorCode.BAD_REQUEST.code);
     unIgnoreException("reRankQuery parameter is mandatory");
   }
 
diff --git a/solr/core/src/test/org/apache/solr/search/TestRealTimeGet.java b/solr/core/src/test/org/apache/solr/search/TestRealTimeGet.java
index 1f842ea7025..44749171af4 100644
--- a/solr/core/src/test/org/apache/solr/search/TestRealTimeGet.java
+++ b/solr/core/src/test/org/apache/solr/search/TestRealTimeGet.java
@@ -914,7 +914,7 @@ public class TestRealTimeGet extends TestRTGBase {
                         || (foundVer == info.version
                             && foundVal != info.val)) { // if the version matches, the val must
                       verbose("ERROR, id=", id, "found=", response, "model", info);
-                      assertTrue(false);
+                      fail();
                     }
                   }
                 }
diff --git a/solr/core/src/test/org/apache/solr/search/TestRecovery.java b/solr/core/src/test/org/apache/solr/search/TestRecovery.java
index 12af30af76b..e87a84fb856 100644
--- a/solr/core/src/test/org/apache/solr/search/TestRecovery.java
+++ b/solr/core/src/test/org/apache/solr/search/TestRecovery.java
@@ -653,7 +653,7 @@ public class TestRecovery extends SolrTestCaseJ4 {
       assertEquals(UpdateLog.State.BUFFERING, ulog.getState());
 
       Future<UpdateLog.RecoveryInfo> rinfoFuture = ulog.applyBufferedUpdates();
-      assertTrue(rinfoFuture == null);
+      assertNull(rinfoFuture);
       assertEquals(UpdateLog.State.ACTIVE, ulog.getState());
 
       ulog.bufferUpdates();
@@ -725,7 +725,7 @@ public class TestRecovery extends SolrTestCaseJ4 {
       assertEquals(6, bufferedOps.getValue() - initialOps);
 
       rinfoFuture = ulog.applyBufferedUpdates();
-      assertTrue(rinfoFuture != null);
+      assertNotNull(rinfoFuture);
 
       assertEquals(UpdateLog.State.APPLYING_BUFFERED, ulog.getState());
 
@@ -785,7 +785,7 @@ public class TestRecovery extends SolrTestCaseJ4 {
 
       logReplay.drainPermits();
       rinfoFuture = ulog.applyBufferedUpdates();
-      assertTrue(rinfoFuture != null);
+      assertNotNull(rinfoFuture);
       assertEquals(UpdateLog.State.APPLYING_BUFFERED, ulog.getState());
 
       // apply a single update
@@ -880,7 +880,7 @@ public class TestRecovery extends SolrTestCaseJ4 {
       ulog.bufferUpdates();
       assertEquals(UpdateLog.State.BUFFERING, ulog.getState());
       Future<UpdateLog.RecoveryInfo> rinfoFuture = ulog.applyBufferedUpdates();
-      assertTrue(rinfoFuture == null);
+      assertNull(rinfoFuture);
       assertEquals(UpdateLog.State.ACTIVE, ulog.getState());
 
       ulog.bufferUpdates();
@@ -1295,7 +1295,7 @@ public class TestRecovery extends SolrTestCaseJ4 {
     assertU(commit());
     long D1Version2 = getVer(req("q", "id:D1"));
 
-    assert (D1Version2 > D1Version1);
+    assertTrue(D1Version2 > D1Version1);
 
     assertJQ(
         req("qt", "/get", "getVersions", "2"),
diff --git a/solr/core/src/test/org/apache/solr/search/TestStressLucene.java b/solr/core/src/test/org/apache/solr/search/TestStressLucene.java
index 9db05f76598..a02b55cb92f 100644
--- a/solr/core/src/test/org/apache/solr/search/TestStressLucene.java
+++ b/solr/core/src/test/org/apache/solr/search/TestStressLucene.java
@@ -173,8 +173,8 @@ public class TestStressLucene extends TestRTGBase {
                       verbose("reopen result", newReader);
 
                       synchronized (globalLock) {
-                        assert newReader.getRefCount() > 0;
-                        assert reader.getRefCount() > 0;
+                        assertTrue(newReader.getRefCount() > 0);
+                        assertTrue(reader.getRefCount() > 0);
 
                         // install the new reader if it's newest (and check the current version
                         // since another reader may have already been installed)
diff --git a/solr/core/src/test/org/apache/solr/search/TestStressRecovery.java b/solr/core/src/test/org/apache/solr/search/TestStressRecovery.java
index 1068f494893..299a8b82cf0 100644
--- a/solr/core/src/test/org/apache/solr/search/TestStressRecovery.java
+++ b/solr/core/src/test/org/apache/solr/search/TestStressRecovery.java
@@ -346,7 +346,7 @@ public class TestStressRecovery extends TestRTGBase {
                         || (foundVer == info.version
                             && foundVal != info.val)) { // if the version matches, the val must
                       verbose("ERROR, id=", id, "found=", response, "model", info);
-                      assertTrue(false);
+                      fail();
                     }
                   }
                 }
@@ -373,7 +373,7 @@ public class TestStressRecovery extends TestRTGBase {
 
     int bufferedAddsApplied = 0;
     do {
-      assertTrue(uLog.getState() == UpdateLog.State.ACTIVE);
+      assertSame(uLog.getState(), UpdateLog.State.ACTIVE);
 
       // before we start buffering updates, we want to point
       // visibleModel away from the live model.
@@ -384,7 +384,7 @@ public class TestStressRecovery extends TestRTGBase {
         uLog.bufferUpdates();
       }
 
-      assertTrue(uLog.getState() == UpdateLog.State.BUFFERING);
+      assertSame(uLog.getState(), UpdateLog.State.BUFFERING);
 
       // sometimes wait for a second to allow time for writers to write something
       if (random().nextBoolean()) Thread.sleep(random().nextInt(10) + 1);
diff --git a/solr/core/src/test/org/apache/solr/search/TestStressReorder.java b/solr/core/src/test/org/apache/solr/search/TestStressReorder.java
index 8c5dedb7f10..54917fa7399 100644
--- a/solr/core/src/test/org/apache/solr/search/TestStressReorder.java
+++ b/solr/core/src/test/org/apache/solr/search/TestStressReorder.java
@@ -347,7 +347,7 @@ public class TestStressReorder extends TestRTGBase {
                         || (foundVer == info.version
                             && foundVal != info.val)) { // if the version matches, the val must
                       log.error("ERROR, id={} found={} model {}", id, response, info);
-                      assertTrue(false);
+                      fail();
                     }
                   }
                 }
diff --git a/solr/core/src/test/org/apache/solr/search/TestStressUserVersions.java b/solr/core/src/test/org/apache/solr/search/TestStressUserVersions.java
index 430fce5606b..3314b913f6d 100644
--- a/solr/core/src/test/org/apache/solr/search/TestStressUserVersions.java
+++ b/solr/core/src/test/org/apache/solr/search/TestStressUserVersions.java
@@ -314,7 +314,7 @@ public class TestStressUserVersions extends TestRTGBase {
                           || (foundVer == info.version
                               && foundVal != info.val)) { // if the version matches, the val must
                         log.error("ERROR, id={} found={} model {}", id, response, info);
-                        assertTrue(false);
+                        fail();
                       }
                     } else {
                       // if the doc is deleted (via tombstone), it shouldn't have a value on it.
@@ -322,7 +322,7 @@ public class TestStressUserVersions extends TestRTGBase {
 
                       if (foundVer < Math.abs(info.version)) {
                         log.error("ERROR, id={} found={} model {}", id, response, info);
-                        assertTrue(false);
+                        fail();
                       }
                     }
                   }
diff --git a/solr/core/src/test/org/apache/solr/search/TestStressVersions.java b/solr/core/src/test/org/apache/solr/search/TestStressVersions.java
index a01fbce0b64..03adc37a47a 100644
--- a/solr/core/src/test/org/apache/solr/search/TestStressVersions.java
+++ b/solr/core/src/test/org/apache/solr/search/TestStressVersions.java
@@ -254,7 +254,7 @@ public class TestStressVersions extends TestRTGBase {
                         || (foundVer == info.version
                             && foundVal != info.val)) { // if the version matches, the val must
                       verbose("ERROR, id=", id, "found=", response, "model", info);
-                      assertTrue(false);
+                      fail();
                     }
                   }
                 }
diff --git a/solr/core/src/test/org/apache/solr/search/facet/DistributedFacetSimpleRefinementLongTailTest.java b/solr/core/src/test/org/apache/solr/search/facet/DistributedFacetSimpleRefinementLongTailTest.java
index d12ec011172..40cfb8a5019 100644
--- a/solr/core/src/test/org/apache/solr/search/facet/DistributedFacetSimpleRefinementLongTailTest.java
+++ b/solr/core/src/test/org/apache/solr/search/facet/DistributedFacetSimpleRefinementLongTailTest.java
@@ -240,7 +240,7 @@ public class DistributedFacetSimpleRefinementLongTailTest extends BaseDistribute
 
       // this will be short the "+1" fo the doc added to shard2...
       NamedList bucket = foo_buckets.get(5);
-      assertTrue(bucket.toString(), bucket.get("val").equals("bbb0")); // 'tail' is missed
+      assertEquals(bucket.toString(), "bbb0", bucket.get("val")); // 'tail' is missed
       assertEquals(
           bucket.toString(),
           100L,
@@ -281,7 +281,7 @@ public class DistributedFacetSimpleRefinementLongTailTest extends BaseDistribute
       }
       // ...but it should have correctly asked shard2 to refine bbb0
       NamedList bucket = foo_buckets.get(5);
-      assertTrue(bucket.toString(), bucket.get("val").equals("bbb0"));
+      assertEquals(bucket.toString(), "bbb0", bucket.get("val"));
       assertEquals(bucket.toString(), 101L, bucket.get("count"));
       // ...and the status under bbb0 should be correct to include the refinement
       assertEquals(ALL_STATS.size() + 3, bucket.size()); // val,count,facet
diff --git a/solr/core/src/test/org/apache/solr/search/facet/RangeFacetCloudTest.java b/solr/core/src/test/org/apache/solr/search/facet/RangeFacetCloudTest.java
index 7a48d045ebb..4de05a620c7 100644
--- a/solr/core/src/test/org/apache/solr/search/facet/RangeFacetCloudTest.java
+++ b/solr/core/src/test/org/apache/solr/search/facet/RangeFacetCloudTest.java
@@ -1114,9 +1114,9 @@ public class RangeFacetCloudTest extends SolrCloudTestCase {
     /** Don't use, use the convenience methods */
     public ModelRange(int lower, int upper) {
       if (lower < 0 || upper < 0) {
-        assert (lower < 0 && upper < lower);
+        assertTrue(lower < 0 && upper < lower);
       } else {
-        assert (lower <= upper);
+        assertTrue(lower <= upper);
       }
       this.lower = lower;
       this.upper = upper;
diff --git a/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetJoinDomain.java b/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetJoinDomain.java
index 0c7f0fab9e0..a71d90ed4d5 100644
--- a/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetJoinDomain.java
+++ b/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetJoinDomain.java
@@ -161,7 +161,7 @@ public class TestCloudJSONFacetJoinDomain extends SolrCloudTestCase {
    * @see #randFieldValue
    */
   private static String field(final String[] suffixes, final int fieldNum) {
-    assert fieldNum < MAX_FIELD_NUM;
+    assertTrue(fieldNum < MAX_FIELD_NUM);
 
     final String suffix = suffixes[fieldNum % suffixes.length];
     return "field_" + fieldNum + suffix;
@@ -735,7 +735,7 @@ public class TestCloudJSONFacetJoinDomain extends SolrCloudTestCase {
 
     public TermFacet(
         String field, JoinDomain domain, Integer limit, Integer overrequest, Boolean refine) {
-      assert null != field;
+      assertNotNull(field);
       this.field = field;
       this.domain = domain;
       this.limit = limit;
@@ -799,8 +799,8 @@ public class TestCloudJSONFacetJoinDomain extends SolrCloudTestCase {
      * value to use for testing them against in a solr request.
      */
     public static CharSequence toJSONFacetParamValue(Map<String, TermFacet> facets) {
-      assert null != facets;
-      assert 0 < facets.size();
+      assertNotNull(facets);
+      assertTrue(0 < facets.size());
       StringBuilder sb = new StringBuilder("{");
       for (String key : facets.keySet()) {
         sb.append(key).append(" : ").append(facets.get(key).toJSONFacetParamValue());
@@ -931,7 +931,6 @@ public class TestCloudJSONFacetJoinDomain extends SolrCloudTestCase {
       Map<String, TermFacet> results = new LinkedHashMap<>();
       for (int i = 0; i < numFacets; i++) {
         final JoinDomain domain = JoinDomain.buildRandomDomain();
-        assert null != domain;
         final Integer limit = randomLimitParam(random());
         final Integer overrequest = randomOverrequestParam(random());
         final TermFacet facet =
@@ -967,7 +966,7 @@ public class TestCloudJSONFacetJoinDomain extends SolrCloudTestCase {
      * @param filter filter to apply to domain, null if domain involves no filtering
      */
     public JoinDomain(String from, String to, String filter) {
-      assert !((null == from) ^ (null == to)) : "if from is null, to must be null";
+      assertEquals("if from is null, to must be null", (null == from), (null == to));
       this.from = from;
       this.to = to;
       this.filter = filter;
@@ -983,7 +982,7 @@ public class TestCloudJSONFacetJoinDomain extends SolrCloudTestCase {
       }
       StringBuilder sb = new StringBuilder("domain:{");
       if (null != from) {
-        assert null != to;
+        assertNotNull(to);
         sb.append("join:{from:").append(from).append(",to:").append(to).append("}");
         if (null != filter) {
           sb.append(",");
@@ -1002,8 +1001,8 @@ public class TestCloudJSONFacetJoinDomain extends SolrCloudTestCase {
      * facet
      */
     public SolrParams applyDomainToQuery(String safeKey, SolrParams in) {
-      assert null
-          == in.get(safeKey); // shouldn't be possible if every facet uses a unique key string
+      // shouldn't be possible if every facet uses a unique key string
+      assertNull(in.get(safeKey));
 
       String q = in.get("q");
       final ModifiableSolrParams out = new ModifiableSolrParams(in);
@@ -1065,7 +1064,7 @@ public class TestCloudJSONFacetJoinDomain extends SolrCloudTestCase {
   }
 
   public static void waitForRecoveriesToFinish(CloudSolrClient client) throws Exception {
-    assert null != client.getDefaultCollection();
+    assertNotNull(client.getDefaultCollection());
     AbstractDistribZkTestBase.waitForRecoveriesToFinish(
         client.getDefaultCollection(), ZkStateReader.from(client), true, true, 330);
   }
diff --git a/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKG.java b/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKG.java
index 69fafaf05ca..1ca9080ebd6 100644
--- a/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKG.java
+++ b/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKG.java
@@ -204,7 +204,7 @@ public class TestCloudJSONFacetSKG extends SolrCloudTestCase {
    * @see #randFieldValue
    */
   private static String field(final String[] suffixes, final int fieldNum) {
-    assert fieldNum < MAX_FIELD_NUM;
+    assertTrue(fieldNum < MAX_FIELD_NUM);
 
     final String suffix = suffixes[fieldNum % suffixes.length];
     return "field_" + fieldNum + suffix;
@@ -354,7 +354,7 @@ public class TestCloudJSONFacetSKG extends SolrCloudTestCase {
   }
 
   private static String buildORQuery(String... clauses) {
-    assert 0 < clauses.length;
+    assertTrue(0 < clauses.length);
     return "(" + String.join(" OR ", clauses) + ")";
   }
 
@@ -581,7 +581,7 @@ public class TestCloudJSONFacetSKG extends SolrCloudTestCase {
      * @param options can set any of options used in a term facet other than field or (sub) facets
      */
     public TermFacet(final String field, final Map<String, Object> options) {
-      assert null != field;
+      assertNotNull(field);
       this.field = field;
 
       jsonData.putAll(options);
@@ -623,8 +623,8 @@ public class TestCloudJSONFacetSKG extends SolrCloudTestCase {
      * value to use for testing them against in a solr request.
      */
     public static String toJSONFacetParamValue(final Map<String, TermFacet> facets) {
-      assert null != facets;
-      assert !facets.isEmpty();
+      assertNotNull(facets);
+      assertFalse(facets.isEmpty());
 
       // see class javadocs for why we always want processEmpty
       final Map<String, Object> jsonData = map("processEmpty", true);
@@ -700,8 +700,9 @@ public class TestCloudJSONFacetSKG extends SolrCloudTestCase {
         // never used a prefix on a numeric field
         return null;
       }
-      assert (facetField.contains("multi_s") || facetField.contains("solo_s"))
-          : "possible facet fields have changed, breaking test";
+      assertTrue(
+          "possible facet fields have changed, breaking test",
+          facetField.contains("multi_s") || facetField.contains("solo_s"));
 
       switch (r.nextInt(5)) {
         case 0:
@@ -899,7 +900,7 @@ public class TestCloudJSONFacetSKG extends SolrCloudTestCase {
   }
 
   public static void waitForRecoveriesToFinish(CloudSolrClient client) throws Exception {
-    assert null != client.getDefaultCollection();
+    assertNotNull(client.getDefaultCollection());
     AbstractDistribZkTestBase.waitForRecoveriesToFinish(
         client.getDefaultCollection(), ZkStateReader.from(client), true, true, 330);
   }
diff --git a/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKGEquiv.java b/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKGEquiv.java
index 235578d82d0..4bb741e772c 100644
--- a/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKGEquiv.java
+++ b/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKGEquiv.java
@@ -194,7 +194,7 @@ public class TestCloudJSONFacetSKGEquiv extends SolrCloudTestCase {
    * @see #randFieldValue
    */
   private static String field(final String[] suffixes, final int fieldNum) {
-    assert fieldNum < MAX_FIELD_NUM;
+    assertTrue(fieldNum < MAX_FIELD_NUM);
 
     final String suffix = suffixes[fieldNum % suffixes.length];
     return "field_" + fieldNum + suffix;
@@ -759,7 +759,7 @@ public class TestCloudJSONFacetSKGEquiv extends SolrCloudTestCase {
   }
 
   private static String buildORQuery(String... clauses) {
-    assert 0 < clauses.length;
+    assertTrue(0 < clauses.length);
     return "(" + String.join(" OR ", clauses) + ")";
   }
 
@@ -865,8 +865,8 @@ public class TestCloudJSONFacetSKGEquiv extends SolrCloudTestCase {
      * value to use for testing them against in a solr request.
      */
     public static String toJSONFacetParamValue(final Map<String, ? extends Facet> facets) {
-      assert null != facets;
-      assert !facets.isEmpty();
+      assertNotNull(facets);
+      assertFalse(facets.isEmpty());
 
       return JSONUtil.toJSON(facets, -1); // no newlines
     }
@@ -925,7 +925,7 @@ public class TestCloudJSONFacetSKGEquiv extends SolrCloudTestCase {
 
     public RelatednessFacet(
         final String foreQ, final String backQ, final Map<String, Object> options) {
-      assert null != options;
+      assertNotNull(options);
 
       final String f = null == foreQ ? "$fore" : "{!v='" + foreQ + "'}";
       final String b = null == backQ ? "$back" : "{!v='" + backQ + "'}";
@@ -980,7 +980,7 @@ public class TestCloudJSONFacetSKGEquiv extends SolrCloudTestCase {
      * @param options can set any of options used in a term facet other than field or (sub) facets
      */
     public TermFacet(final String field, final Map<String, Object> options) {
-      assert null != field;
+      assertNotNull(field);
 
       jsonData.put("method", "${method_val:smart}");
 
@@ -1135,8 +1135,9 @@ public class TestCloudJSONFacetSKGEquiv extends SolrCloudTestCase {
         // never used a prefix on a numeric field
         return null;
       }
-      assert (facetField.contains("multi_s") || facetField.contains("solo_s"))
-          : "possible facet fields have changed, breaking test";
+      assertTrue(
+          "possible facet fields have changed, breaking test",
+          facetField.contains("multi_s") || facetField.contains("solo_s"));
 
       switch (r.nextInt(5)) {
         case 0:
@@ -1306,7 +1307,7 @@ public class TestCloudJSONFacetSKGEquiv extends SolrCloudTestCase {
   }
 
   public static void waitForRecoveriesToFinish(CloudSolrClient client) throws Exception {
-    assert null != client.getDefaultCollection();
+    assertNotNull(client.getDefaultCollection());
     AbstractDistribZkTestBase.waitForRecoveriesToFinish(
         client.getDefaultCollection(), ZkStateReader.from(client), true, true, 330);
   }
diff --git a/solr/core/src/test/org/apache/solr/search/facet/TestJsonFacets.java b/solr/core/src/test/org/apache/solr/search/facet/TestJsonFacets.java
index b82414893f9..e2a451e7dcf 100644
--- a/solr/core/src/test/org/apache/solr/search/facet/TestJsonFacets.java
+++ b/solr/core/src/test/org/apache/solr/search/facet/TestJsonFacets.java
@@ -3575,7 +3575,7 @@ public class TestJsonFacets extends SolrTestCaseHS {
           "facets=={ 'count':6, " + "f1:{  buckets:[{ val:batman, count:1, x:1}]}" + " } ");
 
       assertEquals(1, DebugAgg.Acc.creates.get() - creates);
-      assertTrue(DebugAgg.Acc.resets.get() - resets == 0);
+      assertEquals(0, DebugAgg.Acc.resets.get() - resets);
       // all slots should be done in a single shot. there may be more than 5 due to special slots or
       // hashing.
       assertTrue(DebugAgg.Acc.last.numSlots >= 5);
@@ -3593,7 +3593,7 @@ public class TestJsonFacets extends SolrTestCaseHS {
           "facets==");
 
       assertEquals(1, DebugAgg.Acc.creates.get() - creates);
-      assertTrue(DebugAgg.Acc.resets.get() - resets == 0);
+      assertEquals(0, DebugAgg.Acc.resets.get() - resets);
       // all slots should be done in a single shot. there may be more than 5 due to special slots or
       // hashing.
       assertTrue(DebugAgg.Acc.last.numSlots >= 5);
@@ -3612,7 +3612,7 @@ public class TestJsonFacets extends SolrTestCaseHS {
           "facets==");
 
       assertEquals(1, DebugAgg.Acc.creates.get() - creates);
-      assertTrue(DebugAgg.Acc.resets.get() - resets == 0);
+      assertEquals(0, DebugAgg.Acc.resets.get() - resets);
       // all slots should be done in a single shot. there may be more than 5 due to special slots or
       // hashing.
       assertTrue(DebugAgg.Acc.last.numSlots >= 5);
diff --git a/solr/core/src/test/org/apache/solr/search/function/TestFunctionQuery.java b/solr/core/src/test/org/apache/solr/search/function/TestFunctionQuery.java
index a059675089a..56d94a5f2ab 100644
--- a/solr/core/src/test/org/apache/solr/search/function/TestFunctionQuery.java
+++ b/solr/core/src/test/org/apache/solr/search/function/TestFunctionQuery.java
@@ -117,7 +117,7 @@ public class TestFunctionQuery extends SolrTestCaseJ4 {
 
     for (int i = 0; i < results.length; i += 2) {
       final int id = (int) results[i];
-      assert ((float) id) == results[i];
+      assertEquals(((float) id), results[i], 0.0);
 
       String xpath =
           "//doc[./str[@name='id']='"
@@ -225,14 +225,14 @@ public class TestFunctionQuery extends SolrTestCaseJ4 {
     Object orig = FileFloatSource.onlyForTesting;
     singleTest(field, "log(\0)");
     // make sure the values were cached
-    assertTrue(orig == FileFloatSource.onlyForTesting);
+    assertSame(orig, FileFloatSource.onlyForTesting);
     singleTest(field, "sqrt(\0)");
-    assertTrue(orig == FileFloatSource.onlyForTesting);
+    assertSame(orig, FileFloatSource.onlyForTesting);
 
     makeExternalFile(field, "0=1");
     assertU(h.query("/reloadCache", lrf.makeRequest("", "")));
     singleTest(field, "sqrt(\0)");
-    assertTrue(orig != FileFloatSource.onlyForTesting);
+    assertNotSame(orig, FileFloatSource.onlyForTesting);
 
     Random r = random();
     for (int i = 0; i < 10; i++) { // do more iterations for a thorough test
@@ -1042,15 +1042,15 @@ public class TestFunctionQuery extends SolrTestCaseJ4 {
     Object orig = FileFloatSource.onlyForTesting;
     singleTest(fieldAsFunc, "log(\0)");
     // make sure the values were cached
-    assertTrue(orig == FileFloatSource.onlyForTesting);
+    assertSame(orig, FileFloatSource.onlyForTesting);
     singleTest(fieldAsFunc, "sqrt(\0)");
-    assertTrue(orig == FileFloatSource.onlyForTesting);
+    assertSame(orig, FileFloatSource.onlyForTesting);
 
     makeExternalFile(field, "0=1");
     assertU(adoc("id", "10000")); // will get same reader if no index change
     assertU(commit());
     singleTest(fieldAsFunc, "sqrt(\0)");
-    assertTrue(orig != FileFloatSource.onlyForTesting);
+    assertNotSame(orig, FileFloatSource.onlyForTesting);
   }
 
   /**
diff --git a/solr/core/src/test/org/apache/solr/search/function/TestMinMaxOnMultiValuedField.java b/solr/core/src/test/org/apache/solr/search/function/TestMinMaxOnMultiValuedField.java
index 374b2e510a6..19e3ecf63ca 100644
--- a/solr/core/src/test/org/apache/solr/search/function/TestMinMaxOnMultiValuedField.java
+++ b/solr/core/src/test/org/apache/solr/search/function/TestMinMaxOnMultiValuedField.java
@@ -634,7 +634,7 @@ public class TestMinMaxOnMultiValuedField extends SolrTestCaseJ4 {
       @SuppressWarnings({"rawtypes"}) final Comparable... vals) {
     clearIndex();
 
-    assert 0 < vals.length;
+    assertTrue(0 < vals.length);
     @SuppressWarnings({"rawtypes"})
     Comparable min = vals[0];
     @SuppressWarnings({"rawtypes"})
diff --git a/solr/core/src/test/org/apache/solr/search/function/TestOrdValues.java b/solr/core/src/test/org/apache/solr/search/function/TestOrdValues.java
index af2f00d4634..5c37805b9e4 100644
--- a/solr/core/src/test/org/apache/solr/search/function/TestOrdValues.java
+++ b/solr/core/src/test/org/apache/solr/search/function/TestOrdValues.java
@@ -152,8 +152,8 @@ public class TestOrdValues extends SolrTestCase {
           inOrder
               ? id2String(N_DOCS - i) // in-order ==> larger  values first
               : id2String(i + 1); // reverse  ==> smaller values first
-      assertTrue(
-          "id of result " + i + " should be " + expectedId + " != " + score, expectedId.equals(id));
+      assertEquals(
+          "id of result " + i + " should be " + expectedId + " != " + score, expectedId, id);
     }
     r.close();
   }
@@ -161,10 +161,10 @@ public class TestOrdValues extends SolrTestCase {
   // LUCENE-1250
   public void testEqualsNull() {
     OrdFieldSource ofs = new OrdFieldSource("f");
-    assertFalse(ofs.equals(null));
+    assertNotEquals(null, ofs);
 
     ReverseOrdFieldSource rofs = new ReverseOrdFieldSource("f");
-    assertFalse(rofs.equals(null));
+    assertNotEquals(null, rofs);
   }
 
   /**
diff --git a/solr/core/src/test/org/apache/solr/search/function/distance/DistanceFunctionTest.java b/solr/core/src/test/org/apache/solr/search/function/distance/DistanceFunctionTest.java
index 5fd3ebcd0d0..1a6c85e5894 100644
--- a/solr/core/src/test/org/apache/solr/search/function/distance/DistanceFunctionTest.java
+++ b/solr/core/src/test/org/apache/solr/search/function/distance/DistanceFunctionTest.java
@@ -294,7 +294,7 @@ public class DistanceFunctionTest extends SolrTestCaseJ4 {
               "fq",
               "id:1"),
           "//float[@name='score']='0.0'");
-      assertTrue("should throw an exception", false);
+      fail("should throw an exception");
     } catch (Exception e) {
       Throwable cause = e.getCause();
       assertNotNull(cause);
diff --git a/solr/core/src/test/org/apache/solr/search/join/BJQParserTest.java b/solr/core/src/test/org/apache/solr/search/join/BJQParserTest.java
index e110c015019..2282f33e1b0 100644
--- a/solr/core/src/test/org/apache/solr/search/join/BJQParserTest.java
+++ b/solr/core/src/test/org/apache/solr/search/join/BJQParserTest.java
@@ -117,8 +117,9 @@ public class BJQParserTest extends SolrTestCaseJ4 {
     // add grandchildren after children
     for (ListIterator<String[]> iter = block.listIterator(); iter.hasNext(); ) {
       String[] child = iter.next();
-      assert Objects.equals(child[0], "child_s") && Objects.equals(child[2], "parentchild_s")
-          : Arrays.toString(child);
+      assertTrue(
+          Arrays.toString(child),
+          Objects.equals(child[0], "child_s") && Objects.equals(child[2], "parentchild_s"));
       String child_s = child[1];
       String parentchild_s = child[3];
       int grandChildPos = 0;
@@ -178,7 +179,6 @@ public class BJQParserTest extends SolrTestCaseJ4 {
         "//doc/arr[@name='child_s']/str='" + klm[0] + "'",
         "//doc/arr[@name='child_s']/str='" + klm[1] + "'",
         "//doc/arr[@name='child_s']/str='" + klm[2] + "'");
-    assert klm.length == 3 : "change asserts pls " + Arrays.toString(klm);
   }
 
   private static final String beParents[] =
diff --git a/solr/core/src/test/org/apache/solr/search/join/TestNestedDocsSort.java b/solr/core/src/test/org/apache/solr/search/join/TestNestedDocsSort.java
index 0ba318c8449..904af50fe7d 100644
--- a/solr/core/src/test/org/apache/solr/search/join/TestNestedDocsSort.java
+++ b/solr/core/src/test/org/apache/solr/search/join/TestNestedDocsSort.java
@@ -100,7 +100,7 @@ public class TestNestedDocsSort extends SolrTestCaseJ4 {
   }
 
   private void parseAssertNe(String sortField, String sortField2) {
-    assertFalse(parse(sortField).equals(parse(sortField2)));
+    assertNotEquals(parse(sortField), parse(sortField2));
   }
 
   private SortField parse(String a) {
diff --git a/solr/core/src/test/org/apache/solr/search/join/TestScoreJoinQPNoScore.java b/solr/core/src/test/org/apache/solr/search/join/TestScoreJoinQPNoScore.java
index 61201956565..a3702453162 100644
--- a/solr/core/src/test/org/apache/solr/search/join/TestScoreJoinQPNoScore.java
+++ b/solr/core/src/test/org/apache/solr/search/join/TestScoreJoinQPNoScore.java
@@ -206,7 +206,7 @@ public class TestScoreJoinQPNoScore extends SolrTestCaseJ4 {
       Query y =
           QParser.getParser("{!join from=dept_ss to=dept_ss score=none}text_t:develop", req)
               .getQuery();
-      assertFalse("diff from fields produce equal queries", x.equals(y));
+      assertNotEquals("diff from fields produce equal queries", x, y);
     }
   }
 
diff --git a/solr/core/src/test/org/apache/solr/search/join/another/BJQFilterAccessibleTest.java b/solr/core/src/test/org/apache/solr/search/join/another/BJQFilterAccessibleTest.java
index e1f029daff6..680e8be971a 100644
--- a/solr/core/src/test/org/apache/solr/search/join/another/BJQFilterAccessibleTest.java
+++ b/solr/core/src/test/org/apache/solr/search/join/another/BJQFilterAccessibleTest.java
@@ -29,7 +29,6 @@ import org.apache.lucene.search.join.ToParentBlockJoinQuery;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.search.join.BlockJoinParentQParser;
-import org.junit.Assert;
 import org.junit.BeforeClass;
 
 public class BJQFilterAccessibleTest extends SolrTestCaseJ4 {
@@ -49,7 +48,7 @@ public class BJQFilterAccessibleTest extends SolrTestCaseJ4 {
               childQuery,
               BlockJoinParentQParser.getCachedBitSetProducer(req, parentQuery),
               ScoreMode.Max);
-      Assert.assertEquals(6, req.getSearcher().search(tpbjq, 10).totalHits.value);
+      assertEquals(6, req.getSearcher().search(tpbjq, 10).totalHits.value);
     }
   }
 }
diff --git a/solr/core/src/test/org/apache/solr/search/similarities/TestClassicSimilarityFactory.java b/solr/core/src/test/org/apache/solr/search/similarities/TestClassicSimilarityFactory.java
index f481b03b74c..894054f9921 100644
--- a/solr/core/src/test/org/apache/solr/search/similarities/TestClassicSimilarityFactory.java
+++ b/solr/core/src/test/org/apache/solr/search/similarities/TestClassicSimilarityFactory.java
@@ -34,11 +34,11 @@ public class TestClassicSimilarityFactory extends BaseSimilarityTestCase {
   /** Classic w/ default parameters */
   public void testDefaults() {
     ClassicSimilarity sim = getSimilarity("text", ClassicSimilarity.class);
-    assertEquals(true, sim.getDiscountOverlaps());
+    assertTrue(sim.getDiscountOverlaps());
   }
   /** Classic w/ explicit params */
   public void testParams() {
     ClassicSimilarity sim = getSimilarity("text_overlap", ClassicSimilarity.class);
-    assertEquals(false, sim.getDiscountOverlaps());
+    assertFalse(sim.getDiscountOverlaps());
   }
 }
diff --git a/solr/core/src/test/org/apache/solr/servlet/CacheHeaderTest.java b/solr/core/src/test/org/apache/solr/servlet/CacheHeaderTest.java
index 30050214d43..77e45711e08 100644
--- a/solr/core/src/test/org/apache/solr/servlet/CacheHeaderTest.java
+++ b/solr/core/src/test/org/apache/solr/servlet/CacheHeaderTest.java
@@ -70,7 +70,7 @@ public class CacheHeaderTest extends CacheHeaderTestBase {
     HttpRequestBase m = getSelectMethod("GET", "q", "xyz_ignore_exception:solr", "qt", "standard");
     // We force an exception from Solr. This should emit "no-cache" HTTP headers
     HttpResponse response = getClient().execute(m);
-    assertFalse(response.getStatusLine().getStatusCode() == 200);
+    assertNotEquals(200, response.getStatusLine().getStatusCode());
     checkVetoHeaders(response, false);
   }
 
diff --git a/solr/core/src/test/org/apache/solr/servlet/TestRequestRateLimiter.java b/solr/core/src/test/org/apache/solr/servlet/TestRequestRateLimiter.java
index d19cf56c7bc..b3740e8849c 100644
--- a/solr/core/src/test/org/apache/solr/servlet/TestRequestRateLimiter.java
+++ b/solr/core/src/test/org/apache/solr/servlet/TestRequestRateLimiter.java
@@ -185,7 +185,7 @@ public class TestRequestRateLimiter extends SolrCloudTestCase {
 
       for (Future<?> future : futures) {
         try {
-          assertTrue(future.get() != null);
+          assertNotNull(future.get());
         } catch (Exception e) {
           MatcherAssert.assertThat(
               e.getMessage(), containsString("non ok status: 429, message:Too Many Requests"));
diff --git a/solr/core/src/test/org/apache/solr/spelling/ConjunctionSolrSpellCheckerTest.java b/solr/core/src/test/org/apache/solr/spelling/ConjunctionSolrSpellCheckerTest.java
index ecee18313a5..e58c1e8bf6b 100644
--- a/solr/core/src/test/org/apache/solr/spelling/ConjunctionSolrSpellCheckerTest.java
+++ b/solr/core/src/test/org/apache/solr/spelling/ConjunctionSolrSpellCheckerTest.java
@@ -24,7 +24,6 @@ import org.apache.lucene.search.spell.StringDistance;
 import org.apache.solr.SolrTestCase;
 import org.apache.solr.core.SolrCore;
 import org.apache.solr.search.SolrIndexSearcher;
-import org.junit.Assert;
 import org.junit.Test;
 
 public class ConjunctionSolrSpellCheckerTest extends SolrTestCase {
@@ -55,7 +54,7 @@ public class ConjunctionSolrSpellCheckerTest extends SolrTestCase {
             "Cannot set up test.  2 NGramDistances with different gram sizes should not be equal.");
       }
     }
-    Assert.assertEquals(
+    assertEquals(
         "The distance " + sameDistance + " does not properly implement equals.",
         sameDistance1,
         sameDistance2);
diff --git a/solr/core/src/test/org/apache/solr/spelling/DirectSolrSpellCheckerTest.java b/solr/core/src/test/org/apache/solr/spelling/DirectSolrSpellCheckerTest.java
index 36d065f062d..e6fc2bd328e 100644
--- a/solr/core/src/test/org/apache/solr/spelling/DirectSolrSpellCheckerTest.java
+++ b/solr/core/src/test/org/apache/solr/spelling/DirectSolrSpellCheckerTest.java
@@ -75,9 +75,10 @@ public class DirectSolrSpellCheckerTest extends SolrTestCaseJ4 {
               assertFalse("suggestions shouldn't be empty", suggestions.isEmpty());
               Map.Entry<String, Integer> entry = suggestions.entrySet().iterator().next();
               assertEquals("foo", entry.getKey());
-              assertFalse(
+              assertNotEquals(
                   entry.getValue() + " equals: " + SpellingResult.NO_FREQUENCY_INFO,
-                  entry.getValue() == SpellingResult.NO_FREQUENCY_INFO);
+                  SpellingResult.NO_FREQUENCY_INFO,
+                  (int) entry.getValue());
 
               // check that 'super' is *not* corrected
               spellOpts.tokens = queryConverter.convert("super");
diff --git a/solr/core/src/test/org/apache/solr/spelling/FileBasedSpellCheckerTest.java b/solr/core/src/test/org/apache/solr/spelling/FileBasedSpellCheckerTest.java
index 4a68253b6d9..3f6c5381150 100644
--- a/solr/core/src/test/org/apache/solr/spelling/FileBasedSpellCheckerTest.java
+++ b/solr/core/src/test/org/apache/solr/spelling/FileBasedSpellCheckerTest.java
@@ -72,7 +72,7 @@ public class FileBasedSpellCheckerTest extends SolrTestCaseJ4 {
     spellchecker.add(AbstractLuceneSpellChecker.INDEX_DIR, indexDir.getAbsolutePath());
     SolrCore core = h.getCore();
     String dictName = checker.init(spellchecker, core);
-    assertTrue(dictName + " is not equal to " + "external", dictName.equals("external") == true);
+    assertEquals(dictName + " is not equal to " + "external", "external", dictName);
     checker.build(core, null);
 
     h.getCore()
@@ -84,12 +84,11 @@ public class FileBasedSpellCheckerTest extends SolrTestCaseJ4 {
               assertNotNull("result shouldn't be null", result);
               Map<String, Integer> suggestions = result.get(spellOpts.tokens.iterator().next());
               Map.Entry<String, Integer> entry = suggestions.entrySet().iterator().next();
-              assertTrue(
-                  entry.getKey() + " is not equal to " + "foo",
-                  entry.getKey().equals("foo") == true);
-              assertTrue(
+              assertEquals(entry.getKey() + " is not equal to " + "foo", "foo", entry.getKey());
+              assertEquals(
                   entry.getValue() + " does not equal: " + SpellingResult.NO_FREQUENCY_INFO,
-                  entry.getValue() == SpellingResult.NO_FREQUENCY_INFO);
+                  SpellingResult.NO_FREQUENCY_INFO,
+                  (int) entry.getValue());
 
               spellOpts.tokens = queryConverter.convert("super");
               result = checker.getSuggestions(spellOpts);
@@ -124,7 +123,7 @@ public class FileBasedSpellCheckerTest extends SolrTestCaseJ4 {
     spellchecker.add(SolrSpellChecker.FIELD_TYPE, "teststop");
     SolrCore core = h.getCore();
     String dictName = checker.init(spellchecker, core);
-    assertTrue(dictName + " is not equal to " + "external", dictName.equals("external") == true);
+    assertEquals(dictName + " is not equal to " + "external", "external", dictName);
     checker.build(core, null);
 
     Collection<Token> tokens = queryConverter.convert("Solar");
@@ -133,19 +132,19 @@ public class FileBasedSpellCheckerTest extends SolrTestCaseJ4 {
             searcher -> {
               SpellingOptions spellOpts = new SpellingOptions(tokens, searcher.getIndexReader());
               SpellingResult result = checker.getSuggestions(spellOpts);
-              assertTrue("result is null and it shouldn't be", result != null);
+              assertNotNull("result is null and it shouldn't be", result);
               // should be lowercased, b/c we are using a lowercasing analyzer
               Map<String, Integer> suggestions = result.get(spellOpts.tokens.iterator().next());
-              assertTrue(
+              assertEquals(
                   "suggestions Size: " + suggestions.size() + " is not: " + 1,
-                  suggestions.size() == 1);
+                  1,
+                  suggestions.size());
               Map.Entry<String, Integer> entry = suggestions.entrySet().iterator().next();
-              assertTrue(
-                  entry.getKey() + " is not equal to " + "solr",
-                  entry.getKey().equals("solr") == true);
-              assertTrue(
+              assertEquals(entry.getKey() + " is not equal to " + "solr", "solr", entry.getKey());
+              assertEquals(
                   entry.getValue() + " does not equal: " + SpellingResult.NO_FREQUENCY_INFO,
-                  entry.getValue() == SpellingResult.NO_FREQUENCY_INFO);
+                  SpellingResult.NO_FREQUENCY_INFO,
+                  (int) entry.getValue());
 
               // test something not in the spell checker
               spellOpts.tokens = queryConverter.convert("super");
@@ -174,7 +173,7 @@ public class FileBasedSpellCheckerTest extends SolrTestCaseJ4 {
 
     SolrCore core = h.getCore();
     String dictName = checker.init(spellchecker, core);
-    assertTrue(dictName + " is not equal to " + "external", dictName.equals("external") == true);
+    assertEquals(dictName + " is not equal to " + "external", "external", dictName);
     checker.build(core, null);
 
     h.getCore()
@@ -186,16 +185,16 @@ public class FileBasedSpellCheckerTest extends SolrTestCaseJ4 {
               assertNotNull("result shouldn't be null", result);
               // should be lowercased, b/c we are using a lowercasing analyzer
               Map<String, Integer> suggestions = result.get(spellOpts.tokens.iterator().next());
-              assertTrue(
+              assertEquals(
                   "suggestions Size: " + suggestions.size() + " is not: " + 1,
-                  suggestions.size() == 1);
+                  1,
+                  suggestions.size());
               Map.Entry<String, Integer> entry = suggestions.entrySet().iterator().next();
-              assertTrue(
-                  entry.getKey() + " is not equal to " + "solr",
-                  entry.getKey().equals("solr") == true);
-              assertTrue(
+              assertEquals(entry.getKey() + " is not equal to " + "solr", "solr", entry.getKey());
+              assertEquals(
                   entry.getValue() + " does not equal: " + SpellingResult.NO_FREQUENCY_INFO,
-                  entry.getValue() == SpellingResult.NO_FREQUENCY_INFO);
+                  SpellingResult.NO_FREQUENCY_INFO,
+                  (int) entry.getValue());
 
               spellOpts.tokens = queryConverter.convert("super");
               result = checker.getSuggestions(spellOpts);
diff --git a/solr/core/src/test/org/apache/solr/spelling/IndexBasedSpellCheckerTest.java b/solr/core/src/test/org/apache/solr/spelling/IndexBasedSpellCheckerTest.java
index 9f592ea5450..0db7a5d8462 100644
--- a/solr/core/src/test/org/apache/solr/spelling/IndexBasedSpellCheckerTest.java
+++ b/solr/core/src/test/org/apache/solr/spelling/IndexBasedSpellCheckerTest.java
@@ -115,9 +115,10 @@ public class IndexBasedSpellCheckerTest extends SolrTestCaseJ4 {
     SolrCore core = h.getCore();
 
     String dictName = checker.init(spellchecker, core);
-    assertTrue(
+    assertEquals(
         dictName + " is not equal to " + SolrSpellChecker.DEFAULT_DICTIONARY_NAME,
-        dictName.equals(SolrSpellChecker.DEFAULT_DICTIONARY_NAME) == true);
+        SolrSpellChecker.DEFAULT_DICTIONARY_NAME,
+        dictName);
     h.getCore()
         .withSearcher(
             searcher -> {
@@ -127,34 +128,33 @@ public class IndexBasedSpellCheckerTest extends SolrTestCaseJ4 {
               Collection<Token> tokens = queryConverter.convert("documemt");
               SpellingOptions spellOpts = new SpellingOptions(tokens, reader);
               SpellingResult result = checker.getSuggestions(spellOpts);
-              assertTrue("result is null and it shouldn't be", result != null);
+              assertNotNull("result is null and it shouldn't be", result);
               // should be lowercased, b/c we are using a lowercasing analyzer
               Map<String, Integer> suggestions = result.get(spellOpts.tokens.iterator().next());
-              assertTrue("documemt is null and it shouldn't be", suggestions != null);
-              assertTrue(
-                  "documemt Size: " + suggestions.size() + " is not: " + 1,
-                  suggestions.size() == 1);
+              assertNotNull("documemt is null and it shouldn't be", suggestions);
+              assertEquals(
+                  "documemt Size: " + suggestions.size() + " is not: " + 1, 1, suggestions.size());
               Map.Entry<String, Integer> entry = suggestions.entrySet().iterator().next();
-              assertTrue(
-                  entry.getKey() + " is not equal to " + "document",
-                  entry.getKey().equals("document") == true);
-              assertTrue(
+              assertEquals(
+                  entry.getKey() + " is not equal to " + "document", "document", entry.getKey());
+              assertEquals(
                   entry.getValue() + " does not equal: " + SpellingResult.NO_FREQUENCY_INFO,
-                  entry.getValue() == SpellingResult.NO_FREQUENCY_INFO);
+                  SpellingResult.NO_FREQUENCY_INFO,
+                  (int) entry.getValue());
 
               // test something not in the spell checker
               spellOpts.tokens = queryConverter.convert("super");
               result = checker.getSuggestions(spellOpts);
-              assertTrue("result is null and it shouldn't be", result != null);
+              assertNotNull("result is null and it shouldn't be", result);
               suggestions = result.get(spellOpts.tokens.iterator().next());
-              assertTrue("suggestions size should be 0", suggestions.size() == 0);
+              assertEquals("suggestions size should be 0", 0, suggestions.size());
 
               // test something that is spelled correctly
               spellOpts.tokens = queryConverter.convert("document");
               result = checker.getSuggestions(spellOpts);
-              assertTrue("result is null and it shouldn't be", result != null);
+              assertNotNull("result is null and it shouldn't be", result);
               suggestions = result.get(spellOpts.tokens.iterator().next());
-              assertTrue("suggestions is null and it shouldn't be", suggestions == null);
+              assertNull("suggestions is null and it shouldn't be", suggestions);
 
               // Has multiple possibilities, but the exact exists, so that should be returned
               spellOpts.tokens = queryConverter.convert("red");
@@ -162,7 +162,7 @@ public class IndexBasedSpellCheckerTest extends SolrTestCaseJ4 {
               result = checker.getSuggestions(spellOpts);
               assertNotNull(result);
               suggestions = result.get(spellOpts.tokens.iterator().next());
-              assertTrue("suggestions is not null and it should be", suggestions == null);
+              assertNull("suggestions is not null and it should be", suggestions);
 
               // Try out something which should have multiple suggestions
               spellOpts.tokens = queryConverter.convert("bug");
@@ -170,25 +170,30 @@ public class IndexBasedSpellCheckerTest extends SolrTestCaseJ4 {
               assertNotNull(result);
               suggestions = result.get(spellOpts.tokens.iterator().next());
               assertNotNull(suggestions);
-              assertTrue(
+              assertEquals(
                   "suggestions Size: " + suggestions.size() + " is not: " + 2,
-                  suggestions.size() == 2);
+                  2,
+                  suggestions.size());
 
               entry = suggestions.entrySet().iterator().next();
-              assertTrue(
+              assertNotEquals(
                   entry.getKey() + " is equal to " + "bug and it shouldn't be",
-                  entry.getKey().equals("bug") == false);
-              assertTrue(
+                  "bug",
+                  entry.getKey());
+              assertEquals(
                   entry.getValue() + " does not equal: " + SpellingResult.NO_FREQUENCY_INFO,
-                  entry.getValue() == SpellingResult.NO_FREQUENCY_INFO);
+                  SpellingResult.NO_FREQUENCY_INFO,
+                  (int) entry.getValue());
 
               entry = suggestions.entrySet().iterator().next();
-              assertTrue(
+              assertNotEquals(
                   entry.getKey() + " is equal to " + "bug and it shouldn't be",
-                  entry.getKey().equals("bug") == false);
-              assertTrue(
+                  "bug",
+                  entry.getKey());
+              assertEquals(
                   entry.getValue() + " does not equal: " + SpellingResult.NO_FREQUENCY_INFO,
-                  entry.getValue() == SpellingResult.NO_FREQUENCY_INFO);
+                  SpellingResult.NO_FREQUENCY_INFO,
+                  (int) entry.getValue());
 
               // Check empty token due to spellcheck.q = ""
               spellOpts.tokens = Collections.singletonList(new Token("", 0, 0));
@@ -214,9 +219,10 @@ public class IndexBasedSpellCheckerTest extends SolrTestCaseJ4 {
     spellchecker.add(AbstractLuceneSpellChecker.SPELLCHECKER_ARG_NAME, spellchecker);
     SolrCore core = h.getCore();
     String dictName = checker.init(spellchecker, core);
-    assertTrue(
+    assertEquals(
         dictName + " is not equal to " + SolrSpellChecker.DEFAULT_DICTIONARY_NAME,
-        dictName.equals(SolrSpellChecker.DEFAULT_DICTIONARY_NAME) == true);
+        SolrSpellChecker.DEFAULT_DICTIONARY_NAME,
+        dictName);
     h.getCore()
         .withSearcher(
             searcher -> {
@@ -228,31 +234,29 @@ public class IndexBasedSpellCheckerTest extends SolrTestCaseJ4 {
                   new SpellingOptions(
                       tokens, reader, 1, SuggestMode.SUGGEST_WHEN_NOT_IN_INDEX, true, 0.5f, null);
               SpellingResult result = checker.getSuggestions(spellOpts);
-              assertTrue("result is null and it shouldn't be", result != null);
+              assertNotNull("result is null and it shouldn't be", result);
               // should be lowercased, b/c we are using a lowercasing analyzer
               Map<String, Integer> suggestions = result.get(spellOpts.tokens.iterator().next());
-              assertTrue("documemt is null and it shouldn't be", suggestions != null);
-              assertTrue(
-                  "documemt Size: " + suggestions.size() + " is not: " + 1,
-                  suggestions.size() == 1);
+              assertNotNull("documemt is null and it shouldn't be", suggestions);
+              assertEquals(
+                  "documemt Size: " + suggestions.size() + " is not: " + 1, 1, suggestions.size());
               Map.Entry<String, Integer> entry = suggestions.entrySet().iterator().next();
-              assertTrue(
-                  entry.getKey() + " is not equal to " + "document",
-                  entry.getKey().equals("document") == true);
-              assertTrue(entry.getValue() + " does not equal: " + 2, entry.getValue() == 2);
+              assertEquals(
+                  entry.getKey() + " is not equal to " + "document", "document", entry.getKey());
+              assertEquals(entry.getValue() + " does not equal: " + 2, 2, (int) entry.getValue());
 
               // test something not in the spell checker
               spellOpts.tokens = queryConverter.convert("super");
               result = checker.getSuggestions(spellOpts);
-              assertTrue("result is null and it shouldn't be", result != null);
+              assertNotNull("result is null and it shouldn't be", result);
               suggestions = result.get(spellOpts.tokens.iterator().next());
-              assertTrue("suggestions size should be 0", suggestions.size() == 0);
+              assertEquals("suggestions size should be 0", 0, suggestions.size());
 
               spellOpts.tokens = queryConverter.convert("document");
               result = checker.getSuggestions(spellOpts);
-              assertTrue("result is null and it shouldn't be", result != null);
+              assertNotNull("result is null and it shouldn't be", result);
               suggestions = result.get(spellOpts.tokens.iterator().next());
-              assertTrue("suggestions is not null and it should be", suggestions == null);
+              assertNull("suggestions is not null and it should be", suggestions);
               return null;
             });
   }
@@ -278,17 +282,18 @@ public class IndexBasedSpellCheckerTest extends SolrTestCaseJ4 {
         AbstractLuceneSpellChecker.STRING_DISTANCE, JaroWinklerDistance.class.getName());
     SolrCore core = h.getCore();
     String dictName = checker.init(spellchecker, core);
-    assertTrue(
+    assertEquals(
         dictName + " is not equal to " + SolrSpellChecker.DEFAULT_DICTIONARY_NAME,
-        dictName.equals(SolrSpellChecker.DEFAULT_DICTIONARY_NAME) == true);
+        SolrSpellChecker.DEFAULT_DICTIONARY_NAME,
+        dictName);
     h.getCore()
         .withSearcher(
             searcher -> {
               checker.build(core, searcher);
               SpellChecker sc = checker.getSpellChecker();
-              assertTrue("sc is null and it shouldn't be", sc != null);
+              assertNotNull("sc is null and it shouldn't be", sc);
               StringDistance sd = sc.getStringDistance();
-              assertTrue("sd is null and it shouldn't be", sd != null);
+              assertNotNull("sd is null and it shouldn't be", sd);
               assertTrue(
                   "sd is not an instance of " + JaroWinklerDistance.class.getName(),
                   sd instanceof JaroWinklerDistance);
@@ -334,9 +339,10 @@ public class IndexBasedSpellCheckerTest extends SolrTestCaseJ4 {
     spellchecker.add(AbstractLuceneSpellChecker.SPELLCHECKER_ARG_NAME, spellchecker);
     SolrCore core = h.getCore();
     String dictName = checker.init(spellchecker, core);
-    assertTrue(
+    assertEquals(
         dictName + " is not equal to " + SolrSpellChecker.DEFAULT_DICTIONARY_NAME,
-        dictName.equals(SolrSpellChecker.DEFAULT_DICTIONARY_NAME) == true);
+        SolrSpellChecker.DEFAULT_DICTIONARY_NAME,
+        dictName);
     h.getCore()
         .withSearcher(
             searcher -> {
@@ -348,30 +354,28 @@ public class IndexBasedSpellCheckerTest extends SolrTestCaseJ4 {
                   new SpellingOptions(
                       tokens, reader, 1, SuggestMode.SUGGEST_WHEN_NOT_IN_INDEX, true, 0.5f, null);
               SpellingResult result = checker.getSuggestions(spellOpts);
-              assertTrue("result is null and it shouldn't be", result != null);
+              assertNotNull("result is null and it shouldn't be", result);
               // should be lowercased, b/c we are using a lowercasing analyzer
               Map<String, Integer> suggestions = result.get(spellOpts.tokens.iterator().next());
-              assertTrue("flesh is null and it shouldn't be", suggestions != null);
-              assertTrue(
-                  "flesh Size: " + suggestions.size() + " is not: " + 1, suggestions.size() == 1);
+              assertNotNull("flesh is null and it shouldn't be", suggestions);
+              assertEquals(
+                  "flesh Size: " + suggestions.size() + " is not: " + 1, 1, suggestions.size());
               Map.Entry<String, Integer> entry = suggestions.entrySet().iterator().next();
-              assertTrue(
-                  entry.getKey() + " is not equal to " + "flash",
-                  entry.getKey().equals("flash") == true);
-              assertTrue(entry.getValue() + " does not equal: " + 1, entry.getValue() == 1);
+              assertEquals(entry.getKey() + " is not equal to " + "flash", "flash", entry.getKey());
+              assertEquals(entry.getValue() + " does not equal: " + 1, 1, (int) entry.getValue());
 
               // test something not in the spell checker
               spellOpts.tokens = queryConverter.convert("super");
               result = checker.getSuggestions(spellOpts);
-              assertTrue("result is null and it shouldn't be", result != null);
+              assertNotNull("result is null and it shouldn't be", result);
               suggestions = result.get(spellOpts.tokens.iterator().next());
-              assertTrue("suggestions size should be 0", suggestions.size() == 0);
+              assertEquals("suggestions size should be 0", 0, suggestions.size());
 
               spellOpts.tokens = queryConverter.convert("Caroline");
               result = checker.getSuggestions(spellOpts);
-              assertTrue("result is null and it shouldn't be", result != null);
+              assertNotNull("result is null and it shouldn't be", result);
               suggestions = result.get(spellOpts.tokens.iterator().next());
-              assertTrue("suggestions is not null and it should be", suggestions == null);
+              assertNull("suggestions is not null and it should be", suggestions);
               return null;
             });
   }
diff --git a/solr/core/src/test/org/apache/solr/spelling/SpellCheckCollatorTest.java b/solr/core/src/test/org/apache/solr/spelling/SpellCheckCollatorTest.java
index d2843a7ffe8..f7687441d02 100644
--- a/solr/core/src/test/org/apache/solr/spelling/SpellCheckCollatorTest.java
+++ b/solr/core/src/test/org/apache/solr/spelling/SpellCheckCollatorTest.java
@@ -138,7 +138,7 @@ public class SpellCheckCollatorTest extends SolrTestCaseJ4 {
   public void testCollationWithRangeQuery() {
     SolrCore core = h.getCore();
     SearchComponent speller = core.getSearchComponent("spellcheck");
-    assertTrue("speller is null and it shouldn't be", speller != null);
+    assertNotNull("speller is null and it shouldn't be", speller);
 
     ModifiableSolrParams params = new ModifiableSolrParams();
     params.add(SpellCheckComponent.COMPONENT_NAME, "true");
@@ -158,11 +158,11 @@ public class SpellCheckCollatorTest extends SolrTestCaseJ4 {
       NamedList spellCheck = (NamedList) values.get("spellcheck");
       NamedList collationHolder = (NamedList) spellCheck.get("collations");
       List<String> collations = collationHolder.getAll("collation");
-      assertTrue(collations.size() == 1);
+      assertEquals(1, collations.size());
       String collation = collations.iterator().next();
       System.out.println(collation);
-      assertTrue(
-          "Incorrect collation: " + collation, "id:[1 TO 10] AND lowerfilt:love".equals(collation));
+      assertEquals(
+          "Incorrect collation: " + collation, "id:[1 TO 10] AND lowerfilt:love", collation);
     }
   }
 
@@ -171,7 +171,7 @@ public class SpellCheckCollatorTest extends SolrTestCaseJ4 {
   public void testCollationWithHypens() {
     SolrCore core = h.getCore();
     SearchComponent speller = core.getSearchComponent("spellcheck");
-    assertTrue("speller is null and it shouldn't be", speller != null);
+    assertNotNull("speller is null and it shouldn't be", speller);
 
     ModifiableSolrParams params = new ModifiableSolrParams();
     params.add(SpellCheckComponent.COMPONENT_NAME, "true");
@@ -191,10 +191,9 @@ public class SpellCheckCollatorTest extends SolrTestCaseJ4 {
       NamedList spellCheck = (NamedList) values.get("spellcheck");
       NamedList collationHolder = (NamedList) spellCheck.get("collations");
       List<String> collations = collationHolder.getAll("collation");
-      assertTrue(collations.size() == 1);
+      assertEquals(1, collations.size());
       String collation = collations.iterator().next();
-      assertTrue(
-          "Incorrect collation: " + collation, "lowerfilt:(hyphenated-word)".equals(collation));
+      assertEquals("Incorrect collation: " + collation, "lowerfilt:(hyphenated-word)", collation);
     }
 
     params.remove(CommonParams.Q);
@@ -212,9 +211,9 @@ public class SpellCheckCollatorTest extends SolrTestCaseJ4 {
       NamedList spellCheck = (NamedList) values.get("spellcheck");
       NamedList collationHolder = (NamedList) spellCheck.get("collations");
       List<String> collations = collationHolder.getAll("collation");
-      assertTrue(collations.size() == 1);
+      assertEquals(1, collations.size());
       String collation = collations.iterator().next();
-      assertTrue("Incorrect collation: " + collation, "hyphenated-word".equals(collation));
+      assertEquals("Incorrect collation: " + collation, "hyphenated-word", collation);
     }
   }
 
@@ -278,7 +277,7 @@ public class SpellCheckCollatorTest extends SolrTestCaseJ4 {
   public void testCollateWithFilter() {
     SolrCore core = h.getCore();
     SearchComponent speller = core.getSearchComponent("spellcheck");
-    assertTrue("speller is null and it shouldn't be", speller != null);
+    assertNotNull("speller is null and it shouldn't be", speller);
 
     ModifiableSolrParams params = new ModifiableSolrParams();
     params.add(SpellCheckComponent.COMPONENT_NAME, "true");
@@ -305,7 +304,7 @@ public class SpellCheckCollatorTest extends SolrTestCaseJ4 {
     List<String> collations = collationHolder.getAll("collation");
     assertTrue(collations.size() > 0);
     for (String collation : collations) {
-      assertTrue(!collation.equals("lowerfilt:(+faith +hope +loaves)"));
+      assertNotEquals("lowerfilt:(+faith +hope +loaves)", collation);
     }
   }
 
@@ -314,7 +313,7 @@ public class SpellCheckCollatorTest extends SolrTestCaseJ4 {
   public void testCollateWithMultipleRequestHandlers() {
     SolrCore core = h.getCore();
     SearchComponent speller = core.getSearchComponent("spellcheck");
-    assertTrue("speller is null and it shouldn't be", speller != null);
+    assertNotNull("speller is null and it shouldn't be", speller);
 
     ModifiableSolrParams params = new ModifiableSolrParams();
     params.add(SpellCheckComponent.COMPONENT_NAME, "true");
@@ -361,7 +360,7 @@ public class SpellCheckCollatorTest extends SolrTestCaseJ4 {
   public void testExtendedCollate() {
     SolrCore core = h.getCore();
     SearchComponent speller = core.getSearchComponent("spellcheck");
-    assertTrue("speller is null and it shouldn't be", speller != null);
+    assertNotNull("speller is null and it shouldn't be", speller);
 
     ModifiableSolrParams params = new ModifiableSolrParams();
     params.add(CommonParams.QT, "spellCheckCompRH");
@@ -421,7 +420,7 @@ public class SpellCheckCollatorTest extends SolrTestCaseJ4 {
     spellCheck = (NamedList) values.get("spellcheck");
     collationHolder = (NamedList) spellCheck.get("collations");
     List<String> collations = collationHolder.getAll("collation");
-    assertTrue(collations.size() == 2);
+    assertEquals(2, collations.size());
     for (String multipleCollation : collations) {
       assertTrue(
           multipleCollation.equals("lowerfilt:(+faith +hope +love)")
@@ -442,26 +441,26 @@ public class SpellCheckCollatorTest extends SolrTestCaseJ4 {
     collationHolder = (NamedList) spellCheck.get("collations");
     List<NamedList> expandedCollationList = collationHolder.getAll("collation");
     Set<String> usedcollations = new HashSet<>();
-    assertTrue(expandedCollationList.size() == 2);
+    assertEquals(2, expandedCollationList.size());
     for (NamedList expandedCollation : expandedCollationList) {
       String multipleCollation = (String) expandedCollation.get("collationQuery");
       assertTrue(
           multipleCollation.equals("lowerfilt:(+faith +hope +love)")
               || multipleCollation.equals("lowerfilt:(+faith +hope +loaves)"));
-      assertTrue(!usedcollations.contains(multipleCollation));
+      assertFalse(usedcollations.contains(multipleCollation));
       usedcollations.add(multipleCollation);
 
       assertEquals(1L, expandedCollation.get("hits"));
 
       NamedList misspellingsAndCorrections =
           (NamedList) expandedCollation.get("misspellingsAndCorrections");
-      assertTrue(misspellingsAndCorrections.size() == 3);
+      assertEquals(3, misspellingsAndCorrections.size());
 
       String correctionForFauth = (String) misspellingsAndCorrections.get("fauth");
       String correctionForHome = (String) misspellingsAndCorrections.get("home");
       String correctionForLoane = (String) misspellingsAndCorrections.get("loane");
-      assertTrue(correctionForFauth.equals("faith"));
-      assertTrue(correctionForHome.equals("hope"));
+      assertEquals("faith", correctionForFauth);
+      assertEquals("hope", correctionForHome);
       assertTrue(correctionForLoane.equals("love") || correctionForLoane.equals("loaves"));
     }
   }
@@ -471,7 +470,7 @@ public class SpellCheckCollatorTest extends SolrTestCaseJ4 {
   public void testCollateWithGrouping() {
     SolrCore core = h.getCore();
     SearchComponent speller = core.getSearchComponent("spellcheck");
-    assertTrue("speller is null and it shouldn't be", speller != null);
+    assertNotNull("speller is null and it shouldn't be", speller);
 
     ModifiableSolrParams params = new ModifiableSolrParams();
     params.add(SpellCheckComponent.COMPONENT_NAME, "true");
@@ -497,7 +496,7 @@ public class SpellCheckCollatorTest extends SolrTestCaseJ4 {
     NamedList spellCheck = (NamedList) values.get("spellcheck");
     NamedList collationHolder = (NamedList) spellCheck.get("collations");
     List<String> collations = collationHolder.getAll("collation");
-    assertTrue(collations.size() == 1);
+    assertEquals(1, collations.size());
   }
 
   @Test
@@ -705,7 +704,7 @@ public class SpellCheckCollatorTest extends SolrTestCaseJ4 {
   public void testZeroTries() {
     SolrCore core = h.getCore();
     SearchComponent speller = core.getSearchComponent("spellcheck");
-    assertTrue("speller is null and it shouldn't be", speller != null);
+    assertNotNull("speller is null and it shouldn't be", speller);
 
     ModifiableSolrParams params = new ModifiableSolrParams();
     params.add(SpellCheckComponent.COMPONENT_NAME, "true");
@@ -725,7 +724,7 @@ public class SpellCheckCollatorTest extends SolrTestCaseJ4 {
     NamedList spellCheck = (NamedList) values.get("spellcheck");
     NamedList collationList = (NamedList) spellCheck.get("collations");
     List<?> collations = (List<?>) collationList.getAll("collation");
-    assertTrue(collations.size() == 2);
+    assertEquals(2, collations.size());
   }
 
   @Test
@@ -733,7 +732,7 @@ public class SpellCheckCollatorTest extends SolrTestCaseJ4 {
   public void testWithCursorMark() {
     SolrCore core = h.getCore();
     SearchComponent speller = core.getSearchComponent("spellcheck");
-    assertTrue("speller is null and it shouldn't be", speller != null);
+    assertNotNull("speller is null and it shouldn't be", speller);
 
     ModifiableSolrParams params = new ModifiableSolrParams();
     params.add(SpellCheckComponent.COMPONENT_NAME, "true");
@@ -755,6 +754,6 @@ public class SpellCheckCollatorTest extends SolrTestCaseJ4 {
     NamedList spellCheck = (NamedList) values.get("spellcheck");
     NamedList collationList = (NamedList) spellCheck.get("collations");
     List<?> collations = (List<?>) collationList.getAll("collation");
-    assertTrue(collations.size() == 1);
+    assertEquals(1, collations.size());
   }
 }
diff --git a/solr/core/src/test/org/apache/solr/spelling/SpellPossibilityIteratorTest.java b/solr/core/src/test/org/apache/solr/spelling/SpellPossibilityIteratorTest.java
index 5e31b0f8ffe..d402044b4ce 100644
--- a/solr/core/src/test/org/apache/solr/spelling/SpellPossibilityIteratorTest.java
+++ b/solr/core/src/test/org/apache/solr/spelling/SpellPossibilityIteratorTest.java
@@ -114,7 +114,7 @@ public class SpellPossibilityIteratorTest extends SolrTestCaseJ4 {
       PossibilityIterator.RankedSpellPossibility rsp = iter.next();
       count++;
     }
-    assertTrue(count == 1000);
+    assertEquals(1000, count);
 
     lotsaSuggestions.put(new Token("AYE_BEE1", 0, 7), AYE_BEE);
     lotsaSuggestions.put(new Token("AYE_BEE2", 0, 7), AYE_BEE);
@@ -142,15 +142,16 @@ public class SpellPossibilityIteratorTest extends SolrTestCaseJ4 {
 
       PossibilityIterator.RankedSpellPossibility rsp = iter.next();
       if (count == 0) {
-        assertTrue("I".equals(rsp.corrections.get(0).getCorrection()));
-        assertTrue("alpha".equals(rsp.corrections.get(1).getCorrection()));
-        assertTrue("one".equals(rsp.corrections.get(2).getCorrection()));
+        assertEquals("I", rsp.corrections.get(0).getCorrection());
+        assertEquals("alpha", rsp.corrections.get(1).getCorrection());
+        assertEquals("one", rsp.corrections.get(2).getCorrection());
       }
       count++;
     }
-    assertTrue(
+    assertEquals(
         ("Three maps (8*9*10) should return 720 iterations but instead returned " + count),
-        count == 720);
+        720,
+        count);
 
     suggestions.remove(TOKEN_CEE);
     iter = new PossibilityIterator(suggestions, 100, 10000, false);
@@ -159,8 +160,8 @@ public class SpellPossibilityIteratorTest extends SolrTestCaseJ4 {
       iter.next();
       count++;
     }
-    assertTrue(
-        ("Two maps (8*9) should return 72 iterations but instead returned " + count), count == 72);
+    assertEquals(
+        ("Two maps (8*9) should return 72 iterations but instead returned " + count), 72, count);
 
     suggestions.remove(TOKEN_BEE);
     iter = new PossibilityIterator(suggestions, 5, 10000, false);
@@ -169,7 +170,7 @@ public class SpellPossibilityIteratorTest extends SolrTestCaseJ4 {
       iter.next();
       count++;
     }
-    assertTrue(("We requested 5 suggestions but got " + count), count == 5);
+    assertEquals(("We requested 5 suggestions but got " + count), 5, count);
 
     suggestions.remove(TOKEN_AYE);
     iter = new PossibilityIterator(suggestions, Integer.MAX_VALUE, 10000, false);
@@ -178,7 +179,7 @@ public class SpellPossibilityIteratorTest extends SolrTestCaseJ4 {
       iter.next();
       count++;
     }
-    assertTrue(("No maps should return 0 iterations but instead returned " + count), count == 0);
+    assertEquals(("No maps should return 0 iterations but instead returned " + count), 0, count);
   }
 
   @Test
@@ -216,12 +217,12 @@ public class SpellPossibilityIteratorTest extends SolrTestCaseJ4 {
           aCount++;
         }
       }
-      assertTrue(c != null);
+      assertNotNull(c);
       assertTrue(ab != null || (a != null && b != null));
       assertTrue(ab == null || (a == null && b == null));
       assertTrue(dupChecker.add(rsp));
     }
-    assertTrue(aCount == 2160);
-    assertTrue(abCount == 180);
+    assertEquals(2160, aCount);
+    assertEquals(180, abCount);
   }
 }
diff --git a/solr/core/src/test/org/apache/solr/spelling/SpellingQueryConverterTest.java b/solr/core/src/test/org/apache/solr/spelling/SpellingQueryConverterTest.java
index e5dbaba66d3..42172c89e45 100644
--- a/solr/core/src/test/org/apache/solr/spelling/SpellingQueryConverterTest.java
+++ b/solr/core/src/test/org/apache/solr/spelling/SpellingQueryConverterTest.java
@@ -37,8 +37,8 @@ public class SpellingQueryConverterTest extends SolrTestCase {
     converter.init(new NamedList<>());
     converter.setAnalyzer(new WhitespaceAnalyzer());
     Collection<Token> tokens = converter.convert("field:foo");
-    assertTrue("tokens is null and it shouldn't be", tokens != null);
-    assertTrue("tokens Size: " + tokens.size() + " is not: " + 1, tokens.size() == 1);
+    assertNotNull("tokens is null and it shouldn't be", tokens);
+    assertEquals("tokens Size: " + tokens.size() + " is not: " + 1, 1, tokens.size());
   }
 
   @Test
@@ -59,9 +59,10 @@ public class SpellingQueryConverterTest extends SolrTestCase {
     int[] tokensToExpect = {1, 1, 2, 2, 2, 2, 2, 2};
     for (int i = 0; i < queries.length; i++) {
       Collection<Token> tokens = converter.convert(queries[i]);
-      assertTrue(
+      assertEquals(
           "tokens Size: " + tokens.size() + " is not: " + tokensToExpect[i],
-          tokens.size() == tokensToExpect[i]);
+          tokens.size(),
+          tokensToExpect[i]);
     }
   }
 
@@ -72,19 +73,19 @@ public class SpellingQueryConverterTest extends SolrTestCase {
     converter.setAnalyzer(new WhitespaceAnalyzer());
     String original = "field_with_underscore:value_with_underscore";
     Collection<Token> tokens = converter.convert(original);
-    assertTrue("tokens is null and it shouldn't be", tokens != null);
+    assertNotNull("tokens is null and it shouldn't be", tokens);
     assertEquals("tokens Size: " + tokens.size() + " is not 1", 1, tokens.size());
     assertTrue("Token offsets do not match", isOffsetCorrect(original, tokens));
 
     original = "field_with_digits123:value_with_digits123";
     tokens = converter.convert(original);
-    assertTrue("tokens is null and it shouldn't be", tokens != null);
+    assertNotNull("tokens is null and it shouldn't be", tokens);
     assertEquals("tokens Size: " + tokens.size() + " is not 1", 1, tokens.size());
     assertTrue("Token offsets do not match", isOffsetCorrect(original, tokens));
 
     original = "field-with-hyphens:value-with-hyphens";
     tokens = converter.convert(original);
-    assertTrue("tokens is null and it shouldn't be", tokens != null);
+    assertNotNull("tokens is null and it shouldn't be", tokens);
     assertEquals("tokens Size: " + tokens.size() + " is not 1", 1, tokens.size());
     assertTrue("Token offsets do not match", isOffsetCorrect(original, tokens));
 
@@ -97,7 +98,7 @@ public class SpellingQueryConverterTest extends SolrTestCase {
 
     original = "foo:bar^5.0";
     tokens = converter.convert(original);
-    assertTrue("tokens is null and it shouldn't be", tokens != null);
+    assertNotNull("tokens is null and it shouldn't be", tokens);
     assertEquals("tokens Size: " + tokens.size() + " is not 1", 1, tokens.size());
     assertTrue("Token offsets do not match", isOffsetCorrect(original, tokens));
 
@@ -105,15 +106,17 @@ public class SpellingQueryConverterTest extends SolrTestCase {
     String secondKeyword = "value2";
     original = "field-with-parenthesis:(" + firstKeyword + " " + secondKeyword + ")";
     tokens = converter.convert(original);
-    assertTrue("tokens is null and it shouldn't be", tokens != null);
+    assertNotNull("tokens is null and it shouldn't be", tokens);
     assertEquals("tokens Size: " + tokens.size() + " is not 2", 2, tokens.size());
     assertTrue("Token offsets do not match", isOffsetCorrect(original, tokens));
-    assertTrue(
+    assertEquals(
         "first Token is not " + firstKeyword,
-        new ArrayList<>(tokens).get(0).toString().equals(firstKeyword));
-    assertTrue(
+        new ArrayList<>(tokens).get(0).toString(),
+        firstKeyword);
+    assertEquals(
         "second Token is not " + secondKeyword,
-        new ArrayList<>(tokens).get(1).toString().equals(secondKeyword));
+        new ArrayList<>(tokens).get(1).toString(),
+        secondKeyword);
   }
 
   private boolean isOffsetCorrect(String s, Collection<Token> tokens) {
@@ -133,15 +136,15 @@ public class SpellingQueryConverterTest extends SolrTestCase {
 
     // chinese text value
     Collection<Token> tokens = converter.convert("text_field:我购买了道具和服装。");
-    assertTrue("tokens is null and it shouldn't be", tokens != null);
+    assertNotNull("tokens is null and it shouldn't be", tokens);
     assertEquals("tokens Size: " + tokens.size() + " is not 1", 1, tokens.size());
 
     tokens = converter.convert("text_购field:我购买了道具和服装。");
-    assertTrue("tokens is null and it shouldn't be", tokens != null);
+    assertNotNull("tokens is null and it shouldn't be", tokens);
     assertEquals("tokens Size: " + tokens.size() + " is not 1", 1, tokens.size());
 
     tokens = converter.convert("text_field:我购xyz买了道具和服装。");
-    assertTrue("tokens is null and it shouldn't be", tokens != null);
+    assertNotNull("tokens is null and it shouldn't be", tokens);
     assertEquals("tokens Size: " + tokens.size() + " is not 1", 1, tokens.size());
   }
 
@@ -153,12 +156,12 @@ public class SpellingQueryConverterTest extends SolrTestCase {
 
     // two field:value pairs should give two tokens
     Collection<Token> tokens = converter.convert("买text_field:我购买了道具和服装。 field2:bar");
-    assertTrue("tokens is null and it shouldn't be", tokens != null);
+    assertNotNull("tokens is null and it shouldn't be", tokens);
     assertEquals("tokens Size: " + tokens.size() + " is not 2", 2, tokens.size());
 
     // a field:value pair and a search term should give two tokens
     tokens = converter.convert("text_field:我购买了道具和服装。 bar");
-    assertTrue("tokens is null and it shouldn't be", tokens != null);
+    assertNotNull("tokens is null and it shouldn't be", tokens);
     assertEquals("tokens Size: " + tokens.size() + " is not 2", 2, tokens.size());
   }
 
diff --git a/solr/core/src/test/org/apache/solr/spelling/WordBreakSolrSpellCheckerTest.java b/solr/core/src/test/org/apache/solr/spelling/WordBreakSolrSpellCheckerTest.java
index 06eeebb05c4..59d906dc257 100644
--- a/solr/core/src/test/org/apache/solr/spelling/WordBreakSolrSpellCheckerTest.java
+++ b/solr/core/src/test/org/apache/solr/spelling/WordBreakSolrSpellCheckerTest.java
@@ -78,7 +78,7 @@ public class WordBreakSolrSpellCheckerTest extends SolrTestCaseJ4 {
       SpellingResult result = checker.getSuggestions(spellOpts);
       searcher.decref();
       assertTrue(result != null && result.getSuggestions() != null);
-      assertTrue(result.getSuggestions().size() == 5);
+      assertEquals(5, result.getSuggestions().size());
     }
 
     Collection<Token> tokens = qc.convert("paintable pine apple good ness");
@@ -87,70 +87,70 @@ public class WordBreakSolrSpellCheckerTest extends SolrTestCaseJ4 {
     searcher.decref();
 
     assertTrue(result != null && result.getSuggestions() != null);
-    assertTrue(result.getSuggestions().size() == 9);
+    assertEquals(9, result.getSuggestions().size());
 
     for (Map.Entry<Token, LinkedHashMap<String, Integer>> s : result.getSuggestions().entrySet()) {
       Token orig = s.getKey();
       String[] corr = s.getValue().keySet().toArray(new String[0]);
       if (orig.toString().equals("paintable")) {
-        assertTrue(orig.startOffset() == 0);
-        assertTrue(orig.endOffset() == 9);
-        assertTrue(orig.length() == 9);
-        assertTrue(corr.length == 3);
-        assertTrue(corr[0].equals("paint able")); // 1 op ; max doc freq=5
-        assertTrue(corr[1].equals("pain table")); // 1 op ; max doc freq=2
-        assertTrue(corr[2].equals("pa in table")); // 2 ops
+        assertEquals(0, orig.startOffset());
+        assertEquals(9, orig.endOffset());
+        assertEquals(9, orig.length());
+        assertEquals(3, corr.length);
+        assertEquals("paint able", corr[0]); // 1 op ; max doc freq=5
+        assertEquals("pain table", corr[1]); // 1 op ; max doc freq=2
+        assertEquals("pa in table", corr[2]); // 2 ops
       } else if (orig.toString().equals("pine apple")) {
-        assertTrue(orig.startOffset() == 10);
-        assertTrue(orig.endOffset() == 20);
-        assertTrue(orig.length() == 10);
-        assertTrue(corr.length == 1);
-        assertTrue(corr[0].equals("pineapple"));
+        assertEquals(10, orig.startOffset());
+        assertEquals(20, orig.endOffset());
+        assertEquals(10, orig.length());
+        assertEquals(1, corr.length);
+        assertEquals("pineapple", corr[0]);
       } else if (orig.toString().equals("paintable pine")) {
-        assertTrue(orig.startOffset() == 0);
-        assertTrue(orig.endOffset() == 14);
-        assertTrue(orig.length() == 14);
-        assertTrue(corr.length == 1);
-        assertTrue(corr[0].equals("paintablepine"));
+        assertEquals(0, orig.startOffset());
+        assertEquals(14, orig.endOffset());
+        assertEquals(14, orig.length());
+        assertEquals(1, corr.length);
+        assertEquals("paintablepine", corr[0]);
       } else if (orig.toString().equals("good ness")) {
-        assertTrue(orig.startOffset() == 21);
-        assertTrue(orig.endOffset() == 30);
-        assertTrue(orig.length() == 9);
-        assertTrue(corr.length == 1);
-        assertTrue(corr[0].equals("goodness"));
+        assertEquals(21, orig.startOffset());
+        assertEquals(30, orig.endOffset());
+        assertEquals(9, orig.length());
+        assertEquals(1, corr.length);
+        assertEquals("goodness", corr[0]);
       } else if (orig.toString().equals("pine apple good ness")) {
-        assertTrue(orig.startOffset() == 10);
-        assertTrue(orig.endOffset() == 30);
-        assertTrue(orig.length() == 20);
-        assertTrue(corr.length == 1);
-        assertTrue(corr[0].equals("pineapplegoodness"));
+        assertEquals(10, orig.startOffset());
+        assertEquals(30, orig.endOffset());
+        assertEquals(20, orig.length());
+        assertEquals(1, corr.length);
+        assertEquals("pineapplegoodness", corr[0]);
       } else if (orig.toString().equals("pine")) {
-        assertTrue(orig.startOffset() == 10);
-        assertTrue(orig.endOffset() == 14);
-        assertTrue(orig.length() == 4);
-        assertTrue(corr.length == 1);
-        assertTrue(corr[0].equals("pi ne"));
+        assertEquals(10, orig.startOffset());
+        assertEquals(14, orig.endOffset());
+        assertEquals(4, orig.length());
+        assertEquals(1, corr.length);
+        assertEquals("pi ne", corr[0]);
       } else if (orig.toString().equals("pine")) {
-        assertTrue(orig.startOffset() == 10);
-        assertTrue(orig.endOffset() == 14);
-        assertTrue(orig.length() == 4);
-        assertTrue(corr.length == 1);
-        assertTrue(corr[0].equals("pi ne"));
+        assertEquals(10, orig.startOffset());
+        assertEquals(14, orig.endOffset());
+        assertEquals(4, orig.length());
+        assertEquals(1, corr.length);
+        assertEquals("pi ne", corr[0]);
       } else if (orig.toString().equals("apple")) {
-        assertTrue(orig.startOffset() == 15);
-        assertTrue(orig.endOffset() == 20);
-        assertTrue(orig.length() == 5);
-        assertTrue(corr.length == 0);
+        assertEquals(15, orig.startOffset());
+        assertEquals(20, orig.endOffset());
+        assertEquals(5, orig.length());
+        assertEquals(0, corr.length);
       } else if (orig.toString().equals("good")) {
-        assertTrue(orig.startOffset() == 21);
-        assertTrue(orig.endOffset() == 25);
-        assertTrue(orig.length() == 4);
-        assertTrue(corr.length == 0);
+        assertEquals(21, orig.startOffset());
+        assertEquals(25, orig.endOffset());
+        assertEquals(4, orig.length());
+        assertEquals(0, corr.length);
       } else if (orig.toString().equals("ness")) {
-        assertTrue(orig.startOffset() == 26);
-        assertTrue(orig.endOffset() == 30);
-        assertTrue(orig.length() == 4);
-        assertTrue(corr.length == 0);
+        assertEquals(26, orig.startOffset());
+        assertEquals(30, orig.endOffset());
+        assertEquals(4, orig.length());
+        assertEquals(0, corr.length);
       } else {
         fail("Unexpected original result: " + orig);
       }
diff --git a/solr/core/src/test/org/apache/solr/spelling/suggest/SuggesterTest.java b/solr/core/src/test/org/apache/solr/spelling/suggest/SuggesterTest.java
index a11bcb8f758..5646d10af63 100644
--- a/solr/core/src/test/org/apache/solr/spelling/suggest/SuggesterTest.java
+++ b/solr/core/src/test/org/apache/solr/spelling/suggest/SuggesterTest.java
@@ -140,6 +140,6 @@ public class SuggesterTest extends SolrTestCaseJ4 {
     params.add("field", "test_field");
     params.add("lookupImpl", "org.apache.solr.spelling.suggest.tst.TSTLookupFactory");
     suggester.init(params, h.getCore());
-    assertTrue(suggester.getQueryAnalyzer() != null);
+    assertNotNull(suggester.getQueryAnalyzer());
   }
 }
diff --git a/solr/core/src/test/org/apache/solr/uninverting/TestFieldCache.java b/solr/core/src/test/org/apache/solr/uninverting/TestFieldCache.java
index 78b25cd41d3..efbfa28b268 100644
--- a/solr/core/src/test/org/apache/solr/uninverting/TestFieldCache.java
+++ b/solr/core/src/test/org/apache/solr/uninverting/TestFieldCache.java
@@ -176,9 +176,10 @@ public class TestFieldCache extends SolrTestCase {
     assertTrue(
         "docsWithField(theLong) must be class Bits.MatchAllBits",
         docsWithField instanceof Bits.MatchAllBits);
-    assertTrue(
+    assertEquals(
         "docsWithField(theLong) Size: " + docsWithField.length() + " is not: " + NUM_DOCS,
-        docsWithField.length() == NUM_DOCS);
+        docsWithField.length(),
+        NUM_DOCS);
     for (int i = 0; i < docsWithField.length(); i++) {
       assertTrue(docsWithField.get(i));
     }
@@ -191,9 +192,10 @@ public class TestFieldCache extends SolrTestCase {
     assertFalse(
         "docsWithField(sparse) must not be class Bits.MatchAllBits",
         docsWithField instanceof Bits.MatchAllBits);
-    assertTrue(
+    assertEquals(
         "docsWithField(sparse) Size: " + docsWithField.length() + " is not: " + NUM_DOCS,
-        docsWithField.length() == NUM_DOCS);
+        docsWithField.length(),
+        NUM_DOCS);
     for (int i = 0; i < docsWithField.length(); i++) {
       assertEquals(i % 2 == 0, docsWithField.get(i));
     }
@@ -279,7 +281,7 @@ public class TestFieldCache extends SolrTestCase {
           assertEquals(i, termOrds.nextDoc());
         }
         long ord = termOrds.nextOrd();
-        assert ord != SortedSetDocValues.NO_MORE_ORDS;
+        assertNotEquals(ord, SortedSetDocValues.NO_MORE_ORDS);
         BytesRef scratch = termOrds.lookupOrd(ord);
         assertEquals(v, scratch);
       }
@@ -290,7 +292,7 @@ public class TestFieldCache extends SolrTestCase {
 
     // test bad field
     termOrds = cache.getDocTermOrds(reader, "bogusfield", null);
-    assertTrue(termOrds.getValueCount() == 0);
+    assertEquals(0, termOrds.getValueCount());
 
     FieldCache.DEFAULT.purgeByCacheKey(reader.getCoreCacheHelper().getKey());
   }
diff --git a/solr/core/src/test/org/apache/solr/uninverting/TestFieldCacheSortRandom.java b/solr/core/src/test/org/apache/solr/uninverting/TestFieldCacheSortRandom.java
index 4a27ebb5b46..410e3a4ee55 100644
--- a/solr/core/src/test/org/apache/solr/uninverting/TestFieldCacheSortRandom.java
+++ b/solr/core/src/test/org/apache/solr/uninverting/TestFieldCacheSortRandom.java
@@ -114,7 +114,7 @@ public class TestFieldCacheSortRandom extends SolrTestCase {
         if (type == SortField.Type.STRING) {
           doc.add(new StringField("stringdv", s, Field.Store.NO));
         } else {
-          assert type == SortField.Type.STRING_VAL;
+          assertSame(type, SortField.Type.STRING_VAL);
           doc.add(new BinaryDocValuesField("stringdv", new BytesRef(s)));
         }
         docValues.add(new BytesRef(s));
diff --git a/solr/core/src/test/org/apache/solr/uninverting/TestFieldCacheVsDocValues.java b/solr/core/src/test/org/apache/solr/uninverting/TestFieldCacheVsDocValues.java
index e8aa4f34537..89ae4181f85 100644
--- a/solr/core/src/test/org/apache/solr/uninverting/TestFieldCacheVsDocValues.java
+++ b/solr/core/src/test/org/apache/solr/uninverting/TestFieldCacheVsDocValues.java
@@ -320,7 +320,7 @@ public class TestFieldCacheVsDocValues extends SolrTestCase {
     int numDocs = atLeast(300);
     // numDocs should be always > 256 so that in case of a codec that optimizes
     // for numbers of values <= 256, all storage layouts are tested
-    assert numDocs > 256;
+    assertTrue(numDocs > 256);
     for (int i = 0; i < numDocs; i++) {
       idField.setStringValue(Integer.toString(i));
       long value = longs.next();
diff --git a/solr/core/src/test/org/apache/solr/uninverting/TestLegacyFieldCache.java b/solr/core/src/test/org/apache/solr/uninverting/TestLegacyFieldCache.java
index 6ed4d6c5a21..b1750a59921 100644
--- a/solr/core/src/test/org/apache/solr/uninverting/TestLegacyFieldCache.java
+++ b/solr/core/src/test/org/apache/solr/uninverting/TestLegacyFieldCache.java
@@ -143,9 +143,10 @@ public class TestLegacyFieldCache extends SolrTestCase {
     assertTrue(
         "docsWithField(theLong) must be class Bits.MatchAllBits",
         docsWithField instanceof Bits.MatchAllBits);
-    assertTrue(
+    assertEquals(
         "docsWithField(theLong) Size: " + docsWithField.length() + " is not: " + NUM_DOCS,
-        docsWithField.length() == NUM_DOCS);
+        docsWithField.length(),
+        NUM_DOCS);
     for (int i = 0; i < docsWithField.length(); i++) {
       assertTrue(docsWithField.get(i));
     }
@@ -158,9 +159,10 @@ public class TestLegacyFieldCache extends SolrTestCase {
     assertFalse(
         "docsWithField(sparse) must not be class Bits.MatchAllBits",
         docsWithField instanceof Bits.MatchAllBits);
-    assertTrue(
+    assertEquals(
         "docsWithField(sparse) Size: " + docsWithField.length() + " is not: " + NUM_DOCS,
-        docsWithField.length() == NUM_DOCS);
+        docsWithField.length(),
+        NUM_DOCS);
     for (int i = 0; i < docsWithField.length(); i++) {
       assertEquals(i % 2 == 0, docsWithField.get(i));
     }
diff --git a/solr/core/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java b/solr/core/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java
index 65a424cfb0b..0d30bb0f198 100644
--- a/solr/core/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java
@@ -443,7 +443,7 @@ public class DirectUpdateHandlerTest extends SolrTestCaseJ4 {
   @Test
   public void testPostSoftCommitEvents() {
     SolrCore core = h.getCore();
-    assert core != null;
+    assertNotNull(core);
     DirectUpdateHandler2 updater = (DirectUpdateHandler2) core.getUpdateHandler();
     MySolrEventListener listener = new MySolrEventListener();
     core.registerNewSearcherListener(listener);
@@ -451,7 +451,8 @@ public class DirectUpdateHandlerTest extends SolrTestCaseJ4 {
     assertU(adoc("id", "999"));
     assertU(commit("softCommit", "true"));
     assertEquals("newSearcher was called more than once", 1, listener.newSearcherCount.get());
-    assertFalse("postSoftCommit was not called", listener.postSoftCommitAt.get() == Long.MAX_VALUE);
+    assertNotEquals(
+        "postSoftCommit was not called", Long.MAX_VALUE, listener.postSoftCommitAt.get());
     assertTrue(
         "newSearcher was called after postSoftCommitCallback",
         listener.postSoftCommitAt.get() >= listener.newSearcherOpenedAt.get());
diff --git a/solr/core/src/test/org/apache/solr/update/DocumentBuilderTest.java b/solr/core/src/test/org/apache/solr/update/DocumentBuilderTest.java
index 96b39d0d035..735fe27c402 100644
--- a/solr/core/src/test/org/apache/solr/update/DocumentBuilderTest.java
+++ b/solr/core/src/test/org/apache/solr/update/DocumentBuilderTest.java
@@ -40,7 +40,6 @@ import org.apache.solr.schema.FieldType;
 import org.hamcrest.MatcherAssert;
 import org.junit.After;
 import org.junit.AfterClass;
-import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -385,7 +384,7 @@ public class DocumentBuilderTest extends SolrTestCaseJ4 {
     doc.addField("vector3", Arrays.asList(1.1f, 2.1f, 3.1f, 4.1f));
 
     RuntimeException thrown =
-        Assert.assertThrows(
+        assertThrows(
             "Incorrect destination field type should raise exception",
             SolrException.class,
             () -> {
@@ -406,7 +405,7 @@ public class DocumentBuilderTest extends SolrTestCaseJ4 {
     doc.addField("vector4", Arrays.asList(1.1f, 2.1f, 3.1f, 4.1f));
 
     RuntimeException thrown =
-        Assert.assertThrows(
+        assertThrows(
             "Incorrect destination dimension should raise exception",
             SolrException.class,
             () -> {
diff --git a/solr/core/src/test/org/apache/solr/update/MaxSizeAutoCommitTest.java b/solr/core/src/test/org/apache/solr/update/MaxSizeAutoCommitTest.java
index 1b1b12628cb..08380cf251a 100644
--- a/solr/core/src/test/org/apache/solr/update/MaxSizeAutoCommitTest.java
+++ b/solr/core/src/test/org/apache/solr/update/MaxSizeAutoCommitTest.java
@@ -36,7 +36,6 @@ import org.apache.solr.request.SolrQueryRequestBase;
 import org.apache.solr.response.SolrQueryResponse;
 import org.apache.solr.search.SolrIndexSearcher;
 import org.junit.After;
-import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 import org.slf4j.Logger;
@@ -104,15 +103,13 @@ public class MaxSizeAutoCommitTest extends SolrTestCaseJ4 {
 
   @Test
   public void testAdds() throws Exception {
-
-    Assert.assertEquals(
+    assertEquals(
         "There have been no updates yet, so there shouldn't have been any commits",
         0,
         hardCommitTracker.getCommitCount());
 
     long tlogSizePreUpdates = updateHandler.getUpdateLog().getCurrentLogSizeFromStream();
-    Assert.assertEquals(
-        "There have been no updates yet, so tlog should be empty", 0, tlogSizePreUpdates);
+    assertEquals("There have been no updates yet, so tlog should be empty", 0, tlogSizePreUpdates);
 
     // Add a large number of docs - should trigger a commit
     int numDocsToAdd = 500;
@@ -128,15 +125,13 @@ public class MaxSizeAutoCommitTest extends SolrTestCaseJ4 {
 
   @Test
   public void testRedundantDeletes() throws Exception {
-
-    Assert.assertEquals(
+    assertEquals(
         "There have been no updates yet, so there shouldn't have been any commits",
         0,
         hardCommitTracker.getCommitCount());
 
     long tlogSizePreUpdates = updateHandler.getUpdateLog().getCurrentLogSizeFromStream();
-    Assert.assertEquals(
-        "There have been no updates yet, so tlog should be empty", 0, tlogSizePreUpdates);
+    assertEquals("There have been no updates yet, so tlog should be empty", 0, tlogSizePreUpdates);
 
     // Add docs
     int numDocsToAdd = 150;
@@ -171,15 +166,13 @@ public class MaxSizeAutoCommitTest extends SolrTestCaseJ4 {
 
   @Test
   public void testDeletes() throws Exception {
-
-    Assert.assertEquals(
+    assertEquals(
         "There have been no updates yet, so there shouldn't have been any commits",
         0,
         hardCommitTracker.getCommitCount());
 
     long tlogSizePreUpdates = updateHandler.getUpdateLog().getCurrentLogSizeFromStream();
-    Assert.assertEquals(
-        "There have been no updates yet, so tlog should be empty", 0, tlogSizePreUpdates);
+    assertEquals("There have been no updates yet, so tlog should be empty", 0, tlogSizePreUpdates);
 
     // Add docs
     int numDocsToAdd = 500;
diff --git a/solr/core/src/test/org/apache/solr/update/PeerSyncTest.java b/solr/core/src/test/org/apache/solr/update/PeerSyncTest.java
index 7a603bd74cc..fb010f9d3a1 100644
--- a/solr/core/src/test/org/apache/solr/update/PeerSyncTest.java
+++ b/solr/core/src/test/org/apache/solr/update/PeerSyncTest.java
@@ -463,7 +463,7 @@ public class PeerSyncTest extends BaseDistributedSearchTestCase {
               otherVersions, completeList, ourUpdates, ourLowThreshold);
       // no updates requested since other has nothing
       assertEquals(0L, mur.totalRequestedUpdates);
-      assertEquals(null, mur.versionsAndRanges);
+      assertNull(mur.versionsAndRanges);
     }
   }
 
@@ -478,7 +478,7 @@ public class PeerSyncTest extends BaseDistributedSearchTestCase {
               otherVersions, completeList, ourUpdates, ourLowThreshold);
       // no updates requested since us and other have the same versions
       assertEquals(0L, mur.totalRequestedUpdates);
-      assertEquals(null, mur.versionsAndRanges);
+      assertNull(mur.versionsAndRanges);
     }
   }
 
@@ -512,7 +512,7 @@ public class PeerSyncTest extends BaseDistributedSearchTestCase {
          */
         assertTrue(missing < ourLowThreshold);
         assertEquals(0L, mur.totalRequestedUpdates);
-        assertEquals(null, mur.versionsAndRanges);
+        assertNull(mur.versionsAndRanges);
       }
     }
   }
@@ -548,7 +548,7 @@ public class PeerSyncTest extends BaseDistributedSearchTestCase {
            */
           assertTrue(missing < ourLowThreshold);
           assertEquals(0L, mur.totalRequestedUpdates);
-          assertEquals(null, mur.versionsAndRanges);
+          assertNull(mur.versionsAndRanges);
         }
       }
     }
@@ -583,7 +583,7 @@ public class PeerSyncTest extends BaseDistributedSearchTestCase {
         } else {
           // request no updates because ???
           assertEquals(0L, mur.totalRequestedUpdates);
-          assertEquals(null, mur.versionsAndRanges);
+          assertNull(mur.versionsAndRanges);
         }
       }
       {
@@ -598,7 +598,7 @@ public class PeerSyncTest extends BaseDistributedSearchTestCase {
         } else {
           // request no updates because ???
           assertEquals(0L, mur.totalRequestedUpdates);
-          assertEquals(null, mur.versionsAndRanges);
+          assertNull(mur.versionsAndRanges);
         }
       }
       {
@@ -613,7 +613,7 @@ public class PeerSyncTest extends BaseDistributedSearchTestCase {
         } else {
           // request no updates since we don't need a complete list ...
           assertEquals(0L, mur.totalRequestedUpdates);
-          assertEquals(null, mur.versionsAndRanges);
+          assertNull(mur.versionsAndRanges);
           // ... and all the missing versions are older/lower than our 'low' threshold
           for (Long version : otherVersions) {
             if (!ourUpdates.contains(version)) {
@@ -656,7 +656,7 @@ public class PeerSyncTest extends BaseDistributedSearchTestCase {
         } else {
           // request no updates because ???
           assertEquals(0L, mur.totalRequestedUpdates);
-          assertEquals(null, mur.versionsAndRanges);
+          assertNull(mur.versionsAndRanges);
         }
       }
       {
@@ -671,7 +671,7 @@ public class PeerSyncTest extends BaseDistributedSearchTestCase {
         } else {
           // request no updates since we don't need a complete list ...
           assertEquals(0L, mur.totalRequestedUpdates);
-          assertEquals(null, mur.versionsAndRanges);
+          assertNull(mur.versionsAndRanges);
           // ... and all the missing versions are older/lower than our 'low' threshold
           for (Long version : otherVersions) {
             if (!ourUpdates.contains(version)) {
diff --git a/solr/core/src/test/org/apache/solr/update/PeerSyncWithIndexFingerprintCachingTest.java b/solr/core/src/test/org/apache/solr/update/PeerSyncWithIndexFingerprintCachingTest.java
index 07fd1ec8c4c..02e62252efa 100644
--- a/solr/core/src/test/org/apache/solr/update/PeerSyncWithIndexFingerprintCachingTest.java
+++ b/solr/core/src/test/org/apache/solr/update/PeerSyncWithIndexFingerprintCachingTest.java
@@ -29,7 +29,6 @@ import org.apache.solr.common.params.ModifiableSolrParams;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.common.util.StrUtils;
 import org.apache.solr.update.processor.DistributedUpdateProcessor.DistribPhase;
-import org.junit.Assert;
 import org.junit.Test;
 
 /**
@@ -80,7 +79,7 @@ public class PeerSyncWithIndexFingerprintCachingTest extends BaseDistributedSear
     IndexFingerprint after = getFingerprint(client0, Long.MAX_VALUE);
 
     // make sure fingerprint before and after deleting are not the same
-    Assert.assertTrue(IndexFingerprint.compare(before, after) != 0);
+    assertTrue(IndexFingerprint.compare(before, after) != 0);
 
     // replica which missed the delete operation should be able to sync
     assertSync(client1, numVersions, shardsArr[0]);
diff --git a/solr/core/src/test/org/apache/solr/update/SoftAutoCommitTest.java b/solr/core/src/test/org/apache/solr/update/SoftAutoCommitTest.java
index 141c45651b8..7a329d5c109 100644
--- a/solr/core/src/test/org/apache/solr/update/SoftAutoCommitTest.java
+++ b/solr/core/src/test/org/apache/solr/update/SoftAutoCommitTest.java
@@ -18,7 +18,6 @@ package org.apache.solr.update;
 
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
 import static java.util.concurrent.TimeUnit.NANOSECONDS;
-import static org.junit.Assert.assertEquals;
 
 import java.lang.invoke.MethodHandles;
 import java.util.concurrent.BlockingQueue;
@@ -94,7 +93,7 @@ public class SoftAutoCommitTest extends SolrTestCaseJ4 {
     final int hardCommitMaxDocs = 7;
 
     // remainder of test designed with these assumptions
-    assert softCommitMaxDocs < hardCommitMaxDocs;
+    assertTrue(softCommitMaxDocs < hardCommitMaxDocs);
 
     CommitTracker hardTracker = updater.commitTracker;
     CommitTracker softTracker = updater.softCommitTracker;
@@ -524,7 +523,7 @@ public class SoftAutoCommitTest extends SolrTestCaseJ4 {
       final BlockingQueue<Long> queue)
       throws InterruptedException {
 
-    assert 0 < maxNumCommits;
+    assertTrue(0 < maxNumCommits);
 
     // these will be modified in each iteration of our assertion loop
     long prevTimestampNanos = startTimestampNanos;
@@ -637,6 +636,6 @@ class MockEventListener implements SolrEventListener {
   }
 
   public void assertSaneOffers() {
-    assertEquals("Failure of MockEventListener" + fail.toString(), 0, fail.length());
+    SolrTestCaseJ4.assertEquals("Failure of MockEventListener" + fail.toString(), 0, fail.length());
   }
 }
diff --git a/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java b/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java
index 0f8caaa755d..f4b32d93522 100644
--- a/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java
+++ b/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java
@@ -114,7 +114,7 @@ public class SolrIndexConfigTest extends SolrTestCaseJ4 {
     ConcurrentMergeScheduler ms = (ConcurrentMergeScheduler) iwc.getMergeScheduler();
     assertEquals("ms.maxMergeCount", 987, ms.getMaxMergeCount());
     assertEquals("ms.maxThreadCount", 42, ms.getMaxThreadCount());
-    assertEquals("ms.isAutoIOThrottle", true, ms.getAutoIOThrottle());
+    assertTrue("ms.isAutoIOThrottle", ms.getAutoIOThrottle());
   }
 
   @Test
@@ -135,7 +135,7 @@ public class SolrIndexConfigTest extends SolrTestCaseJ4 {
     ConcurrentMergeScheduler ms = (ConcurrentMergeScheduler) iwc.getMergeScheduler();
     assertEquals("ms.maxMergeCount", 987, ms.getMaxMergeCount());
     assertEquals("ms.maxThreadCount", 42, ms.getMaxThreadCount());
-    assertEquals("ms.isAutoIOThrottle", false, ms.getAutoIOThrottle());
+    assertFalse("ms.isAutoIOThrottle", ms.getAutoIOThrottle());
   }
 
   public void testSortingMPSolrIndexConfigCreation() throws Exception {
diff --git a/solr/core/src/test/org/apache/solr/update/TestInPlaceUpdatesDistrib.java b/solr/core/src/test/org/apache/solr/update/TestInPlaceUpdatesDistrib.java
index bfc47dd83cf..64078919cf0 100644
--- a/solr/core/src/test/org/apache/solr/update/TestInPlaceUpdatesDistrib.java
+++ b/solr/core/src/test/org/apache/solr/update/TestInPlaceUpdatesDistrib.java
@@ -490,7 +490,7 @@ public class TestInPlaceUpdatesDistrib extends AbstractFullDistribZkTestBase {
       // already had an init value of 0 -- which is an interesting edge case, so we don't exclude it
       final float multiplier = r.nextBoolean() ? -5.0F : 5.0F;
       final float value = r.nextFloat() * multiplier;
-      assert -5.0F <= value && value <= 5.0F;
+      assertTrue(-5.0F <= value && value <= 5.0F);
       valuesList.set(id, value);
     }
     log.info("inplace_updatable_float: {}", valuesList);
@@ -523,9 +523,9 @@ public class TestInPlaceUpdatesDistrib extends AbstractFullDistribZkTestBase {
       // thus ensuring that after all increments are done, there should be
       // 0 test docs matching the query inplace_updatable_float:[-10 TO 10]
       final float inc = (r.nextBoolean() ? -1.0F : 1.0F) * (r.nextFloat() + (float) atLeast(20));
-      assert 20 < Math.abs(inc);
+      assertTrue(20 < Math.abs(inc));
       final float value = (float) valuesList.get(id) + inc;
-      assert value < -10 || 10 < value;
+      assertTrue(value < -10 || 10 < value);
 
       valuesList.set(id, value);
       index("id", id, "inplace_updatable_float", map("inc", inc));
@@ -651,7 +651,7 @@ public class TestInPlaceUpdatesDistrib extends AbstractFullDistribZkTestBase {
       final String fieldName,
       final List<Number> valuesList)
       throws Exception {
-    assert luceneDocids.size() == valuesList.size();
+    assertEquals(luceneDocids.size(), valuesList.size());
     final long numFoundExpected = luceneDocids.size();
 
     for (SolrClient client : clients) {
@@ -708,7 +708,7 @@ public class TestInPlaceUpdatesDistrib extends AbstractFullDistribZkTestBase {
       final String fieldName,
       final List<Number> valuesList) {
 
-    assert luceneDocids.size() == valuesList.size();
+    assertEquals(luceneDocids.size(), valuesList.size());
     assertEquals(
         msgPre
             + ": rows param wasn't big enough, we need to compare all results matching the query",
@@ -758,9 +758,10 @@ public class TestInPlaceUpdatesDistrib extends AbstractFullDistribZkTestBase {
     assertTrue(currentVersion > version);
     version = currentVersion;
     LEADER.commit();
-    assertTrue(
+    assertEquals(
         "Earlier: " + docids + ", now: " + getInternalDocIds("100"),
-        docids.equals(getInternalDocIds("100")));
+        docids,
+        getInternalDocIds("100"));
 
     SolrDocument sdoc = LEADER.getById("100"); // RTG straight from the index
     assertEquals(sdoc.toString(), inplace_updatable_float, sdoc.get("inplace_updatable_float"));
@@ -795,9 +796,10 @@ public class TestInPlaceUpdatesDistrib extends AbstractFullDistribZkTestBase {
     assertTrue(currentVersion > version);
     version = currentVersion;
     LEADER.commit();
-    assertTrue(
+    assertEquals(
         "Earlier: " + docids + ", now: " + getInternalDocIds("100"),
-        docids.equals(getInternalDocIds("100")));
+        docids,
+        getInternalDocIds("100"));
 
     currentVersion = addDocAndGetVersion("id", 100, "inplace_updatable_int", map("set", "100"));
     assertTrue(currentVersion > version);
@@ -844,9 +846,10 @@ public class TestInPlaceUpdatesDistrib extends AbstractFullDistribZkTestBase {
 
     // assert that the internal docid for id=100 document remains same, in each replica, as before
     LEADER.commit(); // can't get (real) [docid] from the tlogs, need to force a commit
-    assertTrue(
+    assertEquals(
         "Earlier: " + docids + ", now: " + getInternalDocIds("100"),
-        docids.equals(getInternalDocIds("100")));
+        docids,
+        getInternalDocIds("100"));
 
     log.info("ensureRtgWorksWithPartialUpdatesTest: This test passed fine...");
   }
@@ -864,7 +867,7 @@ public class TestInPlaceUpdatesDistrib extends AbstractFullDistribZkTestBase {
       assertEquals(Integer.class, docid.getClass());
       ret.add((Integer) docid);
     }
-    assert clients.size() == ret.size();
+    assertEquals(clients.size(), ret.size());
     return ret;
   }
 
@@ -1585,7 +1588,7 @@ public class TestInPlaceUpdatesDistrib extends AbstractFullDistribZkTestBase {
     }
     LEADER.commit();
 
-    assert specialIds.size() == versions.size();
+    assertEquals(specialIds.size(), versions.size());
     return versions;
   }
 
diff --git a/solr/core/src/test/org/apache/solr/update/TestInPlaceUpdatesStandalone.java b/solr/core/src/test/org/apache/solr/update/TestInPlaceUpdatesStandalone.java
index dd819b690c3..cd0fab5c1c5 100644
--- a/solr/core/src/test/org/apache/solr/update/TestInPlaceUpdatesStandalone.java
+++ b/solr/core/src/test/org/apache/solr/update/TestInPlaceUpdatesStandalone.java
@@ -750,7 +750,7 @@ public class TestInPlaceUpdatesStandalone extends SolrTestCaseJ4 {
 
   public static long addAndAssertVersion(long expectedCurrentVersion, Object... fields)
       throws Exception {
-    assert 0 < expectedCurrentVersion;
+    assertTrue(0 < expectedCurrentVersion);
     long currentVersion = addAndGetVersion(sdoc(fields), null);
     assertTrue(currentVersion > expectedCurrentVersion);
     return currentVersion;
diff --git a/solr/core/src/test/org/apache/solr/update/TestNestedUpdateProcessor.java b/solr/core/src/test/org/apache/solr/update/TestNestedUpdateProcessor.java
index 1355f5b783f..f8eaf7b47ca 100644
--- a/solr/core/src/test/org/apache/solr/update/TestNestedUpdateProcessor.java
+++ b/solr/core/src/test/org/apache/solr/update/TestNestedUpdateProcessor.java
@@ -403,7 +403,7 @@ public class TestNestedUpdateProcessor extends SolrTestCaseJ4 {
           // doc_id -> descendentId must have at least one ancestor (since it's not a root level
           // document)
           final String descendentId = doc_id;
-          assert allDocs.get(descendentId).containsKey("ancestor_ids_ss");
+          assertTrue(allDocs.get(descendentId).containsKey("ancestor_ids_ss"));
           final List<Object> allAncestorIds =
               new ArrayList<>(allDocs.get(descendentId).getFieldValues("ancestor_ids_ss"));
 
@@ -670,8 +670,8 @@ public class TestNestedUpdateProcessor extends SolrTestCaseJ4 {
     }
 
     private void assertValidPathSyntax(String path) {
-      assert path.startsWith("/");
-      assert (1 == path.length()) ^ !path.endsWith("/");
+      assertTrue(path.startsWith("/"));
+      assertTrue((1 == path.length()) ^ !path.endsWith("/"));
     }
   }
 }
diff --git a/solr/core/src/test/org/apache/solr/update/UpdateParamsTest.java b/solr/core/src/test/org/apache/solr/update/UpdateParamsTest.java
index 4c87d0ad313..6d7e743c1ee 100644
--- a/solr/core/src/test/org/apache/solr/update/UpdateParamsTest.java
+++ b/solr/core/src/test/org/apache/solr/update/UpdateParamsTest.java
@@ -52,9 +52,10 @@ public class UpdateParamsTest extends SolrTestCaseJ4 {
       handler.handleRequestBody(req, rsp);
       assertTrue("Old param update.processor should not have any effect anymore", true);
     } catch (Exception e) {
-      assertFalse(
+      assertNotEquals(
           "Got wrong exception while testing update.chain",
-          e.getMessage().equals("unknown UpdateRequestProcessorChain: nonexistent"));
+          "unknown UpdateRequestProcessorChain: nonexistent",
+          e.getMessage());
     }
 
     // Then check that the new param behaves correctly
@@ -63,8 +64,7 @@ public class UpdateParamsTest extends SolrTestCaseJ4 {
     req.setParams(params);
     try {
       handler.handleRequestBody(req, rsp);
-      assertFalse(
-          "Faulty update.chain parameter not causing an error - i.e. it is not detected", true);
+      fail("Faulty update.chain parameter not causing an error - i.e. it is not detected");
     } catch (Exception e) {
       assertEquals(
           "Got wrong exception while testing update.chain",
diff --git a/solr/core/src/test/org/apache/solr/update/processor/AtomicUpdateJavabinTest.java b/solr/core/src/test/org/apache/solr/update/processor/AtomicUpdateJavabinTest.java
index 4e51a2817cc..38b1957ea70 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/AtomicUpdateJavabinTest.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/AtomicUpdateJavabinTest.java
@@ -423,7 +423,7 @@ public class AtomicUpdateJavabinTest extends SolrCloudTestCase {
     final QueryResponse response = request.process(cluster.getSolrClient(), COLLECTION);
 
     final NamedList<Object> rawResponse = response.getResponse();
-    assertTrue(rawResponse.get("doc") != null);
+    assertNotNull(rawResponse.get("doc"));
     assertTrue(rawResponse.get("doc") instanceof SolrDocument);
     final SolrDocument doc = (SolrDocument) rawResponse.get("doc");
     final Collection<Object> valuesAfterUpdate = doc.getFieldValues(fieldName);
diff --git a/solr/core/src/test/org/apache/solr/update/processor/CategoryRoutedAliasUpdateProcessorTest.java b/solr/core/src/test/org/apache/solr/update/processor/CategoryRoutedAliasUpdateProcessorTest.java
index ebf912b27b0..9c3943634e5 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/CategoryRoutedAliasUpdateProcessorTest.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/CategoryRoutedAliasUpdateProcessorTest.java
@@ -466,7 +466,7 @@ public class CategoryRoutedAliasUpdateProcessorTest extends RoutedAliasUpdatePro
             .get(getAlias());
     observedCols = new ArrayList<>(observedCols);
     observedCols.sort(String::compareTo); // don't really care about the order here.
-    assert !observedCols.isEmpty();
+    assertFalse(observedCols.isEmpty());
 
     int numFoundViaCollections = 0;
     for (String col : observedCols) {
diff --git a/solr/core/src/test/org/apache/solr/update/processor/DimensionalRoutedAliasUpdateProcessorTest.java b/solr/core/src/test/org/apache/solr/update/processor/DimensionalRoutedAliasUpdateProcessorTest.java
index 7d8ae26aa48..28e5e665813 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/DimensionalRoutedAliasUpdateProcessorTest.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/DimensionalRoutedAliasUpdateProcessorTest.java
@@ -562,7 +562,7 @@ public class DimensionalRoutedAliasUpdateProcessorTest extends RoutedAliasUpdate
             .process(solrClient)
             .getAliasesAsLists()
             .get(getSaferTestName());
-    assert !cols.isEmpty();
+    assertFalse(cols.isEmpty());
 
     for (String category : categories) {
       List<String> cats =
diff --git a/solr/core/src/test/org/apache/solr/update/processor/NestedAtomicUpdateTest.java b/solr/core/src/test/org/apache/solr/update/processor/NestedAtomicUpdateTest.java
index 007eba8d4d3..c8d11232809 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/NestedAtomicUpdateTest.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/NestedAtomicUpdateTest.java
@@ -247,10 +247,9 @@ public class NestedAtomicUpdateTest extends SolrTestCaseJ4 {
             () -> {
               docMerger.merge(updateDoc, existingDoc);
             });
-    assertTrue(
-        expected
-            .getMessage()
-            .equals("A nested atomic update can only update an existing nested document"));
+    assertEquals(
+        "A nested atomic update can only update an existing nested document",
+        expected.getMessage());
   }
 
   @Test
diff --git a/solr/core/src/test/org/apache/solr/update/processor/SkipExistingDocumentsProcessorFactoryTest.java b/solr/core/src/test/org/apache/solr/update/processor/SkipExistingDocumentsProcessorFactoryTest.java
index 550edc12328..f48fce7c9bf 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/SkipExistingDocumentsProcessorFactoryTest.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/SkipExistingDocumentsProcessorFactoryTest.java
@@ -16,8 +16,6 @@
  */
 package org.apache.solr.update.processor;
 
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
@@ -38,7 +36,7 @@ import org.junit.BeforeClass;
 import org.junit.Test;
 import org.mockito.Mockito;
 
-public class SkipExistingDocumentsProcessorFactoryTest {
+public class SkipExistingDocumentsProcessorFactoryTest extends SolrTestCaseJ4 {
 
   private BytesRef docId = new BytesRef();
 
diff --git a/solr/core/src/test/org/apache/solr/update/processor/TestCloudDeduplication.java b/solr/core/src/test/org/apache/solr/update/processor/TestCloudDeduplication.java
index b1b8f5984f0..85f7952c4f6 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/TestCloudDeduplication.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/TestCloudDeduplication.java
@@ -110,7 +110,7 @@ public class TestCloudDeduplication extends SolrCloudTestCase {
     }
     assertEquals("commit failed", 0, getRandClient().commit(COLLECTION).getStatus());
 
-    assert docCounter > uniqueMod;
+    assertTrue(docCounter > uniqueMod);
 
     // query our collection and confirm no duplicates on the signature field (using faceting)
     // Check every (node) for consistency...
diff --git a/solr/core/src/test/org/apache/solr/update/processor/TestDocBasedVersionConstraints.java b/solr/core/src/test/org/apache/solr/update/processor/TestDocBasedVersionConstraints.java
index 7ff2c37a4cf..0e2e0c2476a 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/TestDocBasedVersionConstraints.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/TestDocBasedVersionConstraints.java
@@ -789,7 +789,7 @@ public class TestDocBasedVersionConstraints extends SolrTestCaseJ4 {
   }
 
   private void updateWithChain(String chain, String... fields) throws Exception {
-    assert fields.length % 2 == 0;
+    assertEquals(0, fields.length % 2);
     SolrInputDocument doc = new SolrInputDocument(fields);
     updateJ(jsonAdd(doc), params("update.chain", chain));
   }
diff --git a/solr/core/src/test/org/apache/solr/update/processor/TimeRoutedAliasUpdateProcessorTest.java b/solr/core/src/test/org/apache/solr/update/processor/TimeRoutedAliasUpdateProcessorTest.java
index 2725d3d1e11..ecb05fad51f 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/TimeRoutedAliasUpdateProcessorTest.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/TimeRoutedAliasUpdateProcessorTest.java
@@ -720,9 +720,9 @@ public class TimeRoutedAliasUpdateProcessorTest extends RoutedAliasUpdateProcess
     colsT1 =
         new CollectionAdminRequest.ListAliases().process(solrClient).getAliasesAsLists().get(alias);
     assertEquals(3, colsT1.size());
-    assertTrue(
+    assertFalse(
         "Preemptive creation appears to not be asynchronous anymore",
-        !colsT1.contains("myalias" + TRA + "2017-10-26"));
+        colsT1.contains("myalias" + TRA + "2017-10-26"));
     assertNumDocs("2017-10-23", 1, alias);
     assertNumDocs("2017-10-24", 1, alias);
     assertNumDocs("2017-10-25", 3, alias);
@@ -748,10 +748,10 @@ public class TimeRoutedAliasUpdateProcessorTest extends RoutedAliasUpdateProcess
     List<String> cols;
     cols =
         new CollectionAdminRequest.ListAliases().process(solrClient).getAliasesAsLists().get(alias);
-    assertTrue(
+    assertFalse(
         "Preemptive creation happened twice and created a collection "
             + "further in the future than the configured time slice!",
-        !cols.contains("myalias" + TRA + "2017-10-27"));
+        cols.contains("myalias" + TRA + "2017-10-27"));
 
     validateCollectionCountAndAvailability(
         alias, 4, "Only 4 cols expected (preemptive create happened" + "twice among threads");
@@ -857,7 +857,7 @@ public class TimeRoutedAliasUpdateProcessorTest extends RoutedAliasUpdateProcess
 
     final List<String> cols =
         new CollectionAdminRequest.ListAliases().process(solrClient).getAliasesAsLists().get(alias);
-    assert !cols.isEmpty();
+    assertFalse(cols.isEmpty());
 
     assertArrayEquals(
         "expected reverse sorted",
diff --git a/solr/core/src/test/org/apache/solr/update/processor/TrackingUpdateProcessorFactory.java b/solr/core/src/test/org/apache/solr/update/processor/TrackingUpdateProcessorFactory.java
index 38eb42390f4..89efbdbe699 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/TrackingUpdateProcessorFactory.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/TrackingUpdateProcessorFactory.java
@@ -69,11 +69,11 @@ public final class TrackingUpdateProcessorFactory extends UpdateRequestProcessor
 
   public static void startRecording(String group) {
     final List<UpdateCommand> updateCommands = groupToCommands.get(group);
-    assert updateCommands == null || updateCommands.isEmpty();
+    SolrCloudTestCase.assertTrue(updateCommands == null || updateCommands.isEmpty());
 
     List<UpdateCommand> existing =
         groupToCommands.put(group, Collections.synchronizedList(new ArrayList<>()));
-    assert existing == null : "Test cross-talk?";
+    SolrCloudTestCase.assertNull("Test cross-talk?", existing);
   }
 
   /**
diff --git a/solr/core/src/test/org/apache/solr/util/OrderedExecutorTest.java b/solr/core/src/test/org/apache/solr/util/OrderedExecutorTest.java
index 68b5b325d8c..f3731645856 100644
--- a/solr/core/src/test/org/apache/solr/util/OrderedExecutorTest.java
+++ b/solr/core/src/test/org/apache/solr/util/OrderedExecutorTest.java
@@ -224,7 +224,7 @@ public class OrderedExecutorTest extends SolrTestCase {
       orderedExecutor.execute(key, () -> run.put(key, run.get(key) + 1));
     }
     orderedExecutor.shutdownAndAwaitTermination();
-    assertTrue(base.equals(run));
+    assertEquals(base, run);
   }
 
   private static class IntBox {
diff --git a/solr/core/src/test/org/apache/solr/util/SimplePostToolTest.java b/solr/core/src/test/org/apache/solr/util/SimplePostToolTest.java
index 6d108c0bd4c..e844582eeb1 100644
--- a/solr/core/src/test/org/apache/solr/util/SimplePostToolTest.java
+++ b/solr/core/src/test/org/apache/solr/util/SimplePostToolTest.java
@@ -79,13 +79,13 @@ public class SimplePostToolTest extends SolrTestCaseJ4 {
 
   @Test
   public void testParseArgsAndInit() {
-    assertEquals(false, t_file.auto);
-    assertEquals(true, t_file_auto.auto);
+    assertFalse(t_file.auto);
+    assertTrue(t_file_auto.auto);
     assertEquals(0, t_file_auto.recursive);
     assertEquals(999, t_file_rec.recursive);
-    assertEquals(true, t_file.commit);
-    assertEquals(false, t_file.optimize);
-    assertEquals(null, t_file.out);
+    assertTrue(t_file.commit);
+    assertFalse(t_file.optimize);
+    assertNull(t_file.out);
 
     assertEquals(1, t_web.recursive);
     assertEquals(10, t_web.delay);
@@ -119,10 +119,9 @@ public class SimplePostToolTest extends SolrTestCaseJ4 {
     //    TODO: How to know what is the base if URL path ends with "foo"??
     //    assertEquals("http://[ff01::114]/fil.html", t_web.computeFullUrl(new
     // URL("http://[ff01::114]/foo?baz#hello"), "fil.html"));
-    assertEquals(null, t_web.computeFullUrl(new URL("http://[ff01::114]/"), "fil.jpg"));
-    assertEquals(
-        null, t_web.computeFullUrl(new URL("http://[ff01::114]/"), "mailto:hello@foo.bar"));
-    assertEquals(null, t_web.computeFullUrl(new URL("http://[ff01::114]/"), "ftp://server/file"));
+    assertNull(t_web.computeFullUrl(new URL("http://[ff01::114]/"), "fil.jpg"));
+    assertNull(t_web.computeFullUrl(new URL("http://[ff01::114]/"), "mailto:hello@foo.bar"));
+    assertNull(t_web.computeFullUrl(new URL("http://[ff01::114]/"), "ftp://server/file"));
   }
 
   @Test
@@ -201,9 +200,10 @@ public class SimplePostToolTest extends SolrTestCaseJ4 {
   public void testRobotsExclusion() throws MalformedURLException {
     assertFalse(t_web.pageFetcher.isDisallowedByRobots(new URL("http://[ff01::114]/")));
     assertTrue(t_web.pageFetcher.isDisallowedByRobots(new URL("http://[ff01::114]/disallowed")));
-    assertTrue(
+    assertEquals(
         "There should be two entries parsed from robots.txt",
-        t_web.pageFetcher.robotsCache.get("[ff01::114]").size() == 2);
+        2,
+        t_web.pageFetcher.robotsCache.get("[ff01::114]").size());
   }
 
   static class MockPageFetcher extends PageFetcher {
diff --git a/solr/core/src/test/org/apache/solr/util/SolrCliUptimeTest.java b/solr/core/src/test/org/apache/solr/util/SolrCliUptimeTest.java
index cb5312cf22f..ff8def5eab6 100644
--- a/solr/core/src/test/org/apache/solr/util/SolrCliUptimeTest.java
+++ b/solr/core/src/test/org/apache/solr/util/SolrCliUptimeTest.java
@@ -16,11 +16,10 @@
  */
 package org.apache.solr.util;
 
-import static org.junit.Assert.assertEquals;
-
+import org.apache.solr.SolrTestCase;
 import org.junit.Test;
 
-public class SolrCliUptimeTest {
+public class SolrCliUptimeTest extends SolrTestCase {
   @Test
   public void testUptime() {
     assertEquals("?", SolrCLI.uptime(0));
diff --git a/solr/core/src/test/org/apache/solr/util/TestSolrCLIRunExample.java b/solr/core/src/test/org/apache/solr/util/TestSolrCLIRunExample.java
index 7b1c0aff652..3503706c2eb 100644
--- a/solr/core/src/test/org/apache/solr/util/TestSolrCLIRunExample.java
+++ b/solr/core/src/test/org/apache/solr/util/TestSolrCLIRunExample.java
@@ -415,14 +415,15 @@ public class TestSolrCLIRunExample extends SolrTestCaseJ4 {
             }
             numFound = solrClient.query(query).getResults().getNumFound();
           }
-          assertTrue(
+          assertEquals(
               "expected 32 docs in the "
                   + exampleName
                   + " example but found "
                   + numFound
                   + ", output: "
                   + toolOutput,
-              numFound == 32);
+              32,
+              numFound);
         } finally {
           solrClient.close();
         }
@@ -605,6 +606,6 @@ public class TestSolrCLIRunExample extends SolrTestCaseJ4 {
         tool.runTool(
             SolrCLI.processCommandLineArgs(
                 SolrCLI.joinCommonAndToolOptions(tool.getOptions()), toolArgs));
-    assertTrue("Execution should have failed with return code 1", code == 1);
+    assertEquals("Execution should have failed with return code 1", 1, code);
   }
 }
diff --git a/solr/core/src/test/org/apache/solr/util/TestUtils.java b/solr/core/src/test/org/apache/solr/util/TestUtils.java
index 3d17bf046f2..698e6843281 100644
--- a/solr/core/src/test/org/apache/solr/util/TestUtils.java
+++ b/solr/core/src/test/org/apache/solr/util/TestUtils.java
@@ -136,7 +136,7 @@ public class TestUtils extends SolrTestCaseJ4 {
     assertEquals("ONE", map.getName(0));
     assertEquals(Integer.valueOf(100), map.get("one", 1));
     assertEquals(4, map.indexOf(null, 1));
-    assertEquals(null, map.get(null, 1));
+    assertNull(map.get(null, 1));
 
     map = new SimpleOrderedMap<>();
     map.add("one", 1);
diff --git a/solr/core/src/test/org/apache/solr/util/hll/BigEndianAscendingWordSerializerTest.java b/solr/core/src/test/org/apache/solr/util/hll/BigEndianAscendingWordSerializerTest.java
index e6b9a790aaf..b13ec118740 100644
--- a/solr/core/src/test/org/apache/solr/util/hll/BigEndianAscendingWordSerializerTest.java
+++ b/solr/core/src/test/org/apache/solr/util/hll/BigEndianAscendingWordSerializerTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.solr.util.hll;
 
-import java.util.Arrays;
 import org.apache.solr.SolrTestCase;
 import org.junit.Test;
 
@@ -100,7 +99,7 @@ public class BigEndianAscendingWordSerializerTest extends SolrTestCase {
           new BigEndianAscendingWordSerializer(
               shortWordLength, 0 /*wordCount*/, 0 /*bytePadding, none*/);
 
-      assert (Arrays.equals(serializer.getBytes(), new byte[0]));
+      assertArrayEquals(serializer.getBytes(), new byte[0]);
     }
     { // Should work on a byte-divisible sequence, with no padding.
       final BigEndianAscendingWordSerializer serializer =
@@ -123,7 +122,7 @@ public class BigEndianAscendingWordSerializerTest extends SolrTestCase {
             -70, -86, -86, -86, -86, -86, -86, -84,
             -113, -1, -1, -1, -1, -1, -1, -15
           };
-      assertTrue(Arrays.equals(bytes, expectedBytes));
+      assertArrayEquals(bytes, expectedBytes);
     }
     { // Should pad the array correctly.
       final BigEndianAscendingWordSerializer serializer =
@@ -135,7 +134,7 @@ public class BigEndianAscendingWordSerializerTest extends SolrTestCase {
       // 0x00 | 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
       final byte[] bytes = serializer.getBytes();
       final byte[] expectedBytes = new byte[] {0, 0, 0, 0, 0, 0, 0, 0, 1};
-      assertTrue(Arrays.equals(bytes, expectedBytes));
+      assertArrayEquals(bytes, expectedBytes);
     }
   }
 
@@ -148,8 +147,7 @@ public class BigEndianAscendingWordSerializerTest extends SolrTestCase {
       final BigEndianAscendingWordSerializer serializer =
           new BigEndianAscendingWordSerializer(
               shortWordLength, 0 /*wordCount*/, 0 /*bytePadding, none*/);
-
-      assert (Arrays.equals(serializer.getBytes(), new byte[0]));
+      assertArrayEquals(serializer.getBytes(), new byte[0]);
     }
     { // Should work on a non-byte-divisible sequence, with no padding.
       final BigEndianAscendingWordSerializer serializer =
@@ -175,7 +173,7 @@ public class BigEndianAscendingWordSerializerTest extends SolrTestCase {
 
       final byte[] bytes = serializer.getBytes();
       final byte[] expectedBytes = new byte[] {79, -62};
-      assertTrue(Arrays.equals(bytes, expectedBytes));
+      assertArrayEquals(bytes, expectedBytes);
     }
     { // Should work on a byte-divisible sequence, with no padding.
       final BigEndianAscendingWordSerializer serializer =
@@ -208,7 +206,7 @@ public class BigEndianAscendingWordSerializerTest extends SolrTestCase {
 
       final byte[] bytes = serializer.getBytes();
       final byte[] expectedBytes = new byte[] {8, -122, 66, -104, -24};
-      assertTrue(Arrays.equals(bytes, expectedBytes));
+      assertArrayEquals(bytes, expectedBytes);
     }
     { // Should pad the array correctly.
       final BigEndianAscendingWordSerializer serializer =
@@ -219,7 +217,7 @@ public class BigEndianAscendingWordSerializerTest extends SolrTestCase {
       // 0000 0000 | 0000 1|000
       final byte[] bytes = serializer.getBytes();
       final byte[] expectedBytes = new byte[] {0, 8};
-      assertTrue(Arrays.equals(bytes, expectedBytes));
+      assertArrayEquals(bytes, expectedBytes);
     }
   }
 
@@ -232,8 +230,7 @@ public class BigEndianAscendingWordSerializerTest extends SolrTestCase {
       final BigEndianAscendingWordSerializer serializer =
           new BigEndianAscendingWordSerializer(
               shortWordLength, 0 /*wordCount*/, 0 /*bytePadding, none*/);
-
-      assert (Arrays.equals(serializer.getBytes(), new byte[0]));
+      assertArrayEquals(serializer.getBytes(), new byte[0]);
     }
     { // Should work on a non-byte-divisible sequence, with no padding.
       final BigEndianAscendingWordSerializer serializer =
@@ -264,7 +261,7 @@ public class BigEndianAscendingWordSerializerTest extends SolrTestCase {
 
       final byte[] bytes = serializer.getBytes();
       final byte[] expectedBytes = new byte[] {0, 4, -128, 10, -128, 9, 96};
-      assertTrue(Arrays.equals(bytes, expectedBytes));
+      assertArrayEquals(bytes, expectedBytes);
     }
     { // Should work on a byte-divisible sequence, with no padding.
       final BigEndianAscendingWordSerializer serializer =
@@ -311,7 +308,7 @@ public class BigEndianAscendingWordSerializerTest extends SolrTestCase {
       final byte[] bytes = serializer.getBytes();
       final byte[] expectedBytes =
           new byte[] {0, 0, -128, 0, -128, 0, 96, 0, 64, 0, 40, 0, 24, 0, 14, 0, 8};
-      assertTrue(Arrays.equals(bytes, expectedBytes));
+      assertArrayEquals(bytes, expectedBytes);
     }
     { // Should pad the array correctly.
       final BigEndianAscendingWordSerializer serializer =
@@ -323,7 +320,7 @@ public class BigEndianAscendingWordSerializerTest extends SolrTestCase {
       // 0x00 0x00 0x00 0x80
       final byte[] bytes = serializer.getBytes();
       final byte[] expectedBytes = new byte[] {0, 0, 0, -128};
-      assertTrue(Arrays.equals(bytes, expectedBytes));
+      assertArrayEquals(bytes, expectedBytes);
     }
   }
 }
diff --git a/solr/core/src/test/org/apache/solr/util/hll/BitVectorTest.java b/solr/core/src/test/org/apache/solr/util/hll/BitVectorTest.java
index 832f1bc29cd..158027174bd 100644
--- a/solr/core/src/test/org/apache/solr/util/hll/BitVectorTest.java
+++ b/solr/core/src/test/org/apache/solr/util/hll/BitVectorTest.java
@@ -72,20 +72,20 @@ public class BitVectorTest extends SolrTestCase {
       final LongIterator registerIterator3 = vector3.registerIterator();
       final LongIterator registerIterator4 = vector4.registerIterator();
       for (int i = 0; i < 128 /*2^7*/; i++) {
-        assertEquals(registerIterator1.hasNext(), true);
-        assertEquals(registerIterator2.hasNext(), true);
-        assertEquals(registerIterator3.hasNext(), true);
-        assertEquals(registerIterator4.hasNext(), true);
+        assertTrue(registerIterator1.hasNext());
+        assertTrue(registerIterator2.hasNext());
+        assertTrue(registerIterator3.hasNext());
+        assertTrue(registerIterator4.hasNext());
 
         assertEquals(registerIterator1.next(), 0x1F);
         assertEquals(registerIterator2.next(), (i & 0x1F));
         assertEquals(registerIterator3.next(), ((127 - i) & 0x1F));
         assertEquals(registerIterator4.next(), 0x15);
       }
-      assertEquals(registerIterator1.hasNext(), false /*no more*/);
-      assertEquals(registerIterator2.hasNext(), false /*no more*/);
-      assertEquals(registerIterator3.hasNext(), false /*no more*/);
-      assertEquals(registerIterator4.hasNext(), false /*no more*/);
+      assertFalse(registerIterator1.hasNext());
+      assertFalse(registerIterator2.hasNext());
+      assertFalse(registerIterator3.hasNext());
+      assertFalse(registerIterator4.hasNext());
     }
 
     { // scoped locally for sanity
diff --git a/solr/core/src/test/org/apache/solr/util/hll/ExplicitHLLTest.java b/solr/core/src/test/org/apache/solr/util/hll/ExplicitHLLTest.java
index c4696721433..aec3fc6d912 100644
--- a/solr/core/src/test/org/apache/solr/util/hll/ExplicitHLLTest.java
+++ b/solr/core/src/test/org/apache/solr/util/hll/ExplicitHLLTest.java
@@ -211,7 +211,7 @@ public class ExplicitHLLTest extends SolrTestCase {
     final LongHashSet internalSetA = hllA.explicitStorage;
     final LongHashSet internalSetB = hllB.explicitStorage;
 
-    assertTrue(internalSetA.equals(internalSetB));
+    assertEquals(internalSetA, internalSetB);
   }
 
   /**
diff --git a/solr/core/src/test/org/apache/solr/util/hll/HLLSerializationTest.java b/solr/core/src/test/org/apache/solr/util/hll/HLLSerializationTest.java
index 89f30a9083d..d44822fc425 100644
--- a/solr/core/src/test/org/apache/solr/util/hll/HLLSerializationTest.java
+++ b/solr/core/src/test/org/apache/solr/util/hll/HLLSerializationTest.java
@@ -111,7 +111,7 @@ public class HLLSerializationTest extends SolrTestCase {
     final long NUM_VALS = TestUtil.nextLong(random(), 150000, 1000000);
     final long MIN_VAL = TestUtil.nextLong(random(), Long.MIN_VALUE, Long.MAX_VALUE - NUM_VALS);
     final long MAX_VAL = MIN_VAL + NUM_VALS;
-    assert MIN_VAL < MAX_VAL;
+    assertTrue(MIN_VAL < MAX_VAL);
 
     for (long val = MIN_VAL; val < MAX_VAL; val++) {
       hll.addRaw(val);
@@ -152,7 +152,7 @@ public class HLLSerializationTest extends SolrTestCase {
     final long NUM_VALS = TestUtil.nextLong(random(), 150000, 1000000);
     final long MIN_VAL = TestUtil.nextLong(random(), Long.MIN_VALUE, Long.MAX_VALUE - NUM_VALS);
     final long MAX_VAL = MIN_VAL + NUM_VALS;
-    assert MIN_VAL < MAX_VAL;
+    assertTrue(MIN_VAL < MAX_VAL);
 
     for (long val = MIN_VAL; val < MAX_VAL; val++) {
       hll.addRaw(val);
@@ -209,13 +209,13 @@ public class HLLSerializationTest extends SolrTestCase {
     HLL copy = HLL.fromBytes(hllBytes);
     assertEquals(copy.cardinality(), hllCardinality);
     assertEquals(copy.getType(), hllType);
-    assertTrue(Arrays.equals(copy.toBytes(), hllBytes));
+    assertArrayEquals(copy.toBytes(), hllBytes);
 
     HLL clone = copy.clone();
     copy = null; // allow some GC
 
     assertEquals(clone.cardinality(), hllCardinality);
     assertEquals(clone.getType(), hllType);
-    assertTrue(Arrays.equals(clone.toBytes(), hllBytes));
+    assertArrayEquals(clone.toBytes(), hllBytes);
   }
 }
diff --git a/solr/core/src/test/org/apache/solr/util/hll/NumberUtilTest.java b/solr/core/src/test/org/apache/solr/util/hll/NumberUtilTest.java
index 3a0c4ae2c5b..e6ca7b99b43 100644
--- a/solr/core/src/test/org/apache/solr/util/hll/NumberUtilTest.java
+++ b/solr/core/src/test/org/apache/solr/util/hll/NumberUtilTest.java
@@ -16,13 +16,11 @@
  */
 package org.apache.solr.util.hll;
 
-import static org.junit.Assert.assertTrue;
-
-import java.util.Arrays;
+import org.apache.solr.SolrTestCase;
 import org.junit.Test;
 
 /** Tests {@link NumberUtil} */
-public class NumberUtilTest {
+public class NumberUtilTest extends SolrTestCase {
 
   static final byte[] ALL_PRINTABLE_ASCII_CHARS =
       new byte[] {
@@ -70,65 +68,62 @@ public class NumberUtilTest {
   @Test
   public void testLog2() {
     final double log2Result = NumberUtil.log2(2d);
-    assertTrue(log2Result == 1);
+    assertEquals(1, log2Result, 0.0);
   }
 
   /** Test {@link NumberUtil#toHex(byte[], int, int)} */
   @Test
   public void TestToHex() {
-    assertTrue(
-        ALL_PRINTABLE_ASCII_CHARS_IN_HEX.equals(
-            NumberUtil.toHex(ALL_PRINTABLE_ASCII_CHARS, 0, ALL_PRINTABLE_ASCII_CHARS.length)));
+    assertEquals(
+        ALL_PRINTABLE_ASCII_CHARS_IN_HEX,
+        NumberUtil.toHex(ALL_PRINTABLE_ASCII_CHARS, 0, ALL_PRINTABLE_ASCII_CHARS.length));
   }
 
   /** Test {@link NumberUtil#toHex(byte[], int, int)} */
   @Test
   public void TestToHexWithOffset() {
-    assertTrue(
-        ALL_MAJ_LETTERS_ASCII_CHARS_IN_HEX.equals(
-            NumberUtil.toHex(ALL_WORD_CHARAC_ASCII_CHARS, 10, ALL_PRINTABLE_ASCII_CHARS.length)));
+    assertEquals(
+        ALL_MAJ_LETTERS_ASCII_CHARS_IN_HEX,
+        NumberUtil.toHex(ALL_WORD_CHARAC_ASCII_CHARS, 10, ALL_PRINTABLE_ASCII_CHARS.length));
   }
 
   /** Test {@link NumberUtil#toHex(byte[], int, int)} */
   @Test
   public void TestToHexWithCountt() {
-    assertTrue(
-        ALL_NUMBER_ASCII_CHARS_IN_HEX.equals(NumberUtil.toHex(ALL_WORD_CHARAC_ASCII_CHARS, 0, 10)));
+    assertEquals(
+        ALL_NUMBER_ASCII_CHARS_IN_HEX, NumberUtil.toHex(ALL_WORD_CHARAC_ASCII_CHARS, 0, 10));
   }
 
   /** Test {@link NumberUtil#fromHex(String, int, int)} */
   @Test
   public void TestFromHex() {
-    assertTrue(
-        Arrays.equals(
-            NumberUtil.fromHex(
-                ALL_NUMBER_ASCII_CHARS_IN_HEX
-                    + ALL_MAJ_LETTERS_ASCII_CHARS_IN_HEX
-                    + ALL_LOW_LETTERS_ASCII_CHARS_IN_HEX,
-                0,
-                ALL_WORD_CHARAC_ASCII_CHARS.length * 2),
-            ALL_WORD_CHARAC_ASCII_CHARS));
+    assertArrayEquals(
+        NumberUtil.fromHex(
+            ALL_NUMBER_ASCII_CHARS_IN_HEX
+                + ALL_MAJ_LETTERS_ASCII_CHARS_IN_HEX
+                + ALL_LOW_LETTERS_ASCII_CHARS_IN_HEX,
+            0,
+            ALL_WORD_CHARAC_ASCII_CHARS.length * 2),
+        ALL_WORD_CHARAC_ASCII_CHARS);
   }
 
   /** Test {@link NumberUtil#fromHex(String, int, int)} */
   @Test
   public void TestFromHexWithOffset() {
-    assertTrue(
-        Arrays.equals(
-            NumberUtil.fromHex(
-                ALL_NUMBER_ASCII_CHARS_IN_HEX + ALL_MAJ_LETTERS_ASCII_CHARS_IN_HEX,
-                20,
-                ALL_LETTER_ASCII_CHARS.length * 2),
-            ALL_LETTER_ASCII_CHARS));
+    assertArrayEquals(
+        NumberUtil.fromHex(
+            ALL_NUMBER_ASCII_CHARS_IN_HEX + ALL_MAJ_LETTERS_ASCII_CHARS_IN_HEX,
+            20,
+            ALL_LETTER_ASCII_CHARS.length * 2),
+        ALL_LETTER_ASCII_CHARS);
   }
 
   /** Test {@link NumberUtil#fromHex(String, int, int)} */
   @Test
   public void TestFromHexWithCount() {
-    assertTrue(
-        Arrays.equals(
-            NumberUtil.fromHex(
-                ALL_NUMBER_ASCII_CHARS_IN_HEX + ALL_MAJ_LETTERS_ASCII_CHARS_IN_HEX, 0, 20),
-            ALL_NUMBER_CHARAC_ASCII_CHARS));
+    assertArrayEquals(
+        NumberUtil.fromHex(
+            ALL_NUMBER_ASCII_CHARS_IN_HEX + ALL_MAJ_LETTERS_ASCII_CHARS_IN_HEX, 0, 20),
+        ALL_NUMBER_CHARAC_ASCII_CHARS);
   }
 }
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/ExpressionFactoryTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/ExpressionFactoryTest.java
index bf11cdd3515..2bedb3fe32a 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/ExpressionFactoryTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/ExpressionFactoryTest.java
@@ -139,56 +139,54 @@ public class ExpressionFactoryTest extends SolrTestCaseJ4 {
 
     // Two ungrouped exactly the same expression
     fact.startRequest();
-    assertTrue(
+    assertSame(
         "The objects of the two mapping expressions are not the same.",
-        fact.createExpression("pow(int_i,double_d)")
-            == fact.createExpression("pow(int_i,double_d)"));
-    assertTrue(
+        fact.createExpression("pow(int_i,double_d)"),
+        fact.createExpression("pow(int_i,double_d)"));
+    assertSame(
         "The objects of the two reduced expressions are not the same.",
-        fact.createExpression("unique(add(int_i,double_d))")
-            == fact.createExpression("unique(add(int_i,double_d))"));
+        fact.createExpression("unique(add(int_i,double_d))"),
+        fact.createExpression("unique(add(int_i,double_d))"));
 
     // Two ungrouped different expressions
     fact.startRequest();
-    assertFalse(
+    assertNotSame(
         "The objects of the two mapping expressions are not the same.",
-        fact.createExpression("pow(int_i,double_d)")
-            == fact.createExpression("pow(int_i,float_f)"));
-    assertFalse(
+        fact.createExpression("pow(int_i,double_d)"),
+        fact.createExpression("pow(int_i,float_f)"));
+    assertNotSame(
         "The objects of the two reduced expressions are not the same.",
-        fact.createExpression("unique(add(int_i,double_d))")
-            == fact.createExpression("unique(add(int_i,float_f))"));
+        fact.createExpression("unique(add(int_i,double_d))"),
+        fact.createExpression("unique(add(int_i,float_f))"));
 
     // Grouped and ungrouped mapping expression
     fact.startRequest();
     Object ungrouped = fact.createExpression("pow(int_i,double_d)");
     fact.startGrouping();
     Object grouped = fact.createExpression("pow(int_i,double_d)");
-    assertTrue(
-        "The objects of the two mapping expressions are not the same.", ungrouped == grouped);
+    assertSame("The objects of the two mapping expressions are not the same.", ungrouped, grouped);
 
     // Grouped and ungrouped diferent mapping expressions
     fact.startRequest();
     ungrouped = fact.createExpression("pow(int_i,double_d)");
     fact.startGrouping();
     grouped = fact.createExpression("pow(int_i,float_f)");
-    assertFalse(
-        "The objects of the two mapping expressions are not the same.", ungrouped == grouped);
+    assertNotSame(
+        "The objects of the two mapping expressions are not the same.", ungrouped, grouped);
 
     // Grouped and ungrouped reduced expression.
     fact.startRequest();
     ungrouped = fact.createExpression("unique(add(int_i,double_d))");
     fact.startGrouping();
     grouped = fact.createExpression("unique(add(int_i,double_d))");
-    assertTrue(
-        "The objects of the two mapping expressions are not the same.", ungrouped == grouped);
+    assertSame("The objects of the two mapping expressions are not the same.", ungrouped, grouped);
 
     // Grouped and ungrouped different reduced expressions.
     fact.startRequest();
     ungrouped = fact.createExpression("unique(add(int_i,double_d))");
     fact.startGrouping();
     grouped = fact.createExpression("unique(add(int_i,float_f))");
-    assertFalse("The objects of the two mapping expressions are the same.", ungrouped == grouped);
+    assertNotSame("The objects of the two mapping expressions are the same.", ungrouped, grouped);
   }
 
   @Test
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/AbsoluteValueFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/AbsoluteValueFunctionTest.java
index 2aa3634fd9e..310bf191262 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/AbsoluteValueFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/AbsoluteValueFunctionTest.java
@@ -149,7 +149,7 @@ public class AbsoluteValueFunctionTest extends SolrTestCaseJ4 {
     val.setValues();
     func.streamInts(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -186,7 +186,7 @@ public class AbsoluteValueFunctionTest extends SolrTestCaseJ4 {
     val.setValues();
     func.streamLongs(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -223,7 +223,7 @@ public class AbsoluteValueFunctionTest extends SolrTestCaseJ4 {
     val.setValues();
     func.streamFloats(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -260,7 +260,7 @@ public class AbsoluteValueFunctionTest extends SolrTestCaseJ4 {
     val.setValues();
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/AddFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/AddFunctionTest.java
index bb26a074cae..35efe555112 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/AddFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/AddFunctionTest.java
@@ -100,7 +100,7 @@ public class AddFunctionTest extends SolrTestCaseJ4 {
     val2.setValue(21.56F).setExists(true);
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Multiple values, no value
@@ -108,7 +108,7 @@ public class AddFunctionTest extends SolrTestCaseJ4 {
     val2.setExists(false);
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Multiple values, one value
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/AndFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/AndFunctionTest.java
index 34005cb7487..341b9419e00 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/AndFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/AndFunctionTest.java
@@ -53,22 +53,22 @@ public class AndFunctionTest extends SolrTestCaseJ4 {
     // Both exist
     val1.setValue(false).setExists(true);
     val2.setValue(false).setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
 
     val1.setValue(true).setExists(true);
     val2.setValue(false).setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
 
     val1.setValue(false).setExists(true);
     val2.setValue(true).setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
 
     val1.setValue(true).setExists(true);
     val2.setValue(true).setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
   }
 
@@ -88,20 +88,20 @@ public class AndFunctionTest extends SolrTestCaseJ4 {
 
     // One value
     val.setValues(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
 
     val.setValues(false);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
 
     // Multiple values
     val.setValues(true, true, false, true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
 
     val.setValues(true, true, true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
   }
 
@@ -120,7 +120,7 @@ public class AndFunctionTest extends SolrTestCaseJ4 {
     val2.setValues();
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Multiple values, no value
@@ -128,7 +128,7 @@ public class AndFunctionTest extends SolrTestCaseJ4 {
     val2.setValues(true, false);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Multiple values, one value
@@ -186,14 +186,14 @@ public class AndFunctionTest extends SolrTestCaseJ4 {
     val2.setValue(false).setExists(true);
     val3.setValue(true).setExists(true);
     val4.setValue(true).setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
 
     val1.setValue(true).setExists(true);
     val2.setValue(true).setExists(true);
     val3.setValue(true).setExists(true);
     val4.setValue(true).setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
   }
 }
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/CeilingFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/CeilingFunctionTest.java
index 18d7d55c264..31355fa9e1f 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/CeilingFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/CeilingFunctionTest.java
@@ -98,7 +98,7 @@ public class CeilingFunctionTest extends SolrTestCaseJ4 {
     val.setValues();
     func.streamInts(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -135,7 +135,7 @@ public class CeilingFunctionTest extends SolrTestCaseJ4 {
     val.setValues();
     func.streamLongs(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/ConcatFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/ConcatFunctionTest.java
index 92f0c72459c..fe4e4356786 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/ConcatFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/ConcatFunctionTest.java
@@ -96,7 +96,7 @@ public class ConcatFunctionTest extends SolrTestCaseJ4 {
     val2.setValues();
     func.streamStrings(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One exists
@@ -104,14 +104,14 @@ public class ConcatFunctionTest extends SolrTestCaseJ4 {
     val2.setValues("def");
     func.streamStrings(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val1.setValue("abc").setExists(true);
     val2.setValues();
     func.streamStrings(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Both exist
@@ -142,7 +142,7 @@ public class ConcatFunctionTest extends SolrTestCaseJ4 {
     val2.setValues();
     func.streamStrings(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One exists
@@ -150,14 +150,14 @@ public class ConcatFunctionTest extends SolrTestCaseJ4 {
     val2.setValues("def");
     func.streamStrings(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val1.setValue("abc").setExists(true);
     val2.setValues();
     func.streamStrings(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Both exist
@@ -187,7 +187,7 @@ public class ConcatFunctionTest extends SolrTestCaseJ4 {
     val2.setExists(false);
     func.streamStrings(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One exists
@@ -195,14 +195,14 @@ public class ConcatFunctionTest extends SolrTestCaseJ4 {
     val2.setExists(false);
     func.streamStrings(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val1.setValues();
     val2.setValue("abc").setExists(true);
     func.streamStrings(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Both exist
@@ -233,7 +233,7 @@ public class ConcatFunctionTest extends SolrTestCaseJ4 {
     val2.setExists(false);
     func.streamStrings(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One exists
@@ -241,14 +241,14 @@ public class ConcatFunctionTest extends SolrTestCaseJ4 {
     val2.setExists(false);
     func.streamStrings(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val1.setValues();
     val2.setValue("abc").setExists(true);
     func.streamStrings(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Both exist
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/DivideFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/DivideFunctionTest.java
index 51202ced7b5..c069e97abd0 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/DivideFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/DivideFunctionTest.java
@@ -73,7 +73,7 @@ public class DivideFunctionTest extends SolrTestCaseJ4 {
     divisor.setValue(21.56F).setExists(true);
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Multiple values, no value
@@ -81,7 +81,7 @@ public class DivideFunctionTest extends SolrTestCaseJ4 {
     divisor.setExists(false);
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Multiple values, one value
@@ -111,7 +111,7 @@ public class DivideFunctionTest extends SolrTestCaseJ4 {
     divisor.setValues();
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Multiple values, no value
@@ -119,7 +119,7 @@ public class DivideFunctionTest extends SolrTestCaseJ4 {
     divisor.setValues(4L, 10023L);
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Multiple values, one value
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/EqualFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/EqualFunctionTest.java
index 39aa068aef2..569471ce46b 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/EqualFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/EqualFunctionTest.java
@@ -63,12 +63,12 @@ public class EqualFunctionTest extends SolrTestCaseJ4 {
     // Value exists
     val1.setValue(false).setExists(true);
     val2.setValue(false).setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
 
     val1.setValue(false).setExists(true);
     val2.setValue(true).setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
   }
 
@@ -101,12 +101,12 @@ public class EqualFunctionTest extends SolrTestCaseJ4 {
     // Value exists
     val1.setValue(21.56).setExists(true);
     val2.setValue(21.56).setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
 
     val1.setValue(21.56).setExists(true);
     val2.setValue(21.57).setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
   }
 
@@ -139,12 +139,12 @@ public class EqualFunctionTest extends SolrTestCaseJ4 {
     // Value exists
     val1.setValue("1800-01-02T10:20:30Z").setExists(true);
     val2.setValue("1800-01-02T10:20:30Z").setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
 
     val1.setValue("1800-01-02T10:20:30Z").setExists(true);
     val2.setValue("1800-01-02T10:20:31Z").setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
   }
 
@@ -177,12 +177,12 @@ public class EqualFunctionTest extends SolrTestCaseJ4 {
     // Value exists
     val1.setValue("abcdefghi").setExists(true);
     val2.setValue("abcdefghi").setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
 
     val1.setValue("abcdefghi1").setExists(true);
     val2.setValue("abcdefghi2").setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
   }
 
@@ -201,14 +201,14 @@ public class EqualFunctionTest extends SolrTestCaseJ4 {
     val2.setValue(false).setExists(true);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val1.setValues(true);
     val2.setExists(false);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -249,14 +249,14 @@ public class EqualFunctionTest extends SolrTestCaseJ4 {
     val2.setValue(false).setExists(true);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val1.setValues(true);
     val2.setExists(false);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -297,14 +297,14 @@ public class EqualFunctionTest extends SolrTestCaseJ4 {
     val2.setValue(-4.2).setExists(true);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val1.setValues(-4.2);
     val2.setExists(false);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -345,14 +345,14 @@ public class EqualFunctionTest extends SolrTestCaseJ4 {
     val2.setValue(-4.2).setExists(true);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val1.setValues(-4.2);
     val2.setExists(false);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -393,14 +393,14 @@ public class EqualFunctionTest extends SolrTestCaseJ4 {
     val2.setValue("1800-01-02T10:20:30Z").setExists(true);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val1.setValues("1800-01-02T10:20:30Z");
     val2.setExists(false);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -445,14 +445,14 @@ public class EqualFunctionTest extends SolrTestCaseJ4 {
     val2.setValue("1800-01-02T10:20:30Z").setExists(true);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val1.setValues("1800-01-02T10:20:30Z");
     val2.setExists(false);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -497,14 +497,14 @@ public class EqualFunctionTest extends SolrTestCaseJ4 {
     val2.setValue("abcdefghi").setExists(true);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val1.setValues("abcdefghi");
     val2.setExists(false);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -545,14 +545,14 @@ public class EqualFunctionTest extends SolrTestCaseJ4 {
     val2.setValue("abcdefghi").setExists(true);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val1.setValues("abcdefghi");
     val2.setExists(false);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/FillMissingFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/FillMissingFunctionTest.java
index 7c079945ac0..eb0b560b54e 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/FillMissingFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/FillMissingFunctionTest.java
@@ -120,32 +120,32 @@ public class FillMissingFunctionTest extends SolrTestCaseJ4 {
     // Value exists
     val.setValue(true).setExists(true);
     filler.setValue(false).setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
 
     val.setValue(false).setExists(true);
     filler.setValue(false).setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
 
     val.setValue(true).setExists(true);
     filler.setExists(false);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
 
     val.setValue(false).setExists(true);
     filler.setExists(false);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
 
     val.setExists(false);
     filler.setValue(false).setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
 
     val.setExists(false);
     filler.setValue(true).setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
   }
 
@@ -399,7 +399,7 @@ public class FillMissingFunctionTest extends SolrTestCaseJ4 {
     filler.setValues();
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Values exist
@@ -449,7 +449,7 @@ public class FillMissingFunctionTest extends SolrTestCaseJ4 {
     filler.setValues();
     func.streamInts(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Values exist
@@ -499,7 +499,7 @@ public class FillMissingFunctionTest extends SolrTestCaseJ4 {
     filler.setValues();
     func.streamLongs(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Values exist
@@ -549,7 +549,7 @@ public class FillMissingFunctionTest extends SolrTestCaseJ4 {
     filler.setValues();
     func.streamFloats(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Values exist
@@ -599,7 +599,7 @@ public class FillMissingFunctionTest extends SolrTestCaseJ4 {
     filler.setValues();
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Values exist
@@ -653,7 +653,7 @@ public class FillMissingFunctionTest extends SolrTestCaseJ4 {
     filler.setValues();
     func.streamLongs(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Values exist
@@ -703,7 +703,7 @@ public class FillMissingFunctionTest extends SolrTestCaseJ4 {
     filler.setValues();
     func.streamStrings(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Values exist
@@ -752,7 +752,7 @@ public class FillMissingFunctionTest extends SolrTestCaseJ4 {
     filler.setValues();
     func.streamObjects(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Values exist
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/FilterFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/FilterFunctionTest.java
index 730a60135a5..cf272e996cb 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/FilterFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/FilterFunctionTest.java
@@ -87,7 +87,7 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     // Value exists
     val.setValue(true).setExists(true);
     filter.setValue(true).setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
 
     val.setValue(true).setExists(true);
@@ -97,7 +97,7 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
 
     val.setValue(false).setExists(true);
     filter.setValue(true).setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
 
     val.setValue(false).setExists(true);
@@ -460,21 +460,21 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setExists(false);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val.setValues(false, true, false);
     filter.setExists(false);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val.setValues();
     filter.setValue(true).setExists(true);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -492,7 +492,7 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setValue(false).setExists(true);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     filter.setValue(true).setExists(true);
@@ -510,7 +510,7 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setValue(false).setExists(true);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     filter.setValue(true).setExists(true);
@@ -525,7 +525,7 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setValue(false).setExists(true);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
   }
 
@@ -544,21 +544,21 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setExists(false);
     func.streamInts(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val.setValues(1, 3, 5);
     filter.setExists(false);
     func.streamInts(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val.setValues();
     filter.setValue(true).setExists(true);
     func.streamInts(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -576,7 +576,7 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setValue(false).setExists(true);
     func.streamInts(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     filter.setValue(true).setExists(true);
@@ -594,7 +594,7 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setValue(false).setExists(true);
     func.streamInts(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     filter.setValue(true).setExists(true);
@@ -609,7 +609,7 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setValue(false).setExists(true);
     func.streamInts(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
   }
 
@@ -628,21 +628,21 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setExists(false);
     func.streamLongs(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val.setValues(1L, 3L, 5L);
     filter.setExists(false);
     func.streamLongs(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val.setValues();
     filter.setValue(true).setExists(true);
     func.streamLongs(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -660,7 +660,7 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setValue(false).setExists(true);
     func.streamLongs(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     filter.setValue(true).setExists(true);
@@ -678,7 +678,7 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setValue(false).setExists(true);
     func.streamLongs(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     filter.setValue(true).setExists(true);
@@ -693,7 +693,7 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setValue(false).setExists(true);
     func.streamLongs(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
   }
 
@@ -712,21 +712,21 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setExists(false);
     func.streamFloats(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val.setValues(50.343F, -74.9874F, 2342332342.32F);
     filter.setExists(false);
     func.streamFloats(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val.setValues();
     filter.setValue(true).setExists(true);
     func.streamFloats(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -744,7 +744,7 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setValue(false).setExists(true);
     func.streamFloats(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     filter.setValue(true).setExists(true);
@@ -762,7 +762,7 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setValue(false).setExists(true);
     func.streamFloats(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     filter.setValue(true).setExists(true);
@@ -777,7 +777,7 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setValue(false).setExists(true);
     func.streamFloats(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
   }
 
@@ -796,21 +796,21 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setExists(false);
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val.setValues(50.343, -74.9874, 2342332342.32);
     filter.setExists(false);
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val.setValues();
     filter.setValue(true).setExists(true);
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -828,7 +828,7 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setValue(false).setExists(true);
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     filter.setValue(true).setExists(true);
@@ -846,7 +846,7 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setValue(false).setExists(true);
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     filter.setValue(true).setExists(true);
@@ -861,7 +861,7 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setValue(false).setExists(true);
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
   }
 
@@ -884,21 +884,21 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setExists(false);
     func.streamLongs(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val.setValues("1810-12-02T10:30:15Z", "1850-12-02T20:30:15Z");
     filter.setExists(false);
     func.streamLongs(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val.setValues();
     filter.setValue(true).setExists(true);
     func.streamLongs(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -916,7 +916,7 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setValue(false).setExists(true);
     func.streamLongs(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     filter.setValue(true).setExists(true);
@@ -934,7 +934,7 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setValue(false).setExists(true);
     func.streamLongs(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     filter.setValue(true).setExists(true);
@@ -950,7 +950,7 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setValue(false).setExists(true);
     func.streamLongs(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
   }
 
@@ -969,21 +969,21 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setExists(false);
     func.streamStrings(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val.setValues("abc", "123", "def", "456");
     filter.setExists(false);
     func.streamStrings(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val.setValues();
     filter.setValue(true).setExists(true);
     func.streamStrings(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -1001,7 +1001,7 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setValue(false).setExists(true);
     func.streamStrings(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     filter.setValue(true).setExists(true);
@@ -1019,7 +1019,7 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setValue(false).setExists(true);
     func.streamStrings(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     filter.setValue(true).setExists(true);
@@ -1034,7 +1034,7 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setValue(false).setExists(true);
     func.streamStrings(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
   }
 
@@ -1051,21 +1051,21 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setExists(false);
     func.streamObjects(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val.setValues(3, "3", new Date(3));
     filter.setExists(false);
     func.streamObjects(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val.setValues();
     filter.setValue(true).setExists(true);
     func.streamObjects(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -1084,7 +1084,7 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setValue(false).setExists(true);
     func.streamObjects(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     filter.setValue(true).setExists(true);
@@ -1102,7 +1102,7 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setValue(false).setExists(true);
     func.streamObjects(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     filter.setValue(true).setExists(true);
@@ -1117,7 +1117,7 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
     filter.setValue(false).setExists(true);
     func.streamObjects(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
   }
 }
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/FloorFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/FloorFunctionTest.java
index cd51d890157..22145ef5f30 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/FloorFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/FloorFunctionTest.java
@@ -98,7 +98,7 @@ public class FloorFunctionTest extends SolrTestCaseJ4 {
     val.setValues();
     func.streamInts(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -135,7 +135,7 @@ public class FloorFunctionTest extends SolrTestCaseJ4 {
     val.setValues();
     func.streamLongs(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/GTEFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/GTEFunctionTest.java
index 086265b671e..93fae174c5b 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/GTEFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/GTEFunctionTest.java
@@ -60,17 +60,17 @@ public class GTEFunctionTest extends SolrTestCaseJ4 {
     // Value exists
     base.setValue(21.56).setExists(true);
     comp.setValue(21.56).setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
 
     base.setValue(21.56).setExists(true);
     comp.setValue(21.57).setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
 
     base.setValue(21.56).setExists(true);
     comp.setValue(-21.57).setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
   }
 
@@ -103,17 +103,17 @@ public class GTEFunctionTest extends SolrTestCaseJ4 {
     // Value exists
     base.setValue("1800-01-02T10:20:30Z").setExists(true);
     comp.setValue("1800-01-02T10:20:30Z").setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
 
     base.setValue("1800-01-02T10:20:30Z").setExists(true);
     comp.setValue("1800-01-02T10:20:31Z").setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
 
     base.setValue("1800-01-02T10:20:30Z").setExists(true);
     comp.setValue("1000-01-02T10:20:31Z").setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
   }
 
@@ -132,14 +132,14 @@ public class GTEFunctionTest extends SolrTestCaseJ4 {
     comp.setValues();
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     base.setExists(false);
     comp.setValues(-4.2);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -180,14 +180,14 @@ public class GTEFunctionTest extends SolrTestCaseJ4 {
     comp.setValue(-4.2).setExists(true);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     base.setValues(-4.2);
     comp.setExists(false);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -228,14 +228,14 @@ public class GTEFunctionTest extends SolrTestCaseJ4 {
     comp.setValues();
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     base.setExists(false);
     comp.setValues("1800-01-02T10:20:30Z");
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -281,14 +281,14 @@ public class GTEFunctionTest extends SolrTestCaseJ4 {
     comp.setValue("1800-01-02T10:20:30Z").setExists(true);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     base.setValues("1800-01-02T10:20:30Z");
     comp.setExists(false);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/GTFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/GTFunctionTest.java
index 6beabb2725f..6ac044ab930 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/GTFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/GTFunctionTest.java
@@ -60,17 +60,17 @@ public class GTFunctionTest extends SolrTestCaseJ4 {
     // Value exists
     base.setValue(21.56).setExists(true);
     comp.setValue(21.56).setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
 
     base.setValue(21.56).setExists(true);
     comp.setValue(21.57).setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
 
     base.setValue(21.56).setExists(true);
     comp.setValue(-21.57).setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
   }
 
@@ -103,17 +103,17 @@ public class GTFunctionTest extends SolrTestCaseJ4 {
     // Value exists
     base.setValue("1800-01-02T10:20:30Z").setExists(true);
     comp.setValue("1800-01-02T10:20:30Z").setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
 
     base.setValue("1800-01-02T10:20:30Z").setExists(true);
     comp.setValue("1800-01-02T10:20:31Z").setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
 
     base.setValue("1800-01-02T10:20:30Z").setExists(true);
     comp.setValue("1000-01-02T10:20:31Z").setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
   }
 
@@ -132,14 +132,14 @@ public class GTFunctionTest extends SolrTestCaseJ4 {
     comp.setValues();
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     base.setExists(false);
     comp.setValues(-4.2);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -180,14 +180,14 @@ public class GTFunctionTest extends SolrTestCaseJ4 {
     comp.setValue(-4.2).setExists(true);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     base.setValues(-4.2);
     comp.setExists(false);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -228,14 +228,14 @@ public class GTFunctionTest extends SolrTestCaseJ4 {
     comp.setValues();
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     base.setExists(false);
     comp.setValues("1800-01-02T10:20:30Z");
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -281,14 +281,14 @@ public class GTFunctionTest extends SolrTestCaseJ4 {
     comp.setValue("1800-01-02T10:20:30Z").setExists(true);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     base.setValues("1800-01-02T10:20:30Z");
     comp.setExists(false);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/IfFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/IfFunctionTest.java
index 92a3c08e10d..50e970fe74b 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/IfFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/IfFunctionTest.java
@@ -158,25 +158,25 @@ public class IfFunctionTest extends SolrTestCaseJ4 {
     cond.setValue(true).setExists(true);
     then.setValue(false).setExists(true);
     els.setValue(true).setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
 
     cond.setValue(true).setExists(true);
     then.setValue(true).setExists(true);
     els.setValue(false).setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
 
     cond.setValue(false).setExists(true);
     then.setValue(false).setExists(true);
     els.setValue(true).setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
 
     cond.setValue(false).setExists(true);
     then.setValue(true).setExists(true);
     els.setValue(false).setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
   }
 
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/LTEFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/LTEFunctionTest.java
index 964f2424a87..0a3b7f9d202 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/LTEFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/LTEFunctionTest.java
@@ -60,17 +60,17 @@ public class LTEFunctionTest extends SolrTestCaseJ4 {
     // Value exists
     base.setValue(21.56).setExists(true);
     comp.setValue(21.56).setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
 
     base.setValue(21.56).setExists(true);
     comp.setValue(21.57).setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
 
     base.setValue(21.56).setExists(true);
     comp.setValue(-21.57).setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
   }
 
@@ -103,17 +103,17 @@ public class LTEFunctionTest extends SolrTestCaseJ4 {
     // Value exists
     base.setValue("1800-01-02T10:20:30Z").setExists(true);
     comp.setValue("1800-01-02T10:20:30Z").setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
 
     base.setValue("1800-01-02T10:20:30Z").setExists(true);
     comp.setValue("1800-01-02T10:20:31Z").setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
 
     base.setValue("1800-01-02T10:20:30Z").setExists(true);
     comp.setValue("1000-01-02T10:20:31Z").setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
   }
 
@@ -132,14 +132,14 @@ public class LTEFunctionTest extends SolrTestCaseJ4 {
     comp.setValues();
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     base.setExists(false);
     comp.setValues(-4.2);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -180,14 +180,14 @@ public class LTEFunctionTest extends SolrTestCaseJ4 {
     comp.setValue(-4.2).setExists(true);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     base.setValues(-4.2);
     comp.setExists(false);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -228,14 +228,14 @@ public class LTEFunctionTest extends SolrTestCaseJ4 {
     comp.setValues();
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     base.setExists(false);
     comp.setValues("1800-01-02T10:20:30Z");
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -281,14 +281,14 @@ public class LTEFunctionTest extends SolrTestCaseJ4 {
     comp.setValue("1800-01-02T10:20:30Z").setExists(true);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     base.setValues("1800-01-02T10:20:30Z");
     comp.setExists(false);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/LTFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/LTFunctionTest.java
index c44a093fc96..1c83670b996 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/LTFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/LTFunctionTest.java
@@ -60,17 +60,17 @@ public class LTFunctionTest extends SolrTestCaseJ4 {
     // Value exists
     base.setValue(21.56).setExists(true);
     comp.setValue(21.56).setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
 
     base.setValue(21.56).setExists(true);
     comp.setValue(21.57).setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
 
     base.setValue(21.56).setExists(true);
     comp.setValue(-21.57).setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
   }
 
@@ -103,17 +103,17 @@ public class LTFunctionTest extends SolrTestCaseJ4 {
     // Value exists
     base.setValue("1800-01-02T10:20:30Z").setExists(true);
     comp.setValue("1800-01-02T10:20:30Z").setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
 
     base.setValue("1800-01-02T10:20:30Z").setExists(true);
     comp.setValue("1800-01-02T10:20:31Z").setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
 
     base.setValue("1800-01-02T10:20:30Z").setExists(true);
     comp.setValue("1000-01-02T10:20:31Z").setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
   }
 
@@ -132,14 +132,14 @@ public class LTFunctionTest extends SolrTestCaseJ4 {
     comp.setValues();
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     base.setExists(false);
     comp.setValues(-4.2);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -180,14 +180,14 @@ public class LTFunctionTest extends SolrTestCaseJ4 {
     comp.setValue(-4.2).setExists(true);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     base.setValues(-4.2);
     comp.setExists(false);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -228,14 +228,14 @@ public class LTFunctionTest extends SolrTestCaseJ4 {
     comp.setValues();
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     base.setExists(false);
     comp.setValues("1800-01-02T10:20:30Z");
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -281,14 +281,14 @@ public class LTFunctionTest extends SolrTestCaseJ4 {
     comp.setValue("1800-01-02T10:20:30Z").setExists(true);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     base.setValues("1800-01-02T10:20:30Z");
     comp.setExists(false);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/LogFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/LogFunctionTest.java
index 77a38c1342b..2c000768438 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/LogFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/LogFunctionTest.java
@@ -68,7 +68,7 @@ public class LogFunctionTest extends SolrTestCaseJ4 {
     val.setValues();
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -137,7 +137,7 @@ public class LogFunctionTest extends SolrTestCaseJ4 {
     val.setValue(21.56F).setExists(true);
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Multiple values, no value
@@ -145,7 +145,7 @@ public class LogFunctionTest extends SolrTestCaseJ4 {
     val.setExists(false);
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Multiple values, one value
@@ -180,7 +180,7 @@ public class LogFunctionTest extends SolrTestCaseJ4 {
     val.setValues();
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Multiple values, no value
@@ -188,7 +188,7 @@ public class LogFunctionTest extends SolrTestCaseJ4 {
     val.setValues(4L, 10023L);
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Multiple values, one value
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/MultFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/MultFunctionTest.java
index 2d558f4913a..54965049aff 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/MultFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/MultFunctionTest.java
@@ -99,7 +99,7 @@ public class MultFunctionTest extends SolrTestCaseJ4 {
     val2.setValue(21.56F).setExists(true);
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Multiple values, no value
@@ -107,7 +107,7 @@ public class MultFunctionTest extends SolrTestCaseJ4 {
     val2.setExists(false);
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Multiple values, one value
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/NegateFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/NegateFunctionTest.java
index f0ca115aa72..ff710d8990c 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/NegateFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/NegateFunctionTest.java
@@ -60,11 +60,11 @@ public class NegateFunctionTest extends SolrTestCaseJ4 {
 
     // Value exists
     val.setValue(true).setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
 
     val.setValue(false).setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
   }
 
@@ -177,7 +177,7 @@ public class NegateFunctionTest extends SolrTestCaseJ4 {
     val.setValues();
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -214,7 +214,7 @@ public class NegateFunctionTest extends SolrTestCaseJ4 {
     val.setValues();
     func.streamInts(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -251,7 +251,7 @@ public class NegateFunctionTest extends SolrTestCaseJ4 {
     val.setValues();
     func.streamLongs(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -288,7 +288,7 @@ public class NegateFunctionTest extends SolrTestCaseJ4 {
     val.setValues();
     func.streamFloats(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
@@ -325,7 +325,7 @@ public class NegateFunctionTest extends SolrTestCaseJ4 {
     val.setValues();
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // One value
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/OrFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/OrFunctionTest.java
index 05a3d2ddf16..3aa96e2aa3f 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/OrFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/OrFunctionTest.java
@@ -53,22 +53,22 @@ public class OrFunctionTest extends SolrTestCaseJ4 {
     // Both exist
     val1.setValue(false).setExists(true);
     val2.setValue(false).setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
 
     val1.setValue(true).setExists(true);
     val2.setValue(false).setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
 
     val1.setValue(false).setExists(true);
     val2.setValue(true).setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
 
     val1.setValue(true).setExists(true);
     val2.setValue(true).setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
   }
 
@@ -88,20 +88,20 @@ public class OrFunctionTest extends SolrTestCaseJ4 {
 
     // One value
     val.setValues(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
 
     val.setValues(false);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
 
     // Multiple values
     val.setValues(false, false, true, false);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
 
     val.setValues(false, false, false);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
   }
 
@@ -120,7 +120,7 @@ public class OrFunctionTest extends SolrTestCaseJ4 {
     val2.setValues();
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Multiple values, no value
@@ -128,7 +128,7 @@ public class OrFunctionTest extends SolrTestCaseJ4 {
     val2.setValues(true, false);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Multiple values, one value
@@ -186,14 +186,14 @@ public class OrFunctionTest extends SolrTestCaseJ4 {
     val2.setValue(true).setExists(true);
     val3.setValue(false).setExists(true);
     val4.setValue(false).setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
 
     val1.setValue(false).setExists(true);
     val2.setValue(false).setExists(true);
     val3.setValue(false).setExists(true);
     val4.setValue(false).setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
   }
 }
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/PowerFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/PowerFunctionTest.java
index 7b11abbadfa..74fb9364505 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/PowerFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/PowerFunctionTest.java
@@ -73,7 +73,7 @@ public class PowerFunctionTest extends SolrTestCaseJ4 {
     pow.setValue(21.56F).setExists(true);
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Multiple values, no value
@@ -81,7 +81,7 @@ public class PowerFunctionTest extends SolrTestCaseJ4 {
     pow.setExists(false);
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Multiple values, one value
@@ -111,7 +111,7 @@ public class PowerFunctionTest extends SolrTestCaseJ4 {
     pow.setValues();
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Multiple values, no value
@@ -119,7 +119,7 @@ public class PowerFunctionTest extends SolrTestCaseJ4 {
     pow.setValues(4L, 10023L);
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Multiple values, one value
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/RemoveFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/RemoveFunctionTest.java
index cbaa11744e8..85990332cae 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/RemoveFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/RemoveFunctionTest.java
@@ -125,7 +125,7 @@ public class RemoveFunctionTest extends SolrTestCaseJ4 {
     // Value exists
     val.setValue(true).setExists(true);
     remover.setValue(false).setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
 
     val.setValue(true).setExists(true);
@@ -135,7 +135,7 @@ public class RemoveFunctionTest extends SolrTestCaseJ4 {
 
     val.setValue(false).setExists(true);
     remover.setValue(true).setExists(true);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
 
     val.setValue(false).setExists(true);
@@ -145,7 +145,7 @@ public class RemoveFunctionTest extends SolrTestCaseJ4 {
 
     val.setValue(false).setExists(true);
     remover.setExists(false);
-    assertEquals(false, func.getBoolean());
+    assertFalse(func.getBoolean());
     assertTrue(func.exists());
   }
 
@@ -434,14 +434,14 @@ public class RemoveFunctionTest extends SolrTestCaseJ4 {
     remover.setExists(false);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val.setValues();
     remover.setValue(true).setExists(true);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Values exist
@@ -479,7 +479,7 @@ public class RemoveFunctionTest extends SolrTestCaseJ4 {
     remover.setValue(false).setExists(true);
     func.streamBooleans(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
   }
 
@@ -498,14 +498,14 @@ public class RemoveFunctionTest extends SolrTestCaseJ4 {
     remover.setExists(false);
     func.streamInts(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val.setValues();
     remover.setValue(324).setExists(true);
     func.streamInts(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Values exist
@@ -543,7 +543,7 @@ public class RemoveFunctionTest extends SolrTestCaseJ4 {
     remover.setValue(1).setExists(true);
     func.streamInts(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
   }
 
@@ -562,14 +562,14 @@ public class RemoveFunctionTest extends SolrTestCaseJ4 {
     remover.setExists(false);
     func.streamLongs(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val.setValues();
     remover.setValue(2323L).setExists(true);
     func.streamLongs(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Values exist
@@ -607,7 +607,7 @@ public class RemoveFunctionTest extends SolrTestCaseJ4 {
     remover.setValue(10L).setExists(true);
     func.streamLongs(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
   }
 
@@ -626,14 +626,14 @@ public class RemoveFunctionTest extends SolrTestCaseJ4 {
     remover.setExists(false);
     func.streamFloats(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val.setValues();
     remover.setValue(230.32F).setExists(true);
     func.streamFloats(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Values exist
@@ -673,7 +673,7 @@ public class RemoveFunctionTest extends SolrTestCaseJ4 {
     remover.setValue(23.56F).setExists(true);
     func.streamFloats(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
   }
 
@@ -692,14 +692,14 @@ public class RemoveFunctionTest extends SolrTestCaseJ4 {
     remover.setExists(false);
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val.setValues();
     remover.setValue(234237.67).setExists(true);
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Values exist
@@ -737,7 +737,7 @@ public class RemoveFunctionTest extends SolrTestCaseJ4 {
     remover.setValue(3124.96).setExists(true);
     func.streamDoubles(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
   }
 
@@ -760,14 +760,14 @@ public class RemoveFunctionTest extends SolrTestCaseJ4 {
     remover.setExists(false);
     func.streamLongs(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val.setValues();
     remover.setValue("1700-12-14").setExists(true);
     func.streamLongs(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Values exist
@@ -821,7 +821,7 @@ public class RemoveFunctionTest extends SolrTestCaseJ4 {
     remover.setValue("1810-12-02T10:30:15Z").setExists(true);
     func.streamLongs(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
   }
 
@@ -840,14 +840,14 @@ public class RemoveFunctionTest extends SolrTestCaseJ4 {
     remover.setExists(false);
     func.streamStrings(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val.setValues();
     remover.setValue("ads").setExists(true);
     func.streamStrings(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Values exist
@@ -886,7 +886,7 @@ public class RemoveFunctionTest extends SolrTestCaseJ4 {
     remover.setValue("abc123").setExists(true);
     func.streamStrings(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
   }
 
@@ -903,14 +903,14 @@ public class RemoveFunctionTest extends SolrTestCaseJ4 {
     remover.setExists(false);
     func.streamObjects(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     val.setValues();
     remover.setValue("doesn't matter").setExists(true);
     func.streamObjects(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
 
     // Values exist
@@ -949,7 +949,7 @@ public class RemoveFunctionTest extends SolrTestCaseJ4 {
     remover.setValue(new Date(4)).setExists(true);
     func.streamObjects(
         value -> {
-          assertTrue("There should be no values to stream", false);
+          fail("There should be no values to stream");
         });
   }
 }
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/ReplaceFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/ReplaceFunctionTest.java
index 4f732bcdbea..079bdabba08 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/ReplaceFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/ReplaceFunctionTest.java
@@ -145,20 +145,20 @@ public class ReplaceFunctionTest extends SolrTestCaseJ4 {
     val.setValue(true).setExists(true);
     comp.setExists(false);
     fill.setValue(false).setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
 
     // Value exists
     val.setValue(true).setExists(true);
     comp.setValue(false).setExists(true);
     fill.setValue(false).setExists(true);
-    assertEquals(true, func.getBoolean());
+    assertTrue(func.getBoolean());
     assertTrue(func.exists());
 
     val.setValue(true).setExists(true);
     comp.setValue(true).setExists(true);
     fill.setValue(false).setExists(true);
... 19381 lines suppressed ...


[solr] 01/02: rerun ./gradlew updateLicenses

Posted by kr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

krisden pushed a commit to branch branch_9x
in repository https://gitbox.apache.org/repos/asf/solr.git

commit 13aeddfca119a40a45270165d32fce04bbfa62b8
Author: Kevin Risden <kr...@apache.org>
AuthorDate: Thu Oct 20 15:17:44 2022 -0400

    rerun ./gradlew updateLicenses
---
 solr/licenses/lucene-analysis-common-9.4.0.jar.sha1     | 2 +-
 solr/licenses/lucene-analysis-icu-9.4.0.jar.sha1        | 2 +-
 solr/licenses/lucene-analysis-kuromoji-9.4.0.jar.sha1   | 2 +-
 solr/licenses/lucene-analysis-morfologik-9.4.0.jar.sha1 | 2 +-
 solr/licenses/lucene-analysis-nori-9.4.0.jar.sha1       | 2 +-
 solr/licenses/lucene-analysis-opennlp-9.4.0.jar.sha1    | 2 +-
 solr/licenses/lucene-analysis-phonetic-9.4.0.jar.sha1   | 2 +-
 solr/licenses/lucene-analysis-smartcn-9.4.0.jar.sha1    | 2 +-
 solr/licenses/lucene-analysis-stempel-9.4.0.jar.sha1    | 2 +-
 solr/licenses/lucene-backward-codecs-9.4.0.jar.sha1     | 2 +-
 solr/licenses/lucene-classification-9.4.0.jar.sha1      | 2 +-
 solr/licenses/lucene-codecs-9.4.0.jar.sha1              | 2 +-
 solr/licenses/lucene-core-9.4.0.jar.sha1                | 2 +-
 solr/licenses/lucene-expressions-9.4.0.jar.sha1         | 2 +-
 solr/licenses/lucene-grouping-9.4.0.jar.sha1            | 2 +-
 solr/licenses/lucene-highlighter-9.4.0.jar.sha1         | 2 +-
 solr/licenses/lucene-join-9.4.0.jar.sha1                | 2 +-
 solr/licenses/lucene-memory-9.4.0.jar.sha1              | 2 +-
 solr/licenses/lucene-misc-9.4.0.jar.sha1                | 2 +-
 solr/licenses/lucene-queries-9.4.0.jar.sha1             | 2 +-
 solr/licenses/lucene-queryparser-9.4.0.jar.sha1         | 2 +-
 solr/licenses/lucene-sandbox-9.4.0.jar.sha1             | 2 +-
 solr/licenses/lucene-spatial-extras-9.4.0.jar.sha1      | 2 +-
 solr/licenses/lucene-spatial3d-9.4.0.jar.sha1           | 2 +-
 solr/licenses/lucene-suggest-9.4.0.jar.sha1             | 2 +-
 solr/licenses/lucene-test-framework-9.4.0.jar.sha1      | 2 +-
 26 files changed, 26 insertions(+), 26 deletions(-)

diff --git a/solr/licenses/lucene-analysis-common-9.4.0.jar.sha1 b/solr/licenses/lucene-analysis-common-9.4.0.jar.sha1
index d4db2877c48..020b4919b8a 100644
--- a/solr/licenses/lucene-analysis-common-9.4.0.jar.sha1
+++ b/solr/licenses/lucene-analysis-common-9.4.0.jar.sha1
@@ -1 +1 @@
-02fbd4e87241411fcf5d34e92a50bee46ab164dc
\ No newline at end of file
+02fbd4e87241411fcf5d34e92a50bee46ab164dc
diff --git a/solr/licenses/lucene-analysis-icu-9.4.0.jar.sha1 b/solr/licenses/lucene-analysis-icu-9.4.0.jar.sha1
index 0038e3153b1..0447aa4d5a7 100644
--- a/solr/licenses/lucene-analysis-icu-9.4.0.jar.sha1
+++ b/solr/licenses/lucene-analysis-icu-9.4.0.jar.sha1
@@ -1 +1 @@
-aa0f250558375922f3091820361156e514fe1842
\ No newline at end of file
+aa0f250558375922f3091820361156e514fe1842
diff --git a/solr/licenses/lucene-analysis-kuromoji-9.4.0.jar.sha1 b/solr/licenses/lucene-analysis-kuromoji-9.4.0.jar.sha1
index ec8c78a5805..ede93718159 100644
--- a/solr/licenses/lucene-analysis-kuromoji-9.4.0.jar.sha1
+++ b/solr/licenses/lucene-analysis-kuromoji-9.4.0.jar.sha1
@@ -1 +1 @@
-32eb1ad367ab1289804aeed95ea7216711a7764d
\ No newline at end of file
+32eb1ad367ab1289804aeed95ea7216711a7764d
diff --git a/solr/licenses/lucene-analysis-morfologik-9.4.0.jar.sha1 b/solr/licenses/lucene-analysis-morfologik-9.4.0.jar.sha1
index 7cc4a7131f8..6b300e2590d 100644
--- a/solr/licenses/lucene-analysis-morfologik-9.4.0.jar.sha1
+++ b/solr/licenses/lucene-analysis-morfologik-9.4.0.jar.sha1
@@ -1 +1 @@
-13e1ae2c760d8c0d7990ffe3296e46d9d8e6f842
\ No newline at end of file
+13e1ae2c760d8c0d7990ffe3296e46d9d8e6f842
diff --git a/solr/licenses/lucene-analysis-nori-9.4.0.jar.sha1 b/solr/licenses/lucene-analysis-nori-9.4.0.jar.sha1
index 438585ee3af..e4f9c8d7cb1 100644
--- a/solr/licenses/lucene-analysis-nori-9.4.0.jar.sha1
+++ b/solr/licenses/lucene-analysis-nori-9.4.0.jar.sha1
@@ -1 +1 @@
-63661714be65f882a921d281965b0779fd487b90
\ No newline at end of file
+63661714be65f882a921d281965b0779fd487b90
diff --git a/solr/licenses/lucene-analysis-opennlp-9.4.0.jar.sha1 b/solr/licenses/lucene-analysis-opennlp-9.4.0.jar.sha1
index 969fd39ddaf..3631c1d9d67 100644
--- a/solr/licenses/lucene-analysis-opennlp-9.4.0.jar.sha1
+++ b/solr/licenses/lucene-analysis-opennlp-9.4.0.jar.sha1
@@ -1 +1 @@
-c0ca97d8f89e674084b44240d587453cf5df8670
\ No newline at end of file
+c0ca97d8f89e674084b44240d587453cf5df8670
diff --git a/solr/licenses/lucene-analysis-phonetic-9.4.0.jar.sha1 b/solr/licenses/lucene-analysis-phonetic-9.4.0.jar.sha1
index 019a98dc594..8cffe4c5be1 100644
--- a/solr/licenses/lucene-analysis-phonetic-9.4.0.jar.sha1
+++ b/solr/licenses/lucene-analysis-phonetic-9.4.0.jar.sha1
@@ -1 +1 @@
-1034d876551fc21f7835b456dab01db21b9a4af6
\ No newline at end of file
+1034d876551fc21f7835b456dab01db21b9a4af6
diff --git a/solr/licenses/lucene-analysis-smartcn-9.4.0.jar.sha1 b/solr/licenses/lucene-analysis-smartcn-9.4.0.jar.sha1
index cc8e31b7a24..96c062037cd 100644
--- a/solr/licenses/lucene-analysis-smartcn-9.4.0.jar.sha1
+++ b/solr/licenses/lucene-analysis-smartcn-9.4.0.jar.sha1
@@ -1 +1 @@
-f704ee4b14e2fe2622bb983f04b36a32df8fd4a7
\ No newline at end of file
+f704ee4b14e2fe2622bb983f04b36a32df8fd4a7
diff --git a/solr/licenses/lucene-analysis-stempel-9.4.0.jar.sha1 b/solr/licenses/lucene-analysis-stempel-9.4.0.jar.sha1
index 25e115b8430..8fc7f640f79 100644
--- a/solr/licenses/lucene-analysis-stempel-9.4.0.jar.sha1
+++ b/solr/licenses/lucene-analysis-stempel-9.4.0.jar.sha1
@@ -1 +1 @@
-a95ff17b51da6b3da641fa4053e5ee9ea2ff5daf
\ No newline at end of file
+a95ff17b51da6b3da641fa4053e5ee9ea2ff5daf
diff --git a/solr/licenses/lucene-backward-codecs-9.4.0.jar.sha1 b/solr/licenses/lucene-backward-codecs-9.4.0.jar.sha1
index 1b7b53ef9fe..acc54ff44a6 100644
--- a/solr/licenses/lucene-backward-codecs-9.4.0.jar.sha1
+++ b/solr/licenses/lucene-backward-codecs-9.4.0.jar.sha1
@@ -1 +1 @@
-259863dfd107645de6146b3c87b4ecee66a4d43d
\ No newline at end of file
+259863dfd107645de6146b3c87b4ecee66a4d43d
diff --git a/solr/licenses/lucene-classification-9.4.0.jar.sha1 b/solr/licenses/lucene-classification-9.4.0.jar.sha1
index 7a2c4b37417..f4cc0bd5bd1 100644
--- a/solr/licenses/lucene-classification-9.4.0.jar.sha1
+++ b/solr/licenses/lucene-classification-9.4.0.jar.sha1
@@ -1 +1 @@
-35fb746cbfc8a36264a2e6352294d8a45c9006fe
\ No newline at end of file
+35fb746cbfc8a36264a2e6352294d8a45c9006fe
diff --git a/solr/licenses/lucene-codecs-9.4.0.jar.sha1 b/solr/licenses/lucene-codecs-9.4.0.jar.sha1
index 5695aa64cc1..6efd1c078a0 100644
--- a/solr/licenses/lucene-codecs-9.4.0.jar.sha1
+++ b/solr/licenses/lucene-codecs-9.4.0.jar.sha1
@@ -1 +1 @@
-5c9d00dbe95e88980938f20be1e130070dd03b3a
\ No newline at end of file
+5c9d00dbe95e88980938f20be1e130070dd03b3a
diff --git a/solr/licenses/lucene-core-9.4.0.jar.sha1 b/solr/licenses/lucene-core-9.4.0.jar.sha1
index 66f7f244851..81b11fc206c 100644
--- a/solr/licenses/lucene-core-9.4.0.jar.sha1
+++ b/solr/licenses/lucene-core-9.4.0.jar.sha1
@@ -1 +1 @@
-cca1116f813c0f0c63acfac4c952baf29d46d76b
\ No newline at end of file
+cca1116f813c0f0c63acfac4c952baf29d46d76b
diff --git a/solr/licenses/lucene-expressions-9.4.0.jar.sha1 b/solr/licenses/lucene-expressions-9.4.0.jar.sha1
index 2b647c1270e..645695a09ac 100644
--- a/solr/licenses/lucene-expressions-9.4.0.jar.sha1
+++ b/solr/licenses/lucene-expressions-9.4.0.jar.sha1
@@ -1 +1 @@
-19749e264805171009836cbedecc5494b13cd920
\ No newline at end of file
+19749e264805171009836cbedecc5494b13cd920
diff --git a/solr/licenses/lucene-grouping-9.4.0.jar.sha1 b/solr/licenses/lucene-grouping-9.4.0.jar.sha1
index fe79c0efd34..9f09bc6a03d 100644
--- a/solr/licenses/lucene-grouping-9.4.0.jar.sha1
+++ b/solr/licenses/lucene-grouping-9.4.0.jar.sha1
@@ -1 +1 @@
-51bec1d5acc8ecaf9f50e047d3f86d60c7a958f4
\ No newline at end of file
+51bec1d5acc8ecaf9f50e047d3f86d60c7a958f4
diff --git a/solr/licenses/lucene-highlighter-9.4.0.jar.sha1 b/solr/licenses/lucene-highlighter-9.4.0.jar.sha1
index 54700f08a3f..bf7efa1677f 100644
--- a/solr/licenses/lucene-highlighter-9.4.0.jar.sha1
+++ b/solr/licenses/lucene-highlighter-9.4.0.jar.sha1
@@ -1 +1 @@
-c8cf8c9308d8fb18a927c7ed267a14ace3990a5f
\ No newline at end of file
+c8cf8c9308d8fb18a927c7ed267a14ace3990a5f
diff --git a/solr/licenses/lucene-join-9.4.0.jar.sha1 b/solr/licenses/lucene-join-9.4.0.jar.sha1
index 752006d3a66..fd1cf12734a 100644
--- a/solr/licenses/lucene-join-9.4.0.jar.sha1
+++ b/solr/licenses/lucene-join-9.4.0.jar.sha1
@@ -1 +1 @@
-99b2d3c8e137a6853a2503456897d47d4f18974b
\ No newline at end of file
+99b2d3c8e137a6853a2503456897d47d4f18974b
diff --git a/solr/licenses/lucene-memory-9.4.0.jar.sha1 b/solr/licenses/lucene-memory-9.4.0.jar.sha1
index 27b48869996..7721dc39e92 100644
--- a/solr/licenses/lucene-memory-9.4.0.jar.sha1
+++ b/solr/licenses/lucene-memory-9.4.0.jar.sha1
@@ -1 +1 @@
-881cb214e79da14de35cb0e8e6779d2722828a96
\ No newline at end of file
+881cb214e79da14de35cb0e8e6779d2722828a96
diff --git a/solr/licenses/lucene-misc-9.4.0.jar.sha1 b/solr/licenses/lucene-misc-9.4.0.jar.sha1
index f9924475b9a..e775f4f48d6 100644
--- a/solr/licenses/lucene-misc-9.4.0.jar.sha1
+++ b/solr/licenses/lucene-misc-9.4.0.jar.sha1
@@ -1 +1 @@
-a126123e482e6bf2e7aea670d221a2a39d3277dc
\ No newline at end of file
+a126123e482e6bf2e7aea670d221a2a39d3277dc
diff --git a/solr/licenses/lucene-queries-9.4.0.jar.sha1 b/solr/licenses/lucene-queries-9.4.0.jar.sha1
index 65e441bfdaf..5c20738c6a7 100644
--- a/solr/licenses/lucene-queries-9.4.0.jar.sha1
+++ b/solr/licenses/lucene-queries-9.4.0.jar.sha1
@@ -1 +1 @@
-fe74dbfe9dba9ee9ee2cb80f151fde97fb4efd12
\ No newline at end of file
+fe74dbfe9dba9ee9ee2cb80f151fde97fb4efd12
diff --git a/solr/licenses/lucene-queryparser-9.4.0.jar.sha1 b/solr/licenses/lucene-queryparser-9.4.0.jar.sha1
index 2d454942d52..a1dd09f4c98 100644
--- a/solr/licenses/lucene-queryparser-9.4.0.jar.sha1
+++ b/solr/licenses/lucene-queryparser-9.4.0.jar.sha1
@@ -1 +1 @@
-13f108a8572fcf0670c7df3ba8dbe1076d0e0dbe
\ No newline at end of file
+13f108a8572fcf0670c7df3ba8dbe1076d0e0dbe
diff --git a/solr/licenses/lucene-sandbox-9.4.0.jar.sha1 b/solr/licenses/lucene-sandbox-9.4.0.jar.sha1
index 4ebcf3f6edc..9801f0cfc8f 100644
--- a/solr/licenses/lucene-sandbox-9.4.0.jar.sha1
+++ b/solr/licenses/lucene-sandbox-9.4.0.jar.sha1
@@ -1 +1 @@
-e7a676a12ea50dcbf64564f4e4022f939f0a627d
\ No newline at end of file
+e7a676a12ea50dcbf64564f4e4022f939f0a627d
diff --git a/solr/licenses/lucene-spatial-extras-9.4.0.jar.sha1 b/solr/licenses/lucene-spatial-extras-9.4.0.jar.sha1
index c0f181ad19e..2592f5ce940 100644
--- a/solr/licenses/lucene-spatial-extras-9.4.0.jar.sha1
+++ b/solr/licenses/lucene-spatial-extras-9.4.0.jar.sha1
@@ -1 +1 @@
-84d956d1cb1458c51967af1c4acadd2a1f92634d
\ No newline at end of file
+84d956d1cb1458c51967af1c4acadd2a1f92634d
diff --git a/solr/licenses/lucene-spatial3d-9.4.0.jar.sha1 b/solr/licenses/lucene-spatial3d-9.4.0.jar.sha1
index 3414f36b02b..c1a014d2b0d 100644
--- a/solr/licenses/lucene-spatial3d-9.4.0.jar.sha1
+++ b/solr/licenses/lucene-spatial3d-9.4.0.jar.sha1
@@ -1 +1 @@
-76887ca708f23b13613e45fb9e307c548b22c6da
\ No newline at end of file
+76887ca708f23b13613e45fb9e307c548b22c6da
diff --git a/solr/licenses/lucene-suggest-9.4.0.jar.sha1 b/solr/licenses/lucene-suggest-9.4.0.jar.sha1
index 563a0b5ad96..78471bafc5b 100644
--- a/solr/licenses/lucene-suggest-9.4.0.jar.sha1
+++ b/solr/licenses/lucene-suggest-9.4.0.jar.sha1
@@ -1 +1 @@
-406c9c539f262449d3b1e57e7bc4302efeecaf6c
\ No newline at end of file
+406c9c539f262449d3b1e57e7bc4302efeecaf6c
diff --git a/solr/licenses/lucene-test-framework-9.4.0.jar.sha1 b/solr/licenses/lucene-test-framework-9.4.0.jar.sha1
index cf3a5111ca8..21154aa94ee 100644
--- a/solr/licenses/lucene-test-framework-9.4.0.jar.sha1
+++ b/solr/licenses/lucene-test-framework-9.4.0.jar.sha1
@@ -1 +1 @@
-5f13400741a511fd4ba48e64d5637fb0a8b1bd7a
\ No newline at end of file
+5f13400741a511fd4ba48e64d5637fb0a8b1bd7a