summaryrefslogtreecommitdiff
path: root/src/mongo/idl/server_parameter_test_util.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/idl/server_parameter_test_util.h')
-rw-r--r--src/mongo/idl/server_parameter_test_util.h43
1 files changed, 11 insertions, 32 deletions
diff --git a/src/mongo/idl/server_parameter_test_util.h b/src/mongo/idl/server_parameter_test_util.h
index f7e2ae31834..566489dd1a9 100644
--- a/src/mongo/idl/server_parameter_test_util.h
+++ b/src/mongo/idl/server_parameter_test_util.h
@@ -36,59 +36,38 @@
namespace mongo {
/**
- * Test-only class that sets a server parameter to the specified value and allows
- * resetting after the test completes.
+ * Test-only RAII type that allows to set a server parameter value during the execution of a
+ * unit test, or part of a unit test, and resets it to the original value on destruction.
*/
-class ServerParameterControllerForTest {
+class RAIIServerParameterControllerForTest {
public:
/**
* Constructor setting the server parameter to the specified value.
*/
template <typename T>
- ServerParameterControllerForTest(const std::string& name, T value)
+ RAIIServerParameterControllerForTest(const std::string& name, T value)
: _serverParam(ServerParameterSet::getNodeParameterSet()->get(name)) {
- // Save the old value.
+ // Save the old value
BSONObjBuilder bob;
_serverParam->appendSupportingRoundtrip(nullptr, bob, name);
_oldValue = bob.obj();
- // Set server param to the new value.
+ // Set to the new value
uassertStatusOK(_serverParam->set(BSON(name << value).firstElement()));
}
- void reset() {
- // Reset to the old value.
- auto elem = _oldValue.firstElement();
- uassertStatusOK(_serverParam->set(elem));
- }
-
-private:
- ServerParameter* _serverParam;
- BSONObj _oldValue;
-};
-
-/**
- * Test-only RAII type that wraps ServerParameterControllerForTest. Upon destruction, the server
- * parameter will be set to its original value.
- */
-class RAIIServerParameterControllerForTest {
-public:
- /**
- * Constructor setting the server parameter to the specified value.
- */
- template <typename T>
- RAIIServerParameterControllerForTest(const std::string& name, T value)
- : _serverParamController(ServerParameterControllerForTest(name, value)) {}
-
/**
* Destructor resetting the server parameter to the original value.
*/
~RAIIServerParameterControllerForTest() {
- _serverParamController.reset();
+ // Reset to the old value
+ auto elem = _oldValue.firstElement();
+ uassertStatusOK(_serverParam->set(elem));
}
private:
- ServerParameterControllerForTest _serverParamController;
+ ServerParameter* _serverParam;
+ BSONObj _oldValue;
};
} // namespace mongo