use error_kit::{messages, CommonError};
#[test]
fn test_error_display_uses_constants() {
let timeout_err = CommonError::Timeout;
assert_eq!(timeout_err.to_string(), messages::TIMEOUT_EXCEEDED);
let cache_err = CommonError::CacheLock;
assert_eq!(cache_err.to_string(), messages::CACHE_LOCK_ERROR);
let data_not_found_err = CommonError::DataNotFound;
assert_eq!(data_not_found_err.to_string(), messages::DATA_NOT_FOUND);
let unable_to_fresh_err = CommonError::UnableToFreshData;
assert_eq!(
unable_to_fresh_err.to_string(),
messages::UNABLE_TO_FRESH_DATA
);
let stale_err = CommonError::StaleInternalNone;
assert_eq!(stale_err.to_string(), messages::STALE_INTERNAL_NONE);
let filename_err = CommonError::FilenameError;
assert_eq!(filename_err.to_string(), messages::FAILED_TO_GET_FILENAME);
let encoding_err = CommonError::InvalidFilenameEncoding;
assert_eq!(
encoding_err.to_string(),
messages::INVALID_FILENAME_ENCODING
);
let separator_err = CommonError::MissingTimestampSeparator;
assert_eq!(
separator_err.to_string(),
messages::MISSING_TIMESTAMP_SEPARATOR
);
let extension_err = CommonError::MissingFileExtension;
assert_eq!(extension_err.to_string(), messages::MISSING_FILE_EXTENSION);
let timestamp_err = CommonError::TimestampParseError;
assert_eq!(
timestamp_err.to_string(),
messages::FAILED_TO_PARSE_TIMESTAMP
);
}
#[test]
fn test_parameterized_error_display() {
let serialization_err = CommonError::Serialization("JSON");
assert!(serialization_err
.to_string()
.contains(messages::SERIALIZATION_ERROR_PREFIX));
assert!(serialization_err.to_string().contains("JSON"));
let deserialization_err = CommonError::Deserialization("YAML");
assert!(deserialization_err
.to_string()
.contains(messages::DESERIALIZATION_ERROR_PREFIX));
assert!(deserialization_err.to_string().contains("YAML"));
let unsupported_err = CommonError::UnsupportedFileType("XML");
assert!(unsupported_err
.to_string()
.contains(messages::UNSUPPORTED_FILE_TYPE_PREFIX));
assert!(unsupported_err.to_string().contains("XML"));
}
#[test]
fn test_error_variants_are_constructible() {
let _cache_lock = CommonError::CacheLock;
let _serialization = CommonError::Serialization("JSON");
let _deserialization = CommonError::Deserialization("YAML");
let _unsupported = CommonError::UnsupportedFileType("XML");
let _data_not_found = CommonError::DataNotFound;
let _unable_to_fresh = CommonError::UnableToFreshData;
let _stale_internal = CommonError::StaleInternalNone;
let _timeout = CommonError::Timeout;
let _filename_error = CommonError::FilenameError;
let _invalid_encoding = CommonError::InvalidFilenameEncoding;
let _missing_separator = CommonError::MissingTimestampSeparator;
let _missing_extension = CommonError::MissingFileExtension;
let _timestamp_parse = CommonError::TimestampParseError;
}