| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- //
- // Created by robin on 1/14/18.
- //
-
- #include <gtest/gtest.h>
- #include <QByteArray>
- #include <QString>
- #include <QtNetwork/QHostAddress>
- #include "dns-base/RecordData/QDnsRecordDataA.h"
-
- struct DnsRDataATestParams
- {
- bool isValid;
- const char* hexData;
- quint32 pos;
-
- quint32 ip;
- };
-
- class DnsRDataATest : public ::testing::TestWithParam<DnsRDataATestParams>
- {
- };
-
- TEST_P(DnsRDataATest, parseAndGetters)
- {
- auto params = GetParam();
- auto data = QByteArray::fromHex(params.hexData);
- auto rdata = dynamic_cast<QDns::Base::QDnsRecordDataA*>(QDns::Base::QDnsRecordDataA(data, params.pos).clone());
- ASSERT_NE(rdata, nullptr);
- ASSERT_EQ(rdata->isValid(), params.isValid);
-
- if (rdata->isValid())
- {
- ASSERT_EQ(rdata->getIp().toIPv4Address(), params.ip);
-
- ASSERT_EQ(rdata->serialize().toHex(), QString(params.hexData).remove(" "));
- }
- delete rdata;
- }
-
- INSTANTIATE_TEST_CASE_P(DnsRDataATestInst,
- DnsRDataATest,
- ::testing::Values(
- DnsRDataATestParams {false, "", 0},
- DnsRDataATestParams {false, "00", 0},
- DnsRDataATestParams {true, "acd913e3", 0, QHostAddress("172.217.19.227").toIPv4Address()},
- DnsRDataATestParams {true, "d83ad3a3", 0, QHostAddress("216.58.211.163").toIPv4Address()}
- ));
|