void TestQgsFields::field() { QgsField original; original.setName( "name" ); original.setType( QVariant::Int ); original.setLength( 5 ); original.setPrecision( 2 ); //test constructors for QgsFields::Field QgsFields::Field fieldConstructor1( original, QgsFields::OriginJoin, 5 ); QCOMPARE( fieldConstructor1.field, original ); QCOMPARE( fieldConstructor1.origin, QgsFields::OriginJoin ); QCOMPARE( fieldConstructor1.originIndex, 5 ); QgsFields::Field fieldConstructor2; QCOMPARE( fieldConstructor2.origin, QgsFields::OriginUnknown ); QCOMPARE( fieldConstructor2.originIndex, -1 ); //test equality operators QgsFields::Field field1( original, QgsFields::OriginJoin, 5 ); QgsFields::Field field2( original, QgsFields::OriginJoin, 5 ); QVERIFY( field1 == field2 ); QgsFields::Field field3( original, QgsFields::OriginEdit, 5 ); QVERIFY( field1 != field3 ); QgsFields::Field field4( original, QgsFields::OriginJoin, 6 ); QVERIFY( field1 != field4 ); }
void tst_QSqlField::operator_Equal() { QSqlField field1( "test", QVariant::String ); QSqlField field2( "test2", QVariant::String ); QSqlField field3( "test", QVariant::Int ); QSqlField field4("test", QVariant::String, QString("ATable")); QSqlField field5("test2", QVariant::String, QString("ATable")); QSqlField field6("test", QVariant::String, QString("BTable")); QVERIFY( !(field1 == field2) ); QVERIFY( !(field1 == field3) ); QVERIFY(field1 != field4); QVERIFY(field1 != field5); QVERIFY(field1 != field6); QVERIFY(field4 != field5); QVERIFY(field4 != field6); field2.setName( "test" ); QVERIFY( field1 == field2 ); QVERIFY( field1 == field2 ); field1.setValue( "Harry" ); QVERIFY( !(field1 == field2) ); field2.setValue( "Harry" ); QVERIFY( field1 == field2 ); field1.setReadOnly( true ); QVERIFY( !(field1 == field2) ); field2.setReadOnly( true ); QVERIFY( field1 == field2 ); field4.setTableName("BTable"); QCOMPARE(field4, field6); field6.setName("test3"); QVERIFY(field4 != field6); }
void TestQgsFields::indexFromName() { QgsFields fields; QgsField field( QString( "testfield" ) ); field.setAlias( "testfieldAlias" ); fields.append( field ); QgsField field2( QString( "testfield2" ) ); fields.append( field2 ); QgsField field3( QString( "testfield3" ) ); fields.append( field3 ); QCOMPARE( fields.indexFromName( QString( "bad" ) ), -1 ); QCOMPARE( fields.lookupField( QString( "bad" ) ), -1 ); QCOMPARE( fields.indexFromName( QString( "testfield" ) ), 0 ); QCOMPARE( fields.lookupField( QString( "testfield" ) ), 0 ); QCOMPARE( fields.indexFromName( QString( "testfield3" ) ), 2 ); QCOMPARE( fields.lookupField( QString( "testfield3" ) ), 2 ); //indexFromName is case sensitive, fieldNameIndex isn't QCOMPARE( fields.indexFromName( QString( "teStFiEld2" ) ), -1 ); QCOMPARE( fields.lookupField( QString( "teStFiEld2" ) ), 1 ); //test that fieldNameIndex prefers exact case matches over case insensitive matches QgsField sameNameDifferentCase( QString( "teStFielD" ) ); fields.append( sameNameDifferentCase ); QCOMPARE( fields.lookupField( QString( "teStFielD" ) ), 3 ); //test that the alias is only matched with fieldNameIndex QCOMPARE( fields.indexFromName( "testfieldAlias" ), -1 ); QCOMPARE( fields.lookupField( "testfieldAlias" ), 0 ); QCOMPARE( fields.lookupField( "testfieldalias" ), 0 ); }
void tst_QSqlField::setValue() { QSqlField field1 ( "test", QVariant::Int ); QSqlField field2 ( "test", QVariant::String ); QSqlField field3 ( "test", QVariant::Bool ); QSqlField field4 ( "test", QVariant::Double ); field1.clear(); QFETCH( int, ival ); QFETCH( QString, sval ); QFETCH( double, dval ); QFETCH( bool, bval ); field1.setValue( ival ); QCOMPARE( field1.value().toInt(), ival ); // setValue should also reset the NULL flag QVERIFY( !field1.isNull() ); field2.setValue( sval ); QCOMPARE( field2.value().toString(), sval ); field3.setValue( QVariant( bval) ); QVERIFY( field3.value().toBool() == bval ); field4.setValue( dval ); QCOMPARE( field4.value().toDouble(), dval ); field4.setReadOnly( true ); field4.setValue( "Something_that's_not_a_double" ); QCOMPARE( field4.value().toDouble(), dval ); }
void TestQuery::constructor() { QcSqlField field1("field1"); QcSqlField field2("field2"); QcSqlField field3("field3"); check_sql(field1 == 1, "field1 = 1"); check_sql(field1 != 1, "field1 != 1"); check_sql(field1 < 1, "field1 < 1"); check_sql(field1 > 1, "field1 > 1"); check_sql(field1 <= 1, "field1 <= 1"); check_sql(field1 >= 1, "field1 >= 1"); // check_sql(not field1 == 1, "(NOT field1 = 1)"); check_sql(Not(field1 == 1), "(NOT field1 = 1)"); check_sql(field1 == 1 and field2 == 2, "(field1 = 1 AND field2 = 2)"); check_sql(field1 == 1 or field2 == 2, "(field1 = 1 OR field2 = 2)"); check_sql((field1 == 1 and field2 == 2) or field3 == 3, "((field1 = 1 AND field2 = 2) OR field3 = 3)"); QcDatabase database; // Flavour is ANSI QcDatabaseTable table(&database, "table"); check_sql(table.sql_query(), ""); check_sql(table.sql_query().all(), "SELECT * FROM table;"); check_sql(table.sql_query().add_column(field1).all(), "SELECT field1 FROM table;"); check_sql(table.sql_query().add_column(field1).add_column(field2).all().filter(field1 > 1), "SELECT field1, field2 FROM table WHERE field1 > 1;"); check_sql(table.sql_query().add_column(field1).add_column(field2).all().filter((field1 > 1 and field1 < 10) or field2 > 2), "SELECT field1, field2 FROM table WHERE ((field1 > 1 AND field1 < 10) OR field2 > 2);"); check_sql(table.sql_query().order_by(field1).all(), "SELECT * FROM table ORDER BY field1;"); check_sql(table.sql_query().order_by(field1.desc()).all(), "SELECT * FROM table ORDER BY field1 DESC;"); // Fixme: ->as check_sql(table.sql_query().add_column(Min(field1)->as("min_field1")).all(), "SELECT MIN(field1) AS min_field1 FROM table;"); // Fixme: INSERT INTO table VALUES (?, ...); check_sql(table.sql_query().add_column(field1).insert(), "INSERT INTO table (field1) VALUES (?);"); check_sql(table.sql_query().add_column(field1).add_column(field2).insert(), "INSERT INTO table (field1, field2) VALUES (?, ?);"); check_sql(table.sql_query().add_column(field1).update().filter(field1 > 1), "UPDATE table SET field1 = ? WHERE field1 > 1;"); check_sql(table.sql_query().add_column(field1).add_column(field2).update().filter(field1 > 1), "UPDATE table SET field1 = ?, field2 = ? WHERE field1 > 1;"); check_sql(table.sql_query().delete_().filter(field1 > 1), "DELETE FROM table WHERE field1 > 1;"); check_sql(table.sql_query().add_column(ST_AsBinary(field1)).all(), "SELECT ST_AsBinary(field1) FROM table;"); check_sql(table.sql_query().add_column(field1).add_column(field2, ST_GeomFromWKB()).insert(), "INSERT INTO table (field1, field2) VALUES (?, ST_GeomFromWKB(?));"); }
void tst_QSqlField::type() { QSqlField field1( "string", QVariant::String ); QSqlField field2( "string", QVariant::Bool ); QSqlField field3( "string", QVariant::Double ); QVERIFY( field1.type() == QVariant::String ); QVERIFY( field2.type() == QVariant::Bool ); QVERIFY( field3.type() == QVariant::Double ); }
void tst_QSqlField::operator_Assign() { QSqlField field1( "test", QVariant::String ); field1.setValue( "Harry" ); field1.setReadOnly( true ); QSqlField field2 = field1; QVERIFY( field1 == field2 ); QSqlField field3( "test", QVariant::Double ); field3.clear(); field1 = field3; QVERIFY( field1 == field3 ); }
void TargetsDialog::createTargetFromSelection() { if (StelApp::getInstance().getStelObjectMgr().getWasSelected()) { QList<StelObjectP> selectedObjects = StelApp::getInstance().getStelObjectMgr().getSelectedObject(); QListIterator<StelObjectP> objectIterator(selectedObjects); StelCore* core = StelApp::getInstance().getCore(); while (objectIterator.hasNext()) { StelObjectP stelObject = objectIterator.next(); QString type = stelObject->getType(); QString englishName = stelObject->getEnglishName(); if (englishName == "") { englishName = "No Name"; } float magnatude = stelObject->getVMagnitude(core); double angularSize = stelObject->getAngularSize(core); Vec3d pos; double ra, dec; // ra/dec in J2000 pos = stelObject->getJ2000EquatorialPos(core); StelUtils::rectToSphe(&ra, &dec, pos); QSqlField field1("name", QVariant::String); QSqlField field2("right_ascension", QVariant::Double); QSqlField field3("declination", QVariant::Double); QSqlField field4("target_type_id", QVariant::Int); QSqlField field5("magnitude", QVariant::Double); QSqlField field6("size", QVariant::Double); field1.setValue(QVariant(englishName)); field2.setValue(QVariant(ra)); field3.setValue(QVariant(dec)); field4.setValue(QVariant(1)); field5.setValue(QVariant(magnatude)); field6.setValue(QVariant(angularSize)); QSqlRecord newRecord = QSqlRecord(); newRecord.append(field1); newRecord.append(field2); newRecord.append(field3); newRecord.append(field4); newRecord.append(field5); newRecord.append(field6); if (tableModel->insertRecord(-1, newRecord)) { ui->targetsListView->setCurrentIndex(tableModel->index(tableModel->rowCount() - 1, 1)); } else { qWarning() << "LogBook: could not insert new target. The error is: " << tableModel->lastError(); } } } else { qDebug() << "====> Nothing selected."; } }
void TestQgsFields::allAttrsList() { QgsFields fields; QgsAttributeList attrList = fields.allAttributesList(); QVERIFY( attrList.isEmpty() ); QgsField field( QString( "testfield" ) ); fields.append( field ); QgsField field2( QString( "testfield2" ) ); fields.append( field2 ); QgsField field3( QString( "testfield3" ) ); fields.append( field3 ); attrList = fields.allAttributesList(); QCOMPARE( attrList.at( 0 ), 0 ); QCOMPARE( attrList.at( 1 ), 1 ); QCOMPARE( attrList.at( 2 ), 2 ); }
void TestQgsFields::toList() { QgsFields fields; QList<QgsField> list = fields.toList(); QVERIFY( list.isEmpty() ); QgsField field( QString( "testfield" ) ); fields.append( field ); QgsField field2( QString( "testfield2" ) ); fields.append( field2 ); QgsField field3( QString( "testfield3" ) ); fields.append( field3 ); list = fields.toList(); QCOMPARE( list.at( 0 ), field ); QCOMPARE( list.at( 1 ), field2 ); QCOMPARE( list.at( 2 ), field3 ); }
void tst_QSqlField::operator_Equal() { QSqlField field1( "test", QVariant::String ); QSqlField field2( "test2", QVariant::String ); QSqlField field3( "test", QVariant::Int ); QVERIFY( !(field1 == field2) ); QVERIFY( !(field1 == field3) ); field2.setName( "test" ); QVERIFY( field1 == field2 ); QVERIFY( field1 == field2 ); field1.setValue( "Harry" ); QVERIFY( !(field1 == field2) ); field2.setValue( "Harry" ); QVERIFY( field1 == field2 ); field1.setReadOnly( true ); QVERIFY( !(field1 == field2) ); field2.setReadOnly( true ); QVERIFY( field1 == field2 ); }
void BarlowsDataMapper::insertNewBarlow() { QSqlField field1("model", QVariant::String); QSqlField field2("vendor", QVariant::String); QSqlField field3("factor", QVariant::Double); field1.setValue(QVariant("Model")); field2.setValue(QVariant("Vendor")); field3.setValue(QVariant(1.0)); QSqlRecord newRecord = QSqlRecord(); newRecord.append(field1); newRecord.append(field2); newRecord.append(field3); if (tableModel->insertRecord(-1, newRecord)) { widget->barlowsListView->setCurrentIndex(tableModel->index(tableModel->rowCount() - 1, 1)); } else { qWarning() << "LogBook: could not insert new barlow. The error is: " << tableModel->lastError(); } }
void TestQgsFields::extend() { QgsFields destination; QgsField field( "testfield" ); destination.append( field ); QgsField field2( "testfield2" ); destination.append( field2 ); QgsFields source; QgsField field3( "testfield3" ); source.append( field3, QgsFields::OriginJoin, 5 ); QgsField field4( "testfield4" ); source.append( field4 ); QCOMPARE( destination.count(), 2 ); destination.extend( source ); QCOMPARE( destination.count(), 4 ); QCOMPARE( destination.at( 2 ), field3 ); QCOMPARE( destination.at( 3 ), field4 ); }
void TestQgsFields::fieldOriginIndex() { QgsFields fields; QgsField field( QString( "testfield" ) ); fields.append( field , QgsFields::OriginProvider, 5 ); QCOMPARE( fields.fieldOriginIndex( 0 ), 5 ); QgsField field2( QString( "testfield2" ) ); fields.append( field2, QgsFields::OriginProvider, 10 ); QCOMPARE( fields.fieldOriginIndex( 1 ), 10 ); QgsField field3( QString( "testfield3" ) ); //field origin index not specified with OriginProvider, should be automatic fields.append( field3, QgsFields::OriginProvider ); QCOMPARE( fields.fieldOriginIndex( 2 ), 2 ); QgsField field4( QString( "testfield4" ) ); //field origin index not specified with other than OriginProvider, should remain -1 fields.append( field4, QgsFields::OriginEdit ); QCOMPARE( fields.fieldOriginIndex( 3 ), -1 ); }
void TestQgsFields::indexFromName() { QgsFields fields; QgsField field( QString( "testfield" ) ); fields.append( field ); QgsField field2( QString( "testfield2" ) ); fields.append( field2 ); QgsField field3( QString( "testfield3" ) ); fields.append( field3 ); QCOMPARE( fields.indexFromName( QString( "bad" ) ), -1 ); QCOMPARE( fields.fieldNameIndex( QString( "bad" ) ), -1 ); QCOMPARE( fields.indexFromName( QString( "testfield" ) ), 0 ); QCOMPARE( fields.fieldNameIndex( QString( "testfield" ) ), 0 ); QCOMPARE( fields.indexFromName( QString( "testfield3" ) ), 2 ); QCOMPARE( fields.fieldNameIndex( QString( "testfield3" ) ), 2 ); //indexFromName is case sensitive, fieldNameIndex isn't QCOMPARE( fields.indexFromName( QString( "teStFiEld2" ) ), -1 ); QCOMPARE( fields.fieldNameIndex( QString( "teStFiEld2" ) ), 1 ); }
void TargetsDialog::insertNewTarget() { QSqlField field1("name", QVariant::String); QSqlField field3("right_ascension", QVariant::Double); QSqlField field4("declination", QVariant::Double); QSqlField field6("target_type_id", QVariant::Int); field1.setValue(QVariant("name")); field3.setValue(QVariant(0.0)); field4.setValue(QVariant(0.0)); field6.setValue(QVariant(1)); QSqlRecord newRecord = QSqlRecord(); newRecord.append(field1); newRecord.append(field3); newRecord.append(field4); newRecord.append(field6); if (tableModel->insertRecord(-1, newRecord)) { ui->targetsListView->setCurrentIndex(tableModel->index(tableModel->rowCount() - 1, 1)); } else { qWarning() << "LogBook: could not insert new target. The error is: " << tableModel->lastError(); } }