#ifndef ARES_TEST_AI_H #define ARES_TEST_AI_H #include #include "gtest/gtest.h" #include "gmock/gmock.h" #include "ares-test.h" namespace ares { namespace test { class MockChannelTestAI : public MockChannelOptsTest, public ::testing::WithParamInterface< std::pair > { public: MockChannelTestAI() : MockChannelOptsTest(1, GetParam().first, GetParam().second, nullptr, 0) {} }; class MockUDPChannelTestAI : public MockChannelOptsTest, public ::testing::WithParamInterface { public: MockUDPChannelTestAI() : MockChannelOptsTest(1, GetParam(), false, nullptr, 0) {} }; class MockTCPChannelTestAI : public MockChannelOptsTest, public ::testing::WithParamInterface { public: MockTCPChannelTestAI() : MockChannelOptsTest(1, GetParam(), true, nullptr, 0) {} }; // Test fixture that uses a default channel. class DefaultChannelTestAI : public LibraryTest { public: DefaultChannelTestAI() : channel_(nullptr) { EXPECT_EQ(ARES_SUCCESS, ares_init(&channel_)); EXPECT_NE(nullptr, channel_); } ~DefaultChannelTestAI() { ares_destroy(channel_); channel_ = nullptr; } // Process all pending work on ares-owned file descriptors. void Process(); protected: ares_channel channel_; }; } } #endif