Ejemplo n.º 1
0
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 );
}
Ejemplo n.º 2
0
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);
}
Ejemplo n.º 3
0
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 );
}
Ejemplo n.º 4
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 );
}
Ejemplo n.º 5
0
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(?));");
}
Ejemplo n.º 6
0
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 );
}
Ejemplo n.º 7
0
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 );
}
Ejemplo n.º 8
0
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.";
	}
}	
Ejemplo n.º 9
0
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 );
}
Ejemplo n.º 10
0
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 );
}
Ejemplo n.º 11
0
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();
	}
}
Ejemplo n.º 13
0
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 );
}
Ejemplo n.º 14
0
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 );
}
Ejemplo n.º 15
0
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 );
}
Ejemplo n.º 16
0
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();
	}
}