@@ -789,20 +789,27 @@ void TestQgsProcessing::uniqueValues()
789789 QgsProcessingContext context;
790790 context.setFlags ( QgsProcessingContext::Flags ( 0 ) );
791791
792+ QgsProject p;
793+ p.addMapLayer ( layer );
794+ context.setProject ( &p );
795+
796+ QgsProcessingParameterDefinition *def = new QgsProcessingParameterString ( QStringLiteral ( " string" ) );
797+ QVariantMap params;
798+ params.insert ( QStringLiteral ( " string" ), layer->id () );
799+
800+ std::unique_ptr< QgsFeatureSource > source ( QgsProcessingParameters::parameterAsSource ( def, params, context ) );
801+
792802 // some bad checks
793- QVERIFY ( QgsProcessingUtils::uniqueValues ( nullptr , 0 , context ).isEmpty () );
794- QVERIFY ( QgsProcessingUtils::uniqueValues ( nullptr , -1 , context ).isEmpty () );
795- QVERIFY ( QgsProcessingUtils::uniqueValues ( nullptr , 10001 , context ).isEmpty () );
796- QVERIFY ( QgsProcessingUtils::uniqueValues ( layer, -1 , context ).isEmpty () );
797- QVERIFY ( QgsProcessingUtils::uniqueValues ( layer, 10001 , context ).isEmpty () );
803+ QVERIFY ( source->uniqueValues ( -1 ).isEmpty () );
804+ QVERIFY ( source->uniqueValues ( 10001 ).isEmpty () );
798805
799806 // good checks
800- QList < QVariant > vals = QgsProcessingUtils:: uniqueValues ( layer, 0 , context );
807+ QSet < QVariant > vals = source-> uniqueValues ( 0 );
801808 QCOMPARE ( vals.count (), 3 );
802809 QVERIFY ( vals.contains ( 1 ) );
803810 QVERIFY ( vals.contains ( 2 ) );
804811 QVERIFY ( vals.contains ( 3 ) );
805- vals = QgsProcessingUtils:: uniqueValues ( layer, 1 , context );
812+ vals = source-> uniqueValues ( 1 );
806813 QCOMPARE ( vals.count (), 3 );
807814 QVERIFY ( vals.contains ( QString ( " A" ) ) );
808815 QVERIFY ( vals.contains ( QString ( " B" ) ) );
@@ -811,31 +818,31 @@ void TestQgsProcessing::uniqueValues()
811818 // using only selected features
812819 layer->selectByIds ( QgsFeatureIds () << 1 << 2 << 4 );
813820 // but not using selection yet...
814- vals = QgsProcessingUtils::uniqueValues ( layer, 0 , context );
821+ source.reset ( QgsProcessingParameters::parameterAsSource ( def, params, context ) );
822+ vals = source->uniqueValues ( 0 );
815823 QCOMPARE ( vals.count (), 3 );
816824 QVERIFY ( vals.contains ( 1 ) );
817825 QVERIFY ( vals.contains ( 2 ) );
818826 QVERIFY ( vals.contains ( 3 ) );
819- vals = QgsProcessingUtils:: uniqueValues ( layer, 1 , context );
827+ vals = source-> uniqueValues ( 1 );
820828 QCOMPARE ( vals.count (), 3 );
821829 QVERIFY ( vals.contains ( QString ( " A" ) ) );
822830 QVERIFY ( vals.contains ( QString ( " B" ) ) );
823831 QVERIFY ( vals.contains ( QString ( " C" ) ) );
824832
825833 // selection and using selection
826834 context.setFlags ( QgsProcessingContext::UseSelectionIfPresent );
827- QVERIFY ( QgsProcessingUtils::uniqueValues ( layer, -1 , context ).isEmpty () );
828- QVERIFY ( QgsProcessingUtils::uniqueValues ( layer, 10001 , context ).isEmpty () );
829- vals = QgsProcessingUtils::uniqueValues ( layer, 0 , context );
835+ source.reset ( QgsProcessingParameters::parameterAsSource ( def, params, context ) );
836+ QVERIFY ( source->uniqueValues ( -1 ).isEmpty () );
837+ QVERIFY ( source->uniqueValues ( 10001 ).isEmpty () );
838+ vals = source->uniqueValues ( 0 );
830839 QCOMPARE ( vals.count (), 2 );
831840 QVERIFY ( vals.contains ( 1 ) );
832841 QVERIFY ( vals.contains ( 2 ) );
833- vals = QgsProcessingUtils:: uniqueValues ( layer, 1 , context );
842+ vals = source-> uniqueValues ( 1 );
834843 QCOMPARE ( vals.count (), 2 );
835844 QVERIFY ( vals.contains ( QString ( " A" ) ) );
836845 QVERIFY ( vals.contains ( QString ( " B" ) ) );
837-
838- delete layer;
839846}
840847
841848void TestQgsProcessing::createIndex ()
0 commit comments