65 lines
2.0 KiB
C++
65 lines
2.0 KiB
C++
#include <QTest>
|
|
|
|
#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"
|