@@ -45,6 +45,10 @@ class TestQgsFields: public QObject
45
45
void byName ();
46
46
void fieldOrigin ();
47
47
void fieldOriginIndex ();
48
+ void indexFromName ();
49
+ void toList ();
50
+ void allAttrsList ();
51
+ void appendExpressionField ();
48
52
49
53
private:
50
54
};
@@ -291,11 +295,108 @@ void TestQgsFields::fieldOrigin()
291
295
292
296
QCOMPARE ( fields.fieldOrigin ( 0 ), QgsFields::OriginJoin );
293
297
QCOMPARE ( fields.fieldOrigin ( 1 ), QgsFields::OriginExpression );
298
+ QCOMPARE ( fields.fieldOrigin ( 2 ), QgsFields::OriginUnknown );
294
299
}
295
300
296
301
void TestQgsFields::fieldOriginIndex ()
297
302
{
303
+ QgsFields fields;
304
+ QgsField field ( QString ( " testfield" ) );
305
+ fields.append ( field , QgsFields::OriginProvider, 5 );
306
+ QCOMPARE ( fields.fieldOriginIndex ( 0 ), 5 );
307
+
308
+ QgsField field2 ( QString ( " testfield2" ) );
309
+ fields.append ( field2, QgsFields::OriginProvider, 10 );
310
+ QCOMPARE ( fields.fieldOriginIndex ( 1 ), 10 );
311
+
312
+ QgsField field3 ( QString ( " testfield3" ) );
313
+ // field origin index not specified with OriginProvider, should be automatic
314
+ fields.append ( field3, QgsFields::OriginProvider );
315
+ QCOMPARE ( fields.fieldOriginIndex ( 2 ), 2 );
316
+
317
+ QgsField field4 ( QString ( " testfield4" ) );
318
+ // field origin index not specified with other than OriginProvider, should remain -1
319
+ fields.append ( field4, QgsFields::OriginEdit );
320
+ QCOMPARE ( fields.fieldOriginIndex ( 3 ), -1 );
321
+ }
322
+
323
+ void TestQgsFields::indexFromName ()
324
+ {
325
+ QgsFields fields;
326
+ QgsField field ( QString ( " testfield" ) );
327
+ fields.append ( field );
328
+ QgsField field2 ( QString ( " testfield2" ) );
329
+ fields.append ( field2 );
330
+ QgsField field3 ( QString ( " testfield3" ) );
331
+ fields.append ( field3 );
332
+
333
+ QCOMPARE ( fields.indexFromName ( QString ( " bad" ) ), -1 );
334
+ QCOMPARE ( fields.fieldNameIndex ( QString ( " bad" ) ), -1 );
335
+ QCOMPARE ( fields.indexFromName ( QString ( " testfield" ) ), 0 );
336
+ QCOMPARE ( fields.fieldNameIndex ( QString ( " testfield" ) ), 0 );
337
+ QCOMPARE ( fields.indexFromName ( QString ( " testfield3" ) ), 2 );
338
+ QCOMPARE ( fields.fieldNameIndex ( QString ( " testfield3" ) ), 2 );
339
+
340
+ // indexFromName is case sensitive, fieldNameIndex isn't
341
+ QCOMPARE ( fields.indexFromName ( QString ( " teStFiEld2" ) ), -1 );
342
+ QCOMPARE ( fields.fieldNameIndex ( QString ( " teStFiEld2" ) ), 1 );
343
+ }
344
+
345
+ void TestQgsFields::toList ()
346
+ {
347
+ QgsFields fields;
348
+ QList<QgsField> list = fields.toList ();
349
+ QVERIFY ( list.isEmpty () );
350
+
351
+ QgsField field ( QString ( " testfield" ) );
352
+ fields.append ( field );
353
+ QgsField field2 ( QString ( " testfield2" ) );
354
+ fields.append ( field2 );
355
+ QgsField field3 ( QString ( " testfield3" ) );
356
+ fields.append ( field3 );
357
+
358
+ list = fields.toList ();
359
+ QCOMPARE ( list.at ( 0 ), field );
360
+ QCOMPARE ( list.at ( 1 ), field2 );
361
+ QCOMPARE ( list.at ( 2 ), field3 );
362
+ }
363
+
364
+ void TestQgsFields::allAttrsList ()
365
+ {
366
+ QgsFields fields;
367
+ QgsAttributeList attrList = fields.allAttributesList ();
368
+ QVERIFY ( attrList.isEmpty () );
369
+
370
+ QgsField field ( QString ( " testfield" ) );
371
+ fields.append ( field );
372
+ QgsField field2 ( QString ( " testfield2" ) );
373
+ fields.append ( field2 );
374
+ QgsField field3 ( QString ( " testfield3" ) );
375
+ fields.append ( field3 );
376
+
377
+ attrList = fields.allAttributesList ();
378
+ QCOMPARE ( attrList.at ( 0 ), 0 );
379
+ QCOMPARE ( attrList.at ( 1 ), 1 );
380
+ QCOMPARE ( attrList.at ( 2 ), 2 );
381
+ }
382
+
383
+ void TestQgsFields::appendExpressionField ()
384
+ {
385
+ QgsFields fields;
386
+ QgsField field ( QString ( " testfield" ) );
387
+ fields.append ( field );
388
+ QgsField field2 ( QString ( " testfield2" ) );
389
+ fields.append ( field2 );
390
+
391
+ QgsField dupeName ( QString ( " testfield" ) );
392
+ QVERIFY ( !fields.appendExpressionField ( dupeName, 1 ) );
298
393
394
+ // good name
395
+ QgsField exprField ( QString ( " expression" ) );
396
+ QVERIFY ( fields.appendExpressionField ( exprField, 5 ) );
397
+ QCOMPARE ( fields.count (), 3 );
398
+ QCOMPARE ( fields.fieldOrigin ( 2 ), QgsFields::OriginExpression );
399
+ QCOMPARE ( fields.fieldOriginIndex ( 2 ), 5 );
299
400
}
300
401
301
402
QTEST_MAIN ( TestQgsFields )
0 commit comments