/*! * \brief Unit tests for \ref ProviderConfiguration * * \copyright Copyright (c) 2014-2018 Governikus GmbH & Co. KG, Germany */ #include "ProviderConfiguration.h" #include "ResourceLoader.h" #include using namespace governikus; class test_ProviderConfiguration : public QObject { Q_OBJECT private Q_SLOTS: void initTestCase() { ResourceLoader::getInstance().init(); } void testProviderUrls() { const ProviderConfigurationInfo provider1( /* short name */ QString(), /* long name */ QString(), /* short description */ QString(), /* long description */ QString(), /* address */ QStringLiteral("ftp://homepage.com/form"), /* homepage */ QStringLiteral("ftp://www.homepage.de/bla/bla1") ); QCOMPARE(provider1.getAddressDomain(), QStringLiteral("homepage.com")); QCOMPARE(provider1.getHomepageBase(), QStringLiteral("www.homepage.de")); const ProviderConfigurationInfo provider2( /* short name */ QString(), /* long name */ QString(), /* short description */ QString(), /* long description */ QString(), /* address */ QStringLiteral("https://homepage.com/form"), /* homepage */ QStringLiteral("https://www.homepage.de/bla/bla1") ); QCOMPARE(provider2.getAddressDomain(), QStringLiteral("homepage.com")); QCOMPARE(provider2.getHomepageBase(), QStringLiteral("www.homepage.de")); const ProviderConfigurationInfo provider3( /* short name */ QString(), /* long name */ QString(), /* short description */ QString(), /* long description */ QString(), /* address */ QStringLiteral("homepage.com/form"), /* homepage */ QStringLiteral("www.homepage.de/bla/bla1") ); QCOMPARE(provider3.getAddressDomain(), QStringLiteral("homepage.com")); QCOMPARE(provider3.getHomepageBase(), QStringLiteral("www.homepage.de")); const ProviderConfigurationInfo provider4; QCOMPARE(provider4.getAddressDomain(), QString()); QCOMPARE(provider4.getHomepageBase(), QString()); } void testProviderFields() { // Add image and icon. const ProviderConfigurationInfo provider( /* short name */ QStringLiteral("Provider 1"), /* long name */ QStringLiteral("Provider 1 - long name"), /* short description */ QStringLiteral("Provider description short"), /* long description */ QStringLiteral("Provider description long"), /* address */ QStringLiteral("https://www.homepage.com/form/"), /* homepage */ QStringLiteral("https://www.homepage.com/"), /* category */ QStringLiteral("CategoryA"), /* phone */ QStringLiteral("0421 123456"), /* email */ QStringLiteral("abc@def.de"), /* postal address */ QStringLiteral("Am Fallturm 9\n28359 Bremen"), /* icon */ QString(), /* image */ QString(), /* tcTokenUrl */ QStringLiteral("https://npa.allianz.de/azservice/NpaEIDService/nparef/-wnf"), /* clientUrl */ QStringLiteral("https://www.bva.bund.de/bafoeg-online/Bafoeg/flow/anmeld"), /* subjectUrls */ QStringList({QStringLiteral("https://npa.allianz.de/bla1"), QStringLiteral("https://npa.allianz.de/bla1")}) ); QCOMPARE(provider.getShortName().toString(), QStringLiteral("Provider 1")); QCOMPARE(provider.getLongName().toString(), QStringLiteral("Provider 1 - long name")); QCOMPARE(provider.getShortDescription().toString(), QStringLiteral("Provider description short")); QCOMPARE(provider.getLongDescription().toString(), QStringLiteral("Provider description long")); QCOMPARE(provider.getAddress(), QStringLiteral("https://www.homepage.com/form/")); QCOMPARE(provider.getHomepage(), QStringLiteral("https://www.homepage.com/")); QCOMPARE(provider.getCategory(), QStringLiteral("CategoryA")); QCOMPARE(provider.getPhone(), QStringLiteral("0421 123456")); QCOMPARE(provider.getEMail(), QStringLiteral("abc@def.de")); QCOMPARE(provider.getPostalAddress(), QStringLiteral("Am Fallturm 9\n28359 Bremen")); QVERIFY(provider.getIcon()->lookupPath().endsWith("/CategoryA_button.svg")); QVERIFY(provider.getImage()->lookupPath().endsWith("/CategoryA_bg.svg")); QCOMPARE(provider.getTcTokenUrl(), QUrl(QStringLiteral("https://npa.allianz.de/azservice/NpaEIDService/nparef/-wnf"))); QCOMPARE(provider.getClientUrl(), QUrl(QStringLiteral("https://www.bva.bund.de/bafoeg-online/Bafoeg/flow/anmeld"))); QCOMPARE(provider.getSubjectUrls(), QStringList({QStringLiteral("https://npa.allianz.de/bla1"), QStringLiteral("https://npa.allianz.de/bla1")})); } void checkPhone() { const auto& providers = Env::getSingleton()->getProviderConfigurationInfos(); for (const auto& provider : providers) { QVERIFY(provider.getPhone().isEmpty() || provider.getPhone().startsWith("+49 ")); } } void checkCallCost_data() { QTest::addColumn("phone"); QTest::addColumn("notNull"); QTest::addColumn("freeSeconds"); QTest::addColumn("landlineCentsPerMinute"); QTest::addColumn("landlineCentsPerCall"); QTest::addColumn("mobileCentsPerMinute"); QTest::addColumn("mobileCentsPerCall"); QTest::newRow("delimeter") << "+49 1-8/05-123456789" << true << 0 << 14.0 << 0.0 << 42.0 << 0.0; QTest::newRow("notExisting") << "+49 123456" << false << 0 << 0.0 << 0.0 << 0.0 << 0.0; QTest::newRow("01") << "+49 1371" << true << 0 << 0.0 << 14.0 << 0.0 << 0.0; QTest::newRow("02") << "+49 1372" << true << 0 << 14.0 << 0.0 << 0.0 << 0.0; QTest::newRow("03") << "+49 1376" << true << 0 << 0.0 << 25.0 << 0.0 << 0.0; QTest::newRow("04") << "+49 1377" << true << 0 << 0.0 << 100.0 << 0.0 << 0.0; QTest::newRow("05") << "+49 1378" << true << 0 << 0.0 << 50.0 << 0.0 << 0.0; QTest::newRow("06") << "+49 1801" << true << 0 << 3.9 << 0.0 << 42.0 << 0.0; QTest::newRow("07") << "+49 1802" << true << 0 << 0.0 << 6.0 << 42.0 << 0.0; QTest::newRow("08") << "+49 1803" << true << 0 << 9.0 << 0.0 << 42.0 << 0.0; QTest::newRow("09") << "+49 1804" << true << 0 << 0.0 << 20.0 << 42.0 << 0.0; QTest::newRow("10") << "+49 1805" << true << 0 << 14.0 << 0.0 << 42.0 << 0.0; QTest::newRow("11") << "+49 1806" << true << 0 << 0.0 << 20.0 << 0.0 << 60.0; QTest::newRow("12") << "+49 1807" << true << 30 << 14.0 << 0.0 << 42.0 << 0.0; } void checkCallCost() { QFETCH(QString, phone); QFETCH(bool, notNull); QFETCH(int, freeSeconds); QFETCH(double, landlineCentsPerMinute); QFETCH(double, landlineCentsPerCall); QFETCH(double, mobileCentsPerMinute); QFETCH(double, mobileCentsPerCall); const ProviderConfigurationInfo provider(QString(), QString(), QString(), QString(), QString(), QString(), QString(""), phone); const CallCost& callCost = Env::getSingleton()->getCallCost(provider); QVERIFY(notNull || callCost.isNull()); QCOMPARE(callCost.getFreeSeconds(), freeSeconds); QCOMPARE(callCost.getLandlineCentsPerMinute(), landlineCentsPerMinute); QCOMPARE(callCost.getLandlineCentsPerCall(), landlineCentsPerCall); QCOMPARE(callCost.getMobileCentsPerMinute(), mobileCentsPerMinute); QCOMPARE(callCost.getMobileCentsPerCall(), mobileCentsPerCall); } }; QTEST_GUILESS_MAIN(test_ProviderConfiguration) #include "test_ProviderConfiguration.moc"