Skip to content

Commit b33cf4d

Browse files
committed
Fixed #19 added scripts.wsjcpp/generate.WsjcppUnitTest
1 parent 5d43678 commit b33cf4d

File tree

2 files changed

+106
-0
lines changed

2 files changed

+106
-0
lines changed
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
#!/usr/bin/wsjcpp-safe-scripting
2+
3+
# log_info rootdir
4+
# log_info script_filename
5+
6+
make_dir "./unit-tests.wsjcpp"
7+
make_dir "./unit-tests.wsjcpp/src"
8+
9+
var user_class_name
10+
set_value user_class_name arg1
11+
normalize_class_name user_class_name
12+
var class_name
13+
set_value class_name "UnitTest"
14+
concat class_name user_class_name
15+
16+
var base_filename
17+
convert_CamelCase_to_snake_case class_name base_filename
18+
# log_info base_filename
19+
20+
var filename_cpp
21+
concat filename_cpp "./unit-tests.wsjcpp/src/" base_filename ".cpp"
22+
23+
var filename_h
24+
concat filename_h "./unit-tests.wsjcpp/src/" base_filename ".h"
25+
26+
var ifndef_header
27+
set_value ifndef_header base_filename
28+
concat ifndef_header "_H"
29+
30+
to_upper_case ifndef_header
31+
32+
var content_header
33+
concat content_header "#ifndef " ifndef_header "
34+
#define " ifndef_header "
35+
36+
#include <wsjcpp_unit_tests.h>
37+
38+
class " class_name " : public WsjcppUnitTestBase {
39+
public:
40+
" class_name "();
41+
virtual bool doBeforeTest() override;
42+
virtual void executeTest() override;
43+
virtual bool doAfterTest() override;
44+
};
45+
46+
#endif // " ifndef_header
47+
48+
49+
var content_source
50+
concat content_source "
51+
#include \"" base_filename ".h\"
52+
#include <wsjcpp_core.h>
53+
54+
// ---------------------------------------------------------------------
55+
// " class_name "
56+
57+
REGISTRY_WSJCPP_UNIT_TEST(" class_name ")
58+
59+
" class_name "::" class_name "()
60+
: WsjcppUnitTestBase(\"" class_name "\") {
61+
}
62+
63+
// ---------------------------------------------------------------------
64+
65+
bool " class_name "::doBeforeTest() {
66+
// nothing
67+
return true;
68+
}
69+
70+
// ---------------------------------------------------------------------
71+
72+
void " class_name "::executeTest() {
73+
compare(\"Not implemented\", true, false);
74+
// TODO unit test source code here
75+
}
76+
77+
// ---------------------------------------------------------------------
78+
79+
bool " class_name "::doAfterTest() {
80+
// nothing
81+
return true;
82+
}
83+
84+
"
85+
86+
var file_source
87+
concat file_source "src/" filename_cpp
88+
89+
write_file filename_h content_header
90+
write_file filename_cpp content_source
91+
92+
log_info "
93+
======
94+
Generated class:
95+
- " class_name "
96+
Generated files:
97+
- " filename_h "
98+
- " filename_cpp "
99+
======
100+
"
101+
102+
wsjcpp_yml_unit_test_add user_class_name filename_h
103+
wsjcpp_yml_unit_test_add user_class_name filename_cpp

wsjcpp.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ distribution:
3333
- source-file: "src/wsjcpp_unit_tests_main.cpp"
3434
target-file: "wsjcpp_unit_tests_main.cpp"
3535
type: "unit-tests"
36+
- source-file: "scripts.wsjcpp/generate.WsjcppUnitTest"
37+
target-file: "generate.WsjcppUnitTest"
38+
type: "safe-scripting-generate"
3639
- source-file: "scripts.wsjcpp/generate.Class"
3740
target-file: "generate.Class"
3841
type: "safe-scripting-generate"

0 commit comments

Comments
 (0)