Skip to content
Snippets Groups Projects
Verified Commit 95f21fb1 authored by Timm Fitschen's avatar Timm Fitschen
Browse files

Merge branch 'f-move-entity' into f-logging-segfaults

parents 2d9387d7 d7dea004
No related branches found
No related tags found
3 merge requests!33Release 0.1,!31F logging segfaults,!30Debug build
Pipeline #14883 failed
......@@ -101,12 +101,12 @@ public:
};
/**
* @brief The connection isn't known to the ConnectionManager under this name.
* @brief Exception for errors during the configuration of the connection.
*/
class UnknownConnectionError : public Exception {
class ConnectionConfigurationError : public Exception {
public:
explicit UnknownConnectionError(const std::string &what_arg)
: Exception(StatusCode::UNKNOWN_CONNECTION_ERROR, what_arg) {}
explicit ConnectionConfigurationError(const std::string &what_arg)
: Exception(StatusCode::CONNECTION_CONFIGURATION_ERROR, what_arg) {}
};
} // namespace caosdb::exceptions
......
......@@ -62,7 +62,7 @@ enum StatusCode {
GENERIC_ERROR = 21,
GENERIC_TRANSACTION_ERROR = 22,
CONFIGURATION_ERROR = 23,
UNKNOWN_CONNECTION_ERROR = 24,
CONNECTION_CONFIGURATION_ERROR = 24,
TRANSACTION_STATUS_ERROR = 25,
TRANSACTION_TYPE_ERROR = 26,
UNSUPPORTED_FEATURE = 27,
......
......@@ -113,8 +113,8 @@ auto ConnectionManager::mGetConnection(const std::string &name) const
auto connection = ConfigurationManager::GetConnectionConfiguration(name);
connections[name] = std::make_shared<Connection>(*connection.release());
} catch (const caosdb::exceptions::ConfigurationError &exc) {
throw caosdb::exceptions::UnknownConnectionError("No connection named '" + name +
"' present.");
throw caosdb::exceptions::ConnectionConfigurationError("Error with the connection named '" +
name + "': " + exc.what());
}
}
return this->connections.at(name);
......
......@@ -131,8 +131,9 @@ auto get_status_description(int code) -> const std::string & {
"The transaction terminated unsuccessfully with transaction errors."},
{StatusCode::CONFIGURATION_ERROR,
"An error occurred during the configuration of the ConfigurationManager."},
{StatusCode::UNKNOWN_CONNECTION_ERROR,
"The ConnectionManager does not know any connection of this name."},
{StatusCode::CONNECTION_CONFIGURATION_ERROR,
"Wither there is no connection of the given name or the given connection has a faulty "
"configuration"},
{StatusCode::TRANSACTION_STATUS_ERROR,
"The Transaction is in a wrong state for the attempted action."},
{StatusCode::TRANSACTION_TYPE_ERROR,
......
......@@ -22,7 +22,7 @@
#include "caosdb/certificate_provider.h" // for PemCertificateProvider
#include "caosdb/configuration.h" // for InsecureConnectionConfigura...
#include "caosdb/connection.h" // for ConnectionManager
#include "caosdb/exceptions.h" // for UnknownConnectionError
#include "caosdb/exceptions.h" // for ConnectionConfigurationError
#include "caosdb_test_utility.h" // for EXPECT_THROW_MESSAGE, TEST_...
#include <gtest/gtest-message.h> // for Message
#include <gtest/gtest-test-part.h> // for SuiteApiResolver, TestPartR...
......@@ -65,9 +65,16 @@ TEST_F(test_connection, configure_ssl_localhost_8080) {
}
TEST_F(test_connection, connection_manager_unknown_connection) {
EXPECT_THROW_MESSAGE(ConnectionManager::GetConnection("test"),
caosdb::exceptions::UnknownConnectionError,
"No connection named 'test' present.");
EXPECT_THROW_MESSAGE(
ConnectionManager::GetConnection("test"), caosdb::exceptions::ConnectionConfigurationError,
"Error with the connection named 'test': The connection 'test' has not been defined.");
}
TEST_F(test_connection, connection_missing_certificate) {
EXPECT_THROW_MESSAGE(ConnectionManager::GetConnection("missing"),
caosdb::exceptions::ConnectionConfigurationError,
std::string("Error with the connection named 'missing': ") +
"File does not exist (server_certificate_path): /missing");
}
TEST_F(test_connection, connection_manager_get_default_connection) {
......
......@@ -18,6 +18,16 @@
"username": "me",
"password": "secret!"
}
},
"missing": {
"host": "localhost",
"port": 8443,
"server_certificate_path": "/missing",
"authentication": {
"type": "plain",
"username": "me",
"password": "secret!"
}
}
},
"logging": {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment