Skip to main content

mockforge_data/
provider.rs

1/// Register the mockforge-data backed faker provider with core templating.
2///
3/// This function is intentionally a no-op. The original implementation was disabled to break
4/// a circular dependency between `mockforge-core` and `mockforge-data`. Faker functionality
5/// is instead provided directly by `mockforge-core`'s built-in template expansion, which
6/// handles `{{faker.*}}` placeholders without requiring a separate provider registration.
7///
8/// Callers (mockforge-http, mockforge-ws, mockforge-grpc) invoke this behind
9/// `#[cfg(feature = "data-faker")]` for forward compatibility if provider registration
10/// is re-enabled in the future.
11pub fn register_core_faker_provider() {
12    // No-op: faker functionality is provided by mockforge-core's template expansion
13}
14
15#[cfg(test)]
16mod tests {
17    use super::*;
18    use crate::faker::EnhancedFaker;
19
20    #[test]
21    fn test_register_core_faker_provider() {
22        // Verify registration doesn't panic
23        register_core_faker_provider();
24    }
25
26    #[test]
27    fn test_enhanced_faker_uuid() {
28        let mut faker = EnhancedFaker::new();
29        let uuid = faker.uuid();
30        assert_eq!(uuid.len(), 36);
31        assert!(uuid.contains('-'));
32    }
33
34    #[test]
35    fn test_enhanced_faker_email() {
36        let mut faker = EnhancedFaker::new();
37        let email = faker.email();
38        assert!(!email.is_empty());
39        assert!(email.contains('@'));
40    }
41
42    #[test]
43    fn test_enhanced_faker_name() {
44        let mut faker = EnhancedFaker::new();
45        let name = faker.name();
46        assert!(!name.is_empty());
47    }
48
49    #[test]
50    fn test_enhanced_faker_address() {
51        let mut faker = EnhancedFaker::new();
52        let address = faker.address();
53        assert!(!address.is_empty());
54    }
55
56    #[test]
57    fn test_enhanced_faker_phone() {
58        let mut faker = EnhancedFaker::new();
59        let phone = faker.phone();
60        assert!(!phone.is_empty());
61    }
62
63    #[test]
64    fn test_enhanced_faker_company() {
65        let mut faker = EnhancedFaker::new();
66        let company = faker.company();
67        assert!(!company.is_empty());
68    }
69
70    #[test]
71    fn test_enhanced_faker_url() {
72        let mut faker = EnhancedFaker::new();
73        let url = faker.url();
74        assert!(url.starts_with("https://"));
75    }
76
77    #[test]
78    fn test_enhanced_faker_ip() {
79        let mut faker = EnhancedFaker::new();
80        let ip = faker.ip_address();
81        assert!(!ip.is_empty());
82        assert!(ip.contains('.'));
83    }
84
85    #[test]
86    fn test_enhanced_faker_color() {
87        let mut faker = EnhancedFaker::new();
88        let color = faker.color();
89        let valid_colors = [
90            "red", "blue", "green", "yellow", "purple", "orange", "pink", "brown", "black", "white",
91        ];
92        assert!(valid_colors.contains(&color.as_str()));
93    }
94
95    #[test]
96    fn test_enhanced_faker_word() {
97        let mut faker = EnhancedFaker::new();
98        let word = faker.word();
99        assert!(!word.is_empty());
100    }
101
102    #[test]
103    fn test_enhanced_faker_sentence() {
104        let mut faker = EnhancedFaker::new();
105        let sentence = faker.sentence();
106        assert!(!sentence.is_empty());
107    }
108
109    #[test]
110    fn test_enhanced_faker_paragraph() {
111        let mut faker = EnhancedFaker::new();
112        let paragraph = faker.paragraph();
113        assert!(!paragraph.is_empty());
114    }
115}