rewrite for eet 2.0 api version v4
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
#include <QTest>
|
||||
#include <QXmlStreamReader>
|
||||
|
||||
#include "../libEet/eetv4xml.h"
|
||||
|
||||
class EetV4XmlTest : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
private:
|
||||
static EetV4SaleRequest validRequest()
|
||||
{
|
||||
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);
|
||||
return request;
|
||||
}
|
||||
|
||||
private slots:
|
||||
void serializesRequiredAttributes()
|
||||
{
|
||||
QString error;
|
||||
const QByteArray xml = EetV4Xml::serializeSale(validRequest(), &error);
|
||||
|
||||
QVERIFY2(!xml.isEmpty(), qPrintable(error));
|
||||
QVERIFY(xml.startsWith("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"));
|
||||
QVERIFY(xml.contains("xmlns=\"http://fs.gov.cz/eet/schema/v4\""));
|
||||
QVERIFY(xml.contains("uuid_zpravy=\"550e8400-e29b-41d4-a716-446655440000\""));
|
||||
QVERIFY(xml.contains("eic_popl=\"CZ00000019\""));
|
||||
QVERIFY(xml.contains("id_jednotky=\"11\""));
|
||||
QVERIFY(xml.contains("celk_trzba=\"123.45\""));
|
||||
QVERIFY(!xml.contains("fik"));
|
||||
QVERIFY(!xml.contains("pkp"));
|
||||
QVERIFY(!xml.contains("bkp"));
|
||||
}
|
||||
|
||||
void serializesOptionalAttributes()
|
||||
{
|
||||
EetV4SaleRequest request = validRequest();
|
||||
request.verificationMode = true;
|
||||
request.authorizingTaxpayerEic = QStringLiteral("CZ00000020");
|
||||
request.multipleTaxpayerAuthorization = true;
|
||||
request.hasIntendedSettlement = true;
|
||||
request.hasSettlement = true;
|
||||
EetV4Amount::fromString(QStringLiteral("100.00"), &request.intendedSettlement);
|
||||
EetV4Amount::fromString(QStringLiteral("25.00"), &request.settlement);
|
||||
|
||||
const QByteArray xml = EetV4Xml::serializeSale(request);
|
||||
|
||||
QVERIFY(xml.contains("overeni=\"true\""));
|
||||
QVERIFY(xml.contains("eic_poverujiciho=\"CZ00000020\""));
|
||||
QVERIFY(xml.contains("povereni_vice_popl=\"true\""));
|
||||
QVERIFY(xml.contains("urceno_cerp_zuct=\"100.00\""));
|
||||
QVERIFY(xml.contains("cerp_zuct=\"25.00\""));
|
||||
}
|
||||
|
||||
void rejectsInvalidRequest()
|
||||
{
|
||||
EetV4SaleRequest request = validRequest();
|
||||
request.taxpayerEic = QStringLiteral("invalid");
|
||||
|
||||
QString error;
|
||||
QVERIFY(EetV4Xml::serializeSale(request, &error).isEmpty());
|
||||
QVERIFY(!error.isEmpty());
|
||||
}
|
||||
|
||||
void producesParseableXml()
|
||||
{
|
||||
QXmlStreamReader reader(EetV4Xml::serializeSale(validRequest()));
|
||||
while (!reader.atEnd())
|
||||
{
|
||||
reader.readNext();
|
||||
}
|
||||
QVERIFY2(!reader.hasError(), qPrintable(reader.errorString()));
|
||||
}
|
||||
};
|
||||
|
||||
QTEST_MAIN(EetV4XmlTest)
|
||||
#include "eetv4xml_test.moc"
|
||||
Reference in New Issue
Block a user