@@ -91,3 +91,86 @@ impl RenameRule {
9191 }
9292 }
9393}
94+
95+ #[ cfg( test) ]
96+ mod tests {
97+ use super :: { PhpRename , RenameRule } ;
98+
99+ #[ test]
100+ fn test_php_rename ( ) {
101+ let rename = PhpRename {
102+ name : Some ( "test" . to_string ( ) ) ,
103+ rename : None ,
104+ } ;
105+ assert_eq ! ( rename. rename( "test" ) , "test" ) ;
106+ assert_eq ! ( rename. rename( "Test" ) , "test" ) ;
107+ assert_eq ! ( rename. rename( "TEST" ) , "test" ) ;
108+
109+ let rename = PhpRename {
110+ name : None ,
111+ rename : Some ( RenameRule :: ScreamingSnakeCase ) ,
112+ } ;
113+ assert_eq ! ( rename. rename( "test" ) , "TEST" ) ;
114+ assert_eq ! ( rename. rename( "Test" ) , "TEST" ) ;
115+ assert_eq ! ( rename. rename( "TEST" ) , "TEST" ) ;
116+
117+ let rename = PhpRename {
118+ name : Some ( "test" . to_string ( ) ) ,
119+ rename : Some ( RenameRule :: ScreamingSnakeCase ) ,
120+ } ;
121+ assert_eq ! ( rename. rename( "test" ) , "test" ) ;
122+ assert_eq ! ( rename. rename( "Test" ) , "test" ) ;
123+ assert_eq ! ( rename. rename( "TEST" ) , "test" ) ;
124+
125+ let rename = PhpRename {
126+ name : None ,
127+ rename : None ,
128+ } ;
129+ assert_eq ! ( rename. rename( "test" ) , "test" ) ;
130+ assert_eq ! ( rename. rename( "Test" ) , "Test" ) ;
131+ assert_eq ! ( rename. rename( "TEST" ) , "TEST" ) ;
132+ }
133+
134+ #[ test]
135+ fn test_rename_magic ( ) {
136+ for & ( magic, expected) in & [
137+ ( "__construct" , "__construct" ) ,
138+ ( "__destruct" , "__destruct" ) ,
139+ ( "__call" , "__call" ) ,
140+ ( "__call_static" , "__callStatic" ) ,
141+ ( "__get" , "__get" ) ,
142+ ( "__set" , "__set" ) ,
143+ ( "__isset" , "__isset" ) ,
144+ ( "__unset" , "__unset" ) ,
145+ ( "__sleep" , "__sleep" ) ,
146+ ( "__wakeup" , "__wakeup" ) ,
147+ ( "__serialize" , "__serialize" ) ,
148+ ( "__unserialize" , "__unserialize" ) ,
149+ ( "__to_string" , "__toString" ) ,
150+ ( "__invoke" , "__invoke" ) ,
151+ ( "__set_state" , "__set_state" ) ,
152+ ( "__clone" , "__clone" ) ,
153+ ( "__debug_info" , "__debugInfo" ) ,
154+ ] {
155+ assert_eq ! ( magic, RenameRule :: None . rename( magic) ) ;
156+ assert_eq ! ( expected, RenameRule :: Camel . rename( magic) ) ;
157+ assert_eq ! ( expected, RenameRule :: Pascal . rename( magic) ) ;
158+ assert_eq ! ( expected, RenameRule :: Snake . rename( magic) ) ;
159+ assert_eq ! ( expected, RenameRule :: ScreamingSnakeCase . rename( magic) ) ;
160+ }
161+ }
162+
163+ #[ test]
164+ fn test_rename_php_methods ( ) {
165+ let & ( original, camel, snake, pascal, screaming_snake) =
166+ & ( "get_name" , "getName" , "get_name" , "GetName" , "GET_NAME" ) ;
167+ assert_eq ! ( original, RenameRule :: None . rename( original) ) ;
168+ assert_eq ! ( camel, RenameRule :: Camel . rename( original) ) ;
169+ assert_eq ! ( pascal, RenameRule :: Pascal . rename( original) ) ;
170+ assert_eq ! ( snake, RenameRule :: Snake . rename( original) ) ;
171+ assert_eq ! (
172+ screaming_snake,
173+ RenameRule :: ScreamingSnakeCase . rename( original)
174+ ) ;
175+ }
176+ }
0 commit comments