1
1
/* * @file */
2
- #ifndef CPPSPEC_CLASS_DESCRIPTION_HPP
3
- #define CPPSPEC_CLASS_DESCRIPTION_HPP
4
2
#pragma once
5
3
#include < string>
6
4
@@ -34,15 +32,11 @@ class ClassDescription : public Description {
34
32
// if there's no explicit subject given, then use
35
33
// the default constructor of the given type as the implicit subject.
36
34
ClassDescription (Block block)
37
- : Description(),
38
- block (block),
39
- type(" : " + Util::demangle(typeid (T).name())),
40
- subject(T()) {
35
+ : Description(), block(block), type(" : " + Util::demangle(typeid (T).name())), subject(T()) {
41
36
this ->description = Pretty::to_word (subject);
42
37
}
43
38
44
- ClassDescription (std::string description, Block block)
45
- : Description(description), block(block), subject(T()) {}
39
+ ClassDescription (std::string description, Block block) : Description(description), block(block), subject(T()) {}
46
40
47
41
ClassDescription (T subject, Block block)
48
42
: Description(Pretty::to_word(subject)),
@@ -61,57 +55,45 @@ class ClassDescription : public Description {
61
55
62
56
template <typename U>
63
57
ClassDescription (std::initializer_list<U> init_list, Block block)
64
- : block(block),
65
- type(" : " + Util::demangle(typeid (T).name())),
66
- subject(T(init_list)) {
58
+ : block(block), type(" : " + Util::demangle(typeid (T).name())), subject(T(init_list)) {
67
59
this ->description = Pretty::to_word (subject);
68
60
}
69
61
70
62
template <typename U>
71
- ClassDescription (std::string description, std::initializer_list<U> init_list,
72
- Block block)
63
+ ClassDescription (std::string description, std::initializer_list<U> init_list, Block block)
73
64
: Description(description), block(block), subject(T(init_list)) {}
74
65
75
66
Result it (std::string description, std::function<void (ItCD<T> &)> block);
76
67
Result it (std::function<void (ItCD<T> &)> block);
77
68
/* * @brief an alias for it */
78
- Result specify (std::string description,
79
- std::function<void (ItCD<T> &)> block) {
80
- return it (description, block);
81
- }
69
+ Result specify (std::string description, std::function<void (ItCD<T> &)> block) { return it (description, block); }
82
70
/* * @brief an alias for it */
83
71
Result specify (std::function<void (ItCD<T> &)> block) { return it (block); }
84
72
85
73
template <class U = std::nullptr_t >
86
- Result context (std::string description,
87
- std::function<void (ClassDescription<T> &)> block);
74
+ Result context (std::string description, std::function<void (ClassDescription<T> &)> block);
88
75
89
76
template <class U >
90
- Result context (std::string description, U subject,
91
- std::function<void (ClassDescription<U> &)> block);
77
+ Result context (std::string description, U subject, std::function<void (ClassDescription<U> &)> block);
92
78
template <class U >
93
- Result context (std::string description, U &subject,
94
- std::function<void (ClassDescription<U> &)> block);
79
+ Result context (std::string description, U &subject, std::function<void (ClassDescription<U> &)> block);
95
80
template <class U >
96
81
Result context (U subject, std::function<void (ClassDescription<U> &)> block);
97
82
template <class U >
98
83
Result context (U &subject, std::function<void (ClassDescription<U> &)> block);
99
84
100
85
Result run (Formatters::BaseFormatter &printer) override ;
101
86
102
- [[nodiscard]] std::string get_subject_type () const noexcept override {
103
- return type;
104
- }
87
+ [[nodiscard]] std::string get_subject_type () const noexcept override { return type; }
105
88
};
106
89
107
90
template <class T >
108
91
using ClassContext = ClassDescription<T>;
109
92
110
93
template <class T >
111
94
template <class U >
112
- Result ClassDescription<T>::context(
113
- std::string description, U subject,
114
- std::function<void (ClassDescription<U> &)> block) {
95
+ Result ClassDescription<T>::context(std::string description, U subject,
96
+ std::function<void (ClassDescription<U> &)> block) {
115
97
ClassContext<U> context (description, subject, block);
116
98
context.set_parent (this );
117
99
context.ClassContext <U>::before_eaches = this ->before_eaches ;
@@ -121,16 +103,14 @@ Result ClassDescription<T>::context(
121
103
122
104
template <class T >
123
105
template <class U >
124
- Result ClassDescription<T>::context(
125
- U subject, std::function<void (ClassDescription<U> &)> block) {
106
+ Result ClassDescription<T>::context(U subject, std::function<void (ClassDescription<U> &)> block) {
126
107
return this ->context (" " , std::forward<U>(subject), block);
127
108
}
128
109
129
110
template <class T >
130
111
template <class U >
131
- Result ClassDescription<T>::context(
132
- std::string description, U &subject,
133
- std::function<void (ClassDescription<U> &)> block) {
112
+ Result ClassDescription<T>::context(std::string description, U &subject,
113
+ std::function<void (ClassDescription<U> &)> block) {
134
114
ClassContext<U> context (description, subject, block);
135
115
context.set_parent (this );
136
116
context.ClassContext <U>::before_eaches = this ->before_eaches ;
@@ -140,15 +120,13 @@ Result ClassDescription<T>::context(
140
120
141
121
template <class T >
142
122
template <class U >
143
- Result ClassDescription<T>::context(
144
- U &subject, std::function<void (ClassDescription<U> &)> block) {
123
+ Result ClassDescription<T>::context(U &subject, std::function<void (ClassDescription<U> &)> block) {
145
124
return this ->context (" " , std::forward<U>(subject), block);
146
125
}
147
126
148
127
template <class T >
149
128
template <class U >
150
- Result ClassDescription<T>::context(
151
- std::string description, std::function<void (ClassDescription<T> &)> block) {
129
+ Result ClassDescription<T>::context(std::string description, std::function<void (ClassDescription<T> &)> block) {
152
130
ClassContext<T> context (description, this ->subject , block);
153
131
context.set_parent (this );
154
132
context.before_eaches = this ->before_eaches ;
@@ -157,14 +135,12 @@ Result ClassDescription<T>::context(
157
135
}
158
136
159
137
template <class T >
160
- Result Description::context (T subject,
161
- std::function<void (ClassDescription<T> &)> block) {
138
+ Result Description::context (T subject, std::function<void (ClassDescription<T> &)> block) {
162
139
return this ->context (" " , subject, block);
163
140
}
164
141
165
142
template <class T >
166
- Result Description::context (std::string description, T subject,
167
- std::function<void (ClassDescription<T> &)> block) {
143
+ Result Description::context (std::string description, T subject, std::function<void (ClassDescription<T> &)> block) {
168
144
ClassContext<T> context (description, subject, block);
169
145
context.set_parent (this );
170
146
context.before_eaches = this ->before_eaches ;
@@ -173,8 +149,7 @@ Result Description::context(std::string description, T subject,
173
149
}
174
150
175
151
template <class T , typename U>
176
- Result Description::context (std::initializer_list<U> init_list,
177
- std::function<void (ClassDescription<T> &)> block) {
152
+ Result Description::context (std::initializer_list<U> init_list, std::function<void (ClassDescription<T> &)> block) {
178
153
ClassContext<T> context (T (init_list), block);
179
154
context.set_parent (this );
180
155
context.before_eaches = this ->before_eaches ;
@@ -204,8 +179,7 @@ Result Description::context(std::initializer_list<U> init_list,
204
179
* @return the result of the test
205
180
*/
206
181
template <class T >
207
- Result ClassDescription<T>::it(std::string name,
208
- std::function<void (ItCD<T> &)> block) {
182
+ Result ClassDescription<T>::it(std::string name, std::function<void (ItCD<T> &)> block) {
209
183
ItCD<T> it (*this , this ->subject , name, block);
210
184
Result result = it.run (this ->get_formatter ());
211
185
exec_after_eaches ();
@@ -276,4 +250,3 @@ Result ItCD<T>::run(Formatters::BaseFormatter &printer) {
276
250
}
277
251
278
252
} // namespace CppSpec
279
- #endif // CPPSPEC_CLASS_DESCRIPTION_HPP
0 commit comments