Files
QtModelsToolkit/tests/tst_ModelCount.cpp

82 lines
2.0 KiB
C++
Raw Permalink Normal View History

2025-07-07 13:54:55 +02:00
#include <QTest>
#include <QSignalSpy>
2025-06-10 13:39:28 +02:00
#include <qtmodelstoolkit/modelcount.h>
#include <qtmodelstoolkit/testing/testmodel.h>
using namespace qtmt;
class TestModelCount : public QObject
{
Q_OBJECT
private slots:
void modelCountTest()
{
TestModel model({
{ "name", { "a", "b", "c", "d" }}
});
ModelCount modelCount(&model);
QCOMPARE(modelCount.count(), 4);
QCOMPARE(modelCount.empty(), false);
QSignalSpy countSpy(&modelCount, &ModelCount::countChanged);
QSignalSpy emptySpy(&modelCount, &ModelCount::emptyChanged);
model.insert(1, { "e" });
QCOMPARE(countSpy.count(), 1);
QCOMPARE(emptySpy.count(), 0);
QCOMPARE(modelCount.count(), 5);
QCOMPARE(modelCount.empty(), false);
model.remove(0);
QCOMPARE(countSpy.count(), 2);
QCOMPARE(emptySpy.count(), 0);
QCOMPARE(modelCount.count(), 4);
QCOMPARE(modelCount.empty(), false);
model.update(0, 0, "aa");
QCOMPARE(countSpy.count(), 2);
QCOMPARE(emptySpy.count(), 0);
QCOMPARE(modelCount.count(), 4);
QCOMPARE(modelCount.empty(), false);
model.invert();
QCOMPARE(countSpy.count(), 2);
QCOMPARE(emptySpy.count(), 0);
QCOMPARE(modelCount.count(), 4);
QCOMPARE(modelCount.empty(), false);
model.removeEverySecond();
QCOMPARE(countSpy.count(), 3);
QCOMPARE(emptySpy.count(), 0);
QCOMPARE(modelCount.count(), 2);
QCOMPARE(modelCount.empty(), false);
model.reset();
QCOMPARE(countSpy.count(), 3);
QCOMPARE(emptySpy.count(), 0);
QCOMPARE(modelCount.count(), 2);
QCOMPARE(modelCount.empty(), false);
model.resetAndClear();
QCOMPARE(countSpy.count(), 4);
QCOMPARE(emptySpy.count(), 1);
QCOMPARE(modelCount.count(), 0);
QCOMPARE(modelCount.empty(), true);
}
};
QTEST_MAIN(TestModelCount)
#include "tst_ModelCount.moc"