1
+ //! Tests for Display implementations
2
+
3
+ #[ cfg( test) ]
4
+ mod display_tests {
5
+ use crate :: { FullName , PartialName } ;
6
+ use std:: convert:: TryFrom ;
7
+
8
+ #[ test]
9
+ fn test_full_name_display ( ) {
10
+ let full_name = FullName :: try_from ( "refs/heads/main" ) . unwrap ( ) ;
11
+ assert_eq ! ( format!( "{}" , full_name) , "refs/heads/main" ) ;
12
+ assert_eq ! ( full_name. to_string( ) , "refs/heads/main" ) ;
13
+ }
14
+
15
+ #[ test]
16
+ fn test_full_name_ref_display ( ) {
17
+ let full_name = FullName :: try_from ( "refs/heads/main" ) . unwrap ( ) ;
18
+ let full_name_ref = full_name. as_ref ( ) ;
19
+ assert_eq ! ( format!( "{}" , full_name_ref) , "refs/heads/main" ) ;
20
+ assert_eq ! ( full_name_ref. to_string( ) , "refs/heads/main" ) ;
21
+ }
22
+
23
+ #[ test]
24
+ fn test_partial_name_display ( ) {
25
+ let partial_name = PartialName :: try_from ( "heads/main" ) . unwrap ( ) ;
26
+ assert_eq ! ( format!( "{}" , partial_name) , "heads/main" ) ;
27
+ assert_eq ! ( partial_name. to_string( ) , "heads/main" ) ;
28
+ }
29
+
30
+ #[ test]
31
+ fn test_partial_name_ref_display ( ) {
32
+ let partial_name = PartialName :: try_from ( "heads/main" ) . unwrap ( ) ;
33
+ let partial_name_ref = partial_name. as_ref ( ) ;
34
+ assert_eq ! ( format!( "{}" , partial_name_ref) , "heads/main" ) ;
35
+ assert_eq ! ( partial_name_ref. to_string( ) , "heads/main" ) ;
36
+ }
37
+
38
+ #[ test]
39
+ fn test_display_with_various_ref_types ( ) {
40
+ // Test various types of refs
41
+ let refs = vec ! [
42
+ "refs/heads/main" ,
43
+ "refs/remotes/origin/main" ,
44
+ "refs/tags/v1.0.0" ,
45
+ "HEAD" ,
46
+ ] ;
47
+
48
+ for ref_name in refs {
49
+ let full_name = FullName :: try_from ( ref_name) . unwrap ( ) ;
50
+ let full_name_ref = full_name. as_ref ( ) ;
51
+
52
+ assert_eq ! ( format!( "{}" , full_name) , ref_name) ;
53
+ assert_eq ! ( format!( "{}" , full_name_ref) , ref_name) ;
54
+ }
55
+ }
56
+
57
+ #[ test]
58
+ fn test_display_with_partial_names ( ) {
59
+ let partial_names = vec ! [
60
+ "main" ,
61
+ "heads/main" ,
62
+ "remotes/origin/main" ,
63
+ "tags/v1.0.0" ,
64
+ ] ;
65
+
66
+ for partial_name_str in partial_names {
67
+ let partial_name = PartialName :: try_from ( partial_name_str) . unwrap ( ) ;
68
+ let partial_name_ref = partial_name. as_ref ( ) ;
69
+
70
+ assert_eq ! ( format!( "{}" , partial_name) , partial_name_str) ;
71
+ assert_eq ! ( format!( "{}" , partial_name_ref) , partial_name_str) ;
72
+ }
73
+ }
74
+ }
0 commit comments