1use deps_core::lsp_helpers::EcosystemFormatter;
4
5pub struct GradleFormatter;
6
7impl EcosystemFormatter for GradleFormatter {
8 fn format_version_for_text_edit(&self, version: &str) -> String {
9 version.to_string()
10 }
11
12 fn package_url(&self, name: &str) -> String {
13 deps_maven::registry::package_url(name)
14 }
15
16 fn version_satisfies_requirement(&self, version: &str, requirement: &str) -> bool {
17 version == requirement
18 }
19}
20
21#[cfg(test)]
22mod tests {
23 use super::*;
24
25 #[test]
26 fn test_format_version() {
27 let f = GradleFormatter;
28 assert_eq!(f.format_version_for_text_edit("3.2.0"), "3.2.0");
29 assert_eq!(
30 f.format_version_for_text_edit("1.0.0-SNAPSHOT"),
31 "1.0.0-SNAPSHOT"
32 );
33 }
34
35 #[test]
36 fn test_package_url() {
37 let f = GradleFormatter;
38 assert_eq!(
39 f.package_url("org.springframework.boot:spring-boot-starter"),
40 "https://central.sonatype.com/artifact/org.springframework.boot/spring-boot-starter"
41 );
42 }
43
44 #[test]
45 fn test_version_satisfies() {
46 let f = GradleFormatter;
47 assert!(f.version_satisfies_requirement("3.2.0", "3.2.0"));
48 assert!(!f.version_satisfies_requirement("3.2.0", "3.1.0"));
49 assert!(!f.version_satisfies_requirement("3.2.0", "3.2.1"));
50 }
51
52 #[test]
53 fn test_normalize_is_identity() {
54 let f = GradleFormatter;
55 assert_eq!(
56 f.normalize_package_name("com.google.guava:guava"),
57 "com.google.guava:guava"
58 );
59 }
60}