blob: 50f2dd8c46b6665b96a186677b424c88676a89ec (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
// Copyright (C) 2021-2022 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
#include <config.h>
#include <config/cmd_response_creator_factory.h>
#include <boost/pointer_cast.hpp>
#include <gtest/gtest.h>
using namespace isc::config;
namespace {
// This test verifies the default factory constructor and
// the create() method.
TEST(CmdResponseCreatorFactory, createDefault) {
// Create the factory.
CmdResponseCreatorFactory factory;
// Create a response creator.
CmdResponseCreatorPtr response1;
ASSERT_NO_THROW(response1 = boost::dynamic_pointer_cast<
CmdResponseCreator>(factory.create()));
ASSERT_TRUE(response1);
// Agent response emulation should be enabled by default.
EXPECT_TRUE(response1->emulateAgentResponse());
// Authorization configuration should be an empty pointer.
EXPECT_FALSE(CmdResponseCreator::http_auth_config_);
// By default all commands are accepted.
EXPECT_TRUE(CmdResponseCreator::command_accept_list_.empty());
// Invoke create() again.
CmdResponseCreatorPtr response2;
ASSERT_NO_THROW(response2 = boost::dynamic_pointer_cast<
CmdResponseCreator>(factory.create()));
ASSERT_TRUE(response2);
// And it must always return the same object.
EXPECT_TRUE(response1 == response2);
}
// This test verifies that agent response emulation can
// be turned off.
TEST(CmdResponseCreatorFactory, createAgentEmulationDisabled) {
// Instantiate the factory with agent emulation disabled.
CmdResponseCreatorFactory factory(false);
// Create the response creator.
CmdResponseCreatorPtr response;
ASSERT_NO_THROW(response = boost::dynamic_pointer_cast<
CmdResponseCreator>(factory.create()));
ASSERT_TRUE(response);
// Agent response emulation should be disabled.
EXPECT_FALSE(response->emulateAgentResponse());
// Authorization configuration should be an empty pointer.
EXPECT_FALSE(CmdResponseCreator::http_auth_config_);
// By default all commands are accepted.
EXPECT_TRUE(CmdResponseCreator::command_accept_list_.empty());
}
} // end of anonymous namespace
|