1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- //
- // Created by robin on 1/14/18.
- //
-
- #include <gtest/gtest.h>
- #include <QByteArray>
- #include <QString>
- #include <QtNetwork/QHostAddress>
- #include <dns-base/RecordData/QDnsRecordDataAAAA.h>
-
- struct DnsRDataAAAATestParams
- {
- bool isValid;
- const char* hexData;
- quint32 pos;
-
- Q_IPV6ADDR ip;
- };
-
- class DnsRDataAAAATest : public ::testing::TestWithParam<DnsRDataAAAATestParams>
- {
- };
-
- TEST_P(DnsRDataAAAATest, parseAndGetters)
- {
- auto params = GetParam();
- auto data = QByteArray::fromHex(params.hexData);
- auto rdata = dynamic_cast<QDns::Base::QDnsRecordDataAAAA*>(QDns::Base::QDnsRecordDataAAAA(data, params.pos).clone());
- ASSERT_NE(rdata, nullptr);
- ASSERT_EQ(rdata->isValid(), params.isValid);
-
- if (rdata->isValid())
- {
- for (int i = 0; i < 16; ++i)
- {
- ASSERT_EQ(rdata->getIp().toIPv6Address()[i], params.ip[i]);
- }
-
- ASSERT_EQ(rdata->serialize().toHex(), QString(params.hexData).remove(" "));
- }
- delete rdata;
- }
-
- INSTANTIATE_TEST_CASE_P(DnsRDataAAAATestInst,
- DnsRDataAAAATest,
- ::testing::Values(
- DnsRDataAAAATestParams {false, "", 0},
- DnsRDataAAAATestParams {false, "00", 0},
- DnsRDataAAAATestParams {false, "acd913e3", 0, QHostAddress("172.217.19.227").toIPv6Address()},
- DnsRDataAAAATestParams {false, "d83ad3a3", 0, QHostAddress("216.58.211.163").toIPv6Address()},
- DnsRDataAAAATestParams {true, "2a001450400708120000000000002003", 0, QHostAddress("2a00:1450:4007:812::2003").toIPv6Address()},
- DnsRDataAAAATestParams {true, "2a00145040070812000000000000200e", 0, QHostAddress("2a00:1450:4007:812::200e").toIPv6Address()}
- ));
|