Files
EetCpp/tests/eetv4soap_test.cpp
T

68 lines
2.4 KiB
C++

#include <QTest>
#include <QXmlStreamReader>
#include "../libEet/eetv4soap.h"
class EetV4SoapTest : public QObject
{
Q_OBJECT
private slots:
void serializesSoapEnvelope()
{
EetV4SaleRequest request;
request.messageUuid = QUuid(QStringLiteral("550e8400-e29b-41d4-a716-446655440000"));
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");
EetV4Amount::fromString(QStringLiteral("123.45"), &request.totalSale);
QString error;
const QByteArray soap = EetV4Soap::serializeUnsigned(request, QByteArrayLiteral("body-1"), &error);
QVERIFY2(!soap.isEmpty(), qPrintable(error));
QVERIFY(soap.startsWith("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"));
QVERIFY(soap.contains("<soap:Envelope"));
QVERIFY(soap.contains("<soap:Header/>"));
QVERIFY(soap.contains("<soap:Body wsu:Id=\"body-1\">"));
QVERIFY(soap.contains("<Trzba xmlns=\"http://fs.gov.cz/eet/schema/v4\">"));
QVERIFY(soap.endsWith("</soap:Body></soap:Envelope>"));
}
void rejectsInvalidBodyId()
{
EetV4SaleRequest request;
QString error;
QVERIFY(EetV4Soap::serializeUnsigned(request, QByteArrayLiteral("invalid id"), &error).isEmpty());
QVERIFY(!error.isEmpty());
}
void producesParseableSoap()
{
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");
EetV4Amount::fromString(QStringLiteral("1.00"), &request.totalSale);
QXmlStreamReader reader(EetV4Soap::serializeUnsigned(request));
while (!reader.atEnd())
{
reader.readNext();
}
QVERIFY2(!reader.hasError(), qPrintable(reader.errorString()));
}
};
QTEST_MAIN(EetV4SoapTest)
#include "eetv4soap_test.moc"