Skip to content

Commit 5194ce5

Browse files
committedMay 14, 2015
More QgsFields tests
1 parent 448f63f commit 5194ce5

File tree

1 file changed

+101
-0
lines changed

1 file changed

+101
-0
lines changed
 

‎tests/src/core/testqgsfields.cpp

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@ class TestQgsFields: public QObject
4545
void byName();
4646
void fieldOrigin();
4747
void fieldOriginIndex();
48+
void indexFromName();
49+
void toList();
50+
void allAttrsList();
51+
void appendExpressionField();
4852

4953
private:
5054
};
@@ -291,11 +295,108 @@ void TestQgsFields::fieldOrigin()
291295

292296
QCOMPARE( fields.fieldOrigin( 0 ), QgsFields::OriginJoin );
293297
QCOMPARE( fields.fieldOrigin( 1 ), QgsFields::OriginExpression );
298+
QCOMPARE( fields.fieldOrigin( 2 ), QgsFields::OriginUnknown );
294299
}
295300

296301
void TestQgsFields::fieldOriginIndex()
297302
{
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 ) );
298393

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 );
299400
}
300401

301402
QTEST_MAIN( TestQgsFields )

0 commit comments

Comments
 (0)
Please sign in to comment.