@@ -789,20 +789,27 @@ void TestQgsProcessing::uniqueValues()
789
789
QgsProcessingContext context;
790
790
context.setFlags ( QgsProcessingContext::Flags ( 0 ) );
791
791
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
+
792
802
// 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 () );
798
805
799
806
// good checks
800
- QList < QVariant > vals = QgsProcessingUtils:: uniqueValues ( layer, 0 , context );
807
+ QSet < QVariant > vals = source-> uniqueValues ( 0 );
801
808
QCOMPARE ( vals.count (), 3 );
802
809
QVERIFY ( vals.contains ( 1 ) );
803
810
QVERIFY ( vals.contains ( 2 ) );
804
811
QVERIFY ( vals.contains ( 3 ) );
805
- vals = QgsProcessingUtils:: uniqueValues ( layer, 1 , context );
812
+ vals = source-> uniqueValues ( 1 );
806
813
QCOMPARE ( vals.count (), 3 );
807
814
QVERIFY ( vals.contains ( QString ( " A" ) ) );
808
815
QVERIFY ( vals.contains ( QString ( " B" ) ) );
@@ -811,31 +818,31 @@ void TestQgsProcessing::uniqueValues()
811
818
// using only selected features
812
819
layer->selectByIds ( QgsFeatureIds () << 1 << 2 << 4 );
813
820
// 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 );
815
823
QCOMPARE ( vals.count (), 3 );
816
824
QVERIFY ( vals.contains ( 1 ) );
817
825
QVERIFY ( vals.contains ( 2 ) );
818
826
QVERIFY ( vals.contains ( 3 ) );
819
- vals = QgsProcessingUtils:: uniqueValues ( layer, 1 , context );
827
+ vals = source-> uniqueValues ( 1 );
820
828
QCOMPARE ( vals.count (), 3 );
821
829
QVERIFY ( vals.contains ( QString ( " A" ) ) );
822
830
QVERIFY ( vals.contains ( QString ( " B" ) ) );
823
831
QVERIFY ( vals.contains ( QString ( " C" ) ) );
824
832
825
833
// selection and using selection
826
834
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 );
830
839
QCOMPARE ( vals.count (), 2 );
831
840
QVERIFY ( vals.contains ( 1 ) );
832
841
QVERIFY ( vals.contains ( 2 ) );
833
- vals = QgsProcessingUtils:: uniqueValues ( layer, 1 , context );
842
+ vals = source-> uniqueValues ( 1 );
834
843
QCOMPARE ( vals.count (), 2 );
835
844
QVERIFY ( vals.contains ( QString ( " A" ) ) );
836
845
QVERIFY ( vals.contains ( QString ( " B" ) ) );
837
-
838
- delete layer;
839
846
}
840
847
841
848
void TestQgsProcessing::createIndex ()
0 commit comments