/* * Copyright (c) Simon Brunel, https://github.com/simonbrunel * * This source code is licensed under the MIT license found in * the LICENSE file in the root directory of this source tree. */ #include "../shared/utils.h" #include #include using namespace QtPromise; class tst_deprecations_qpromise_all : public QObject { Q_OBJECT private Q_SLOTS: void emptySequence(); void emptySequence_void(); void allPromisesSucceed(); void allPromisesSucceed_void(); void atLeastOnePromiseReject(); void atLeastOnePromiseReject_void(); void preserveOrder(); void sequenceTypes(); void sequenceTypes_void(); }; QTEST_MAIN(tst_deprecations_qpromise_all) #include "tst_qpromise_all.moc" namespace { template struct SequenceTester { Q_STATIC_ASSERT((std::is_same>::value)); static void exec() { Sequence promises{ QtPromise::resolve(42), QtPromise::resolve(43), QtPromise::resolve(44) }; promises.push_back(QtPromise::resolve(45)); promises.insert(++promises.begin(), QtPromise::resolve(46)); promises.pop_back(); auto p = QPromise::all(promises); Q_STATIC_ASSERT((std::is_same>>::value)); QCOMPARE(p.isPending(), true); QCOMPARE(waitForValue(p, QVector{}), (QVector{42, 46, 43, 44})); } }; template