Skip to content

Commit 94f471d

Browse files
committed
test(macro): add rename tests
Refs: #391
1 parent f9baa99 commit 94f471d

File tree

2 files changed

+85
-4
lines changed

2 files changed

+85
-4
lines changed

crates/macros/src/parsing.rs

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
}

guide/src/migration-guides/v0.14.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ register functions, classes, constants and startup function when declaring
1515
the module.
1616

1717
```rs
18-
#[php_module]
19-
#[php(startup = "startup_function")]
18+
#[php_module(startup = "startup_function")]
2019
pub fn get_module(module: ModuleBuilder) -> ModuleBuilder {
2120
module
2221
.class::<TestClass>()
@@ -175,8 +174,7 @@ fn startup_function(ty: i32, mod_num: i32) -> i32 {
175174
0
176175
}
177176

178-
#[php_module]
179-
#[php(startup = "startup_function")]
177+
#[php_module(startup = "startup_function")]
180178
pub fn get_module(module: ModuleBuilder) -> ModuleBuilder {
181179
module
182180
}

0 commit comments

Comments
 (0)