#include #include "../libEet/eetv4request.h" class EetV4RequestTest : public QObject { Q_OBJECT private slots: void parsesFixedPointAmounts() { EetV4Amount amount; QString error; QVERIFY(EetV4Amount::fromString(QStringLiteral("123.45"), &amount, &error)); QCOMPARE(amount.cents(), qint64(12345)); QCOMPARE(amount.toString(), QStringLiteral("123.45")); QVERIFY(EetV4Amount::fromString(QStringLiteral("-0.01"), &amount, &error)); QCOMPARE(amount.cents(), qint64(-1)); QCOMPARE(amount.toString(), QStringLiteral("-0.01")); } void rejectsInvalidFixedPointAmounts() { EetV4Amount amount; QString error; QVERIFY(!EetV4Amount::fromString(QStringLiteral("1"), &amount, &error)); QVERIFY(!EetV4Amount::fromString(QStringLiteral("100000000.00"), &amount, &error)); QVERIFY(!EetV4Amount::fromString(QStringLiteral("-0.00"), &amount, &error)); } void validatesSaleRequest() { EetV4SaleRequest request; request.sentAt = QDateTime(QDate(2027, 1, 1), QTime(12, 0), QTimeZone::fromSecondsAheadOfUtc(3600)); request.saleAt = request.sentAt; request.taxpayerEic = QStringLiteral("CZ00000019"); request.unitId = 11; request.cashRegisterId = QStringLiteral("1"); request.receiptNumber = QStringLiteral("123"); QStringList errors; QVERIFY(request.validate(&errors)); QVERIFY(errors.isEmpty()); request.taxpayerEic = QStringLiteral("CZ12"); QVERIFY(!request.validate(&errors)); QVERIFY(!errors.isEmpty()); } void formatsOffsetDateTime() { const QDateTime dateTime(QDate(2027, 1, 1), QTime(12, 34, 56), QTimeZone::fromSecondsAheadOfUtc(-18000)); QCOMPARE(EetV4SaleRequest::formatDateTime(dateTime), QStringLiteral("2027-01-01T12:34:56-05:00")); } }; QTEST_MAIN(EetV4RequestTest) #include "eetv4request_test.moc"