Skip to main content

deps_gradle/
formatter.rs

1//! Version formatting for Gradle ecosystem.
2
3use 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}