Skip to content

Commit d107603

Browse files
committedAug 1, 2015
Expand QgsField/QgsFields tests
1 parent 2fb6c10 commit d107603

File tree

2 files changed

+91
-0
lines changed

2 files changed

+91
-0
lines changed
 

‎tests/src/core/testqgsfield.cpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ class TestQgsField: public QObject
3838
void asVariant(); //test conversion to and from a QVariant
3939
void displayString();
4040
void convertCompatible();
41+
void dataStream();
4142

4243
private:
4344
};
@@ -284,5 +285,28 @@ void TestQgsField::convertCompatible()
284285
QCOMPARE( stringVar.toString(), QString( "lon" ) );
285286
}
286287

288+
void TestQgsField::dataStream()
289+
{
290+
QgsField original;
291+
original.setName( "name" );
292+
original.setType( QVariant::Int );
293+
original.setLength( 5 );
294+
original.setPrecision( 2 );
295+
original.setTypeName( "typename1" );
296+
original.setComment( "comment1" );
297+
298+
QByteArray ba;
299+
QDataStream ds( &ba, QIODevice::ReadWrite );;
300+
ds << original;
301+
302+
QgsField result;
303+
ds.device()->seek( 0 );
304+
ds >> result;
305+
306+
QCOMPARE( result, original );
307+
QCOMPARE( result.typeName(), original.typeName() ); //typename is NOT required for equality
308+
QCOMPARE( result.comment(), original.comment() ); //comment is NOT required for equality
309+
}
310+
287311
QTEST_MAIN( TestQgsField )
288312
#include "testqgsfield.moc"

‎tests/src/core/testqgsfields.cpp

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ class TestQgsFields: public QObject
4949
void toList();
5050
void allAttrsList();
5151
void appendExpressionField();
52+
void dataStream();
53+
void field(); //test QgsFields::Field
5254

5355
private:
5456
};
@@ -400,5 +402,70 @@ void TestQgsFields::appendExpressionField()
400402
QCOMPARE( fields.fieldOriginIndex( 2 ), 5 );
401403
}
402404

405+
void TestQgsFields::dataStream()
406+
{
407+
QgsField original1;
408+
original1.setName( "name" );
409+
original1.setType( QVariant::Int );
410+
original1.setLength( 5 );
411+
original1.setPrecision( 2 );
412+
original1.setTypeName( "typename1" );
413+
original1.setComment( "comment1" );
414+
415+
QgsField original2;
416+
original2.setName( "next name" );
417+
original2.setType( QVariant::Double );
418+
original2.setLength( 15 );
419+
original2.setPrecision( 3 );
420+
original2.setTypeName( "double" );
421+
original2.setComment( "comment for field 2" );
422+
423+
QgsFields originalFields;
424+
originalFields.append( original1 );
425+
originalFields.append( original2 );
426+
427+
QByteArray ba;
428+
QDataStream ds( &ba, QIODevice::ReadWrite );;
429+
ds << originalFields;
430+
431+
QgsFields resultFields;
432+
ds.device()->seek( 0 );
433+
ds >> resultFields;
434+
435+
QCOMPARE( resultFields, originalFields );
436+
QCOMPARE( resultFields.field( 0 ).typeName(), originalFields.field( 0 ).typeName() ); //typename is NOT required for equality
437+
QCOMPARE( resultFields.field( 0 ).comment(), originalFields.field( 0 ).comment() ); //comment is NOT required for equality
438+
QCOMPARE( resultFields.field( 1 ).typeName(), originalFields.field( 1 ).typeName() );
439+
QCOMPARE( resultFields.field( 1 ).comment(), originalFields.field( 1 ).comment() );
440+
}
441+
442+
void TestQgsFields::field()
443+
{
444+
QgsField original;
445+
original.setName( "name" );
446+
original.setType( QVariant::Int );
447+
original.setLength( 5 );
448+
original.setPrecision( 2 );
449+
450+
//test constructors for QgsFields::Field
451+
QgsFields::Field fieldConstructor1( original, QgsFields::OriginJoin, 5 );
452+
QCOMPARE( fieldConstructor1.field, original );
453+
QCOMPARE( fieldConstructor1.origin, QgsFields::OriginJoin );
454+
QCOMPARE( fieldConstructor1.originIndex, 5 );
455+
456+
QgsFields::Field fieldConstructor2;
457+
QCOMPARE( fieldConstructor2.origin, QgsFields::OriginUnknown );
458+
QCOMPARE( fieldConstructor2.originIndex, -1 );
459+
460+
//test equality operators
461+
QgsFields::Field field1( original, QgsFields::OriginJoin, 5 );
462+
QgsFields::Field field2( original, QgsFields::OriginJoin, 5 );
463+
QVERIFY( field1 == field2 );
464+
QgsFields::Field field3( original, QgsFields::OriginEdit, 5 );
465+
QVERIFY( field1 != field3 );
466+
QgsFields::Field field4( original, QgsFields::OriginJoin, 6 );
467+
QVERIFY( field1 != field4 );
468+
}
469+
403470
QTEST_MAIN( TestQgsFields )
404471
#include "testqgsfields.moc"

0 commit comments

Comments
 (0)
Please sign in to comment.