Skip to content

Commit 2cd1c65

Browse files
committed
test: [torrust#1251] add tests for database driver error converters
1 parent adb9614 commit 2cd1c65

File tree

1 file changed

+36
-0
lines changed
  • packages/tracker-core/src/databases

1 file changed

+36
-0
lines changed

packages/tracker-core/src/databases/error.rs

+36
Original file line numberDiff line numberDiff line change
@@ -102,3 +102,39 @@ impl From<(r2d2::Error, Driver)> for Error {
102102
}
103103
}
104104
}
105+
106+
#[cfg(test)]
107+
mod tests {
108+
use r2d2_mysql::mysql;
109+
110+
use crate::databases::error::Error;
111+
112+
#[test]
113+
fn it_should_build_a_database_error_from_a_rusqlite_error() {
114+
let err: Error = r2d2_sqlite::rusqlite::Error::InvalidQuery.into();
115+
116+
assert!(matches!(err, Error::InvalidQuery { .. }));
117+
}
118+
119+
#[test]
120+
fn it_should_build_an_specific_database_error_from_a_no_rows_returned_rusqlite_error() {
121+
let err: Error = r2d2_sqlite::rusqlite::Error::QueryReturnedNoRows.into();
122+
123+
assert!(matches!(err, Error::QueryReturnedNoRows { .. }));
124+
}
125+
126+
#[test]
127+
fn it_should_build_a_database_error_from_a_mysql_error() {
128+
let url_err = mysql::error::UrlError::BadUrl;
129+
let err: Error = r2d2_mysql::mysql::Error::UrlError(url_err).into();
130+
131+
assert!(matches!(err, Error::InvalidQuery { .. }));
132+
}
133+
134+
#[test]
135+
fn it_should_build_a_database_error_from_a_mysql_url_error() {
136+
let err: Error = mysql::error::UrlError::BadUrl.into();
137+
138+
assert!(matches!(err, Error::ConnectionError { .. }));
139+
}
140+
}

0 commit comments

Comments
 (0)