Skip to content

Commit

Permalink
Update tests/src/app/maptooladdfeaturepoint/testqgsmaptooladdfeaturep…
Browse files Browse the repository at this point in the history
…oint.cpp

Co-authored-by: Loïc Bartoletti <lbartoletti@users.noreply.github.com>
  • Loading branch information
2 people authored and nyalldawson committed Sep 27, 2021
1 parent bee364e commit c32189c
Showing 1 changed file with 26 additions and 19 deletions.
Expand Up @@ -145,28 +145,35 @@ void TestQgsMapToolAddFeaturePoint::testPoint()
void TestQgsMapToolAddFeaturePoint::testMultiPoint()
{

QgsAdvancedDigitizingDockWidget dw{mCanvas};

QgsVectorLayer layerMultiPoint { QStringLiteral( "MultiPoint?crs=EPSG:27700" ), QStringLiteral( "layer multi point" ), QStringLiteral( "memory" ) };
layerMultiPoint.startEditing();
mCanvas->setCurrentLayer( &layerMultiPoint );

QgsMapToolDigitizeFeature tool{mCanvas, &dw};
QgsFeature feature;

connect( &tool, &QgsMapToolDigitizeFeature::digitizingCompleted, this, [ & ]( const QgsFeature & f )
{
feature = f;
} );

QSignalSpy spy( &tool, SIGNAL( digitizingCompleted( const QgsFeature & ) ) );
QMouseEvent mouseEvt{QMouseEvent::Type::MouseButtonRelease, QPointF{128, 128}, Qt::MouseButton::LeftButton, Qt::NoButton, Qt::NoModifier};
QgsMapMouseEvent evt( mCanvas, &mouseEvt );

tool.cadCanvasReleaseEvent( &evt );

QCOMPARE( spy.count(), 1 );
QCOMPARE( feature.geometry().asWkt( 1 ).toUpper(), QString( "MULTIPOINT ((2 6))" ) );

TestQgsMapToolAdvancedDigitizingUtils utils( mCaptureTool );

QSet<QgsFeatureId> oldFids = utils.existingFeatureIds();

utils.mouseClick( 4, 0, Qt::LeftButton, Qt::KeyboardModifiers(), true );
QgsFeatureId fid1 = utils.newFeatureId( oldFids );

QCOMPARE( layerMultiPoint.featureCount(), ( long )1 );

QString wkt = "MultiPoint ((4 0))";
QCOMPARE( layerMultiPoint.getFeature( fid1 ).geometry().asWkt(), wkt );


oldFids = utils.existingFeatureIds();
utils.mouseClick( 6, 6, Qt::LeftButton, Qt::KeyboardModifiers(), true );

QCOMPARE( layerMultiPoint.featureCount(), ( long )2 );

QgsFeatureId fid2 = utils.newFeatureId( oldFids );

QString wkt2 = "MultiPoint ((6 6))";
QCOMPARE( layerMultiPoint.getFeature( fid2 ).geometry().asWkt(), wkt2 );

layerMultiPoint.undoStack()->undo(); // first point
layerMultiPoint.undoStack()->undo(); // second point

}

Expand Down

0 comments on commit c32189c

Please sign in to comment.