mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-28 00:17:30 -05:00
Add more feature filter algorithm tests
This commit is contained in:
parent
6dd89b5675
commit
41b47a297f
@ -38,6 +38,7 @@ class TestQgsProcessingAlgs: public QObject
|
||||
void renameLayerAlg();
|
||||
void loadLayerAlg();
|
||||
void parseGeoTags();
|
||||
void featureFilterAlg();
|
||||
|
||||
private:
|
||||
|
||||
@ -353,6 +354,56 @@ void TestQgsProcessingAlgs::parseGeoTags()
|
||||
|
||||
}
|
||||
|
||||
void TestQgsProcessingAlgs::featureFilterAlg()
|
||||
{
|
||||
const QgsProcessingAlgorithm *filterAlgTemplate = QgsApplication::processingRegistry()->algorithmById( QStringLiteral( "native:filter" ) );
|
||||
|
||||
Q_ASSERT( filterAlgTemplate->outputDefinitions().isEmpty() );
|
||||
|
||||
QVariantList outputs;
|
||||
QVariantMap output1;
|
||||
output1.insert( QStringLiteral( "name" ), QStringLiteral( "test" ) );
|
||||
output1.insert( QStringLiteral( "expression" ), QStringLiteral( "TRUE" ) );
|
||||
output1.insert( QStringLiteral( "isModelOutput" ), true );
|
||||
|
||||
outputs.append( output1 );
|
||||
|
||||
QVariantMap config1;
|
||||
config1.insert( QStringLiteral( "outputs" ), outputs );
|
||||
|
||||
std::unique_ptr<QgsProcessingAlgorithm> filterAlg( filterAlgTemplate->create( config1 ) );
|
||||
|
||||
QCOMPARE( filterAlg->outputDefinitions().size(), 1 );
|
||||
|
||||
auto outputDef = filterAlg->outputDefinition( QStringLiteral( "OUTPUT_test" ) );
|
||||
QCOMPARE( outputDef->type(), QStringLiteral( "outputVector" ) );
|
||||
|
||||
auto outputParamDef = filterAlg->parameterDefinition( "OUTPUT_test" );
|
||||
Q_ASSERT( outputParamDef->flags() & QgsProcessingParameterDefinition::FlagIsModelOutput );
|
||||
Q_ASSERT( outputParamDef->flags() & QgsProcessingParameterDefinition::FlagHidden );
|
||||
|
||||
QVariantMap output2;
|
||||
output2.insert( QStringLiteral( "name" ), QStringLiteral( "nonmodeloutput" ) );
|
||||
output2.insert( QStringLiteral( "expression" ), QStringLiteral( "TRUE" ) );
|
||||
output2.insert( QStringLiteral( "isModelOutput" ), false );
|
||||
|
||||
outputs.append( output2 );
|
||||
|
||||
QVariantMap config2;
|
||||
config2.insert( QStringLiteral( "outputs" ), outputs );
|
||||
|
||||
std::unique_ptr<QgsProcessingAlgorithm> filterAlg2( filterAlgTemplate->create( config2 ) );
|
||||
|
||||
QCOMPARE( filterAlg2->outputDefinitions().size(), 2 );
|
||||
|
||||
auto outputDef2 = filterAlg2->outputDefinition( QStringLiteral( "OUTPUT_nonmodeloutput" ) );
|
||||
QCOMPARE( outputDef2->type(), QStringLiteral( "outputVector" ) );
|
||||
|
||||
auto outputParamDef2 = filterAlg2->parameterDefinition( "OUTPUT_nonmodeloutput" );
|
||||
Q_ASSERT( !outputParamDef2->flags().testFlag( QgsProcessingParameterDefinition::FlagIsModelOutput ) );
|
||||
Q_ASSERT( outputParamDef2->flags() & QgsProcessingParameterDefinition::FlagHidden );
|
||||
}
|
||||
|
||||
|
||||
QGSTEST_MAIN( TestQgsProcessingAlgs )
|
||||
#include "testqgsprocessingalgs.moc"
|
||||
|
Loading…
x
Reference in New Issue
Block a user