Skip to content

Commit 41b47a2

Browse files
committed
Add more feature filter algorithm tests
1 parent 6dd89b5 commit 41b47a2

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

tests/src/analysis/testqgsprocessingalgs.cpp

+51
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ class TestQgsProcessingAlgs: public QObject
3838
void renameLayerAlg();
3939
void loadLayerAlg();
4040
void parseGeoTags();
41+
void featureFilterAlg();
4142

4243
private:
4344

@@ -353,6 +354,56 @@ void TestQgsProcessingAlgs::parseGeoTags()
353354

354355
}
355356

357+
void TestQgsProcessingAlgs::featureFilterAlg()
358+
{
359+
const QgsProcessingAlgorithm *filterAlgTemplate = QgsApplication::processingRegistry()->algorithmById( QStringLiteral( "native:filter" ) );
360+
361+
Q_ASSERT( filterAlgTemplate->outputDefinitions().isEmpty() );
362+
363+
QVariantList outputs;
364+
QVariantMap output1;
365+
output1.insert( QStringLiteral( "name" ), QStringLiteral( "test" ) );
366+
output1.insert( QStringLiteral( "expression" ), QStringLiteral( "TRUE" ) );
367+
output1.insert( QStringLiteral( "isModelOutput" ), true );
368+
369+
outputs.append( output1 );
370+
371+
QVariantMap config1;
372+
config1.insert( QStringLiteral( "outputs" ), outputs );
373+
374+
std::unique_ptr<QgsProcessingAlgorithm> filterAlg( filterAlgTemplate->create( config1 ) );
375+
376+
QCOMPARE( filterAlg->outputDefinitions().size(), 1 );
377+
378+
auto outputDef = filterAlg->outputDefinition( QStringLiteral( "OUTPUT_test" ) );
379+
QCOMPARE( outputDef->type(), QStringLiteral( "outputVector" ) );
380+
381+
auto outputParamDef = filterAlg->parameterDefinition( "OUTPUT_test" );
382+
Q_ASSERT( outputParamDef->flags() & QgsProcessingParameterDefinition::FlagIsModelOutput );
383+
Q_ASSERT( outputParamDef->flags() & QgsProcessingParameterDefinition::FlagHidden );
384+
385+
QVariantMap output2;
386+
output2.insert( QStringLiteral( "name" ), QStringLiteral( "nonmodeloutput" ) );
387+
output2.insert( QStringLiteral( "expression" ), QStringLiteral( "TRUE" ) );
388+
output2.insert( QStringLiteral( "isModelOutput" ), false );
389+
390+
outputs.append( output2 );
391+
392+
QVariantMap config2;
393+
config2.insert( QStringLiteral( "outputs" ), outputs );
394+
395+
std::unique_ptr<QgsProcessingAlgorithm> filterAlg2( filterAlgTemplate->create( config2 ) );
396+
397+
QCOMPARE( filterAlg2->outputDefinitions().size(), 2 );
398+
399+
auto outputDef2 = filterAlg2->outputDefinition( QStringLiteral( "OUTPUT_nonmodeloutput" ) );
400+
QCOMPARE( outputDef2->type(), QStringLiteral( "outputVector" ) );
401+
402+
auto outputParamDef2 = filterAlg2->parameterDefinition( "OUTPUT_nonmodeloutput" );
403+
Q_ASSERT( !outputParamDef2->flags().testFlag( QgsProcessingParameterDefinition::FlagIsModelOutput ) );
404+
Q_ASSERT( outputParamDef2->flags() & QgsProcessingParameterDefinition::FlagHidden );
405+
}
406+
356407

357408
QGSTEST_MAIN( TestQgsProcessingAlgs )
358409
#include "testqgsprocessingalgs.moc"

0 commit comments

Comments
 (0)