Skip to content

Commit d1c5141

Browse files
committed
Add tests
1 parent 7b6bac8 commit d1c5141

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

src/qdrant_client/version_check.rs

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,3 +84,63 @@ pub fn is_compatible(client_version: Option<&str>, server_version: Option<&str>)
8484
}
8585
}
8686
}
87+
88+
#[cfg(test)]
89+
mod tests {
90+
use super::*;
91+
92+
#[test]
93+
fn test_is_compatible() {
94+
let test_cases = vec![
95+
(Some("1.9.3.dev0"), Some("2.8.1.dev12-something"), false),
96+
(Some("1.9"), Some("2.8"), false),
97+
(Some("1"), Some("2"), false),
98+
(Some("1.9.0"), Some("2.9.0"), false),
99+
(Some("1.1.0"), Some("1.2.9"), true),
100+
(Some("1.2.7"), Some("1.1.8.dev0"), true),
101+
(Some("1.2.1"), Some("1.2.29"), true),
102+
(Some("1.2.0"), Some("1.2.0"), true),
103+
(Some("1.2.0"), Some("1.4.0"), false),
104+
(Some("1.4.0"), Some("1.2.0"), false),
105+
(Some("1.9.0"), Some("3.7.0"), false),
106+
(Some("3.0.0"), Some("1.0.0"), false),
107+
(None, Some("1.0.0"), false),
108+
(Some("1.0.0"), None, false),
109+
(None, None, false),
110+
];
111+
112+
for (client_version, server_version, expected_result) in test_cases {
113+
let result = is_compatible(client_version, server_version);
114+
assert_eq!(
115+
result, expected_result,
116+
"Failed for client: {:?}, server: {:?}",
117+
client_version, server_version
118+
);
119+
}
120+
}
121+
122+
#[test]
123+
fn test_version_parse_errors() {
124+
let test_cases = vec![
125+
("1", VersionParseError::InvalidFormat("1".to_string())),
126+
("1.", VersionParseError::InvalidFormat("1.".to_string())),
127+
(".1", VersionParseError::InvalidFormat(".1".to_string())),
128+
(".1.", VersionParseError::InvalidFormat(".1.".to_string())),
129+
(
130+
"1.a.1",
131+
VersionParseError::InvalidFormat("1.a.1".to_string()),
132+
),
133+
(
134+
"a.1.1",
135+
VersionParseError::InvalidFormat("a.1.1".to_string()),
136+
),
137+
("", VersionParseError::EmptyVersion),
138+
];
139+
140+
for (input, expected_error) in test_cases {
141+
let result = Version::parse(input);
142+
assert!(result.is_err());
143+
assert_eq!(result.unwrap_err().to_string(), expected_error.to_string());
144+
}
145+
}
146+
}

0 commit comments

Comments
 (0)