1 // Copyright 2001-2019 Crytek GmbH / Crytek Group. All rights reserved.
5 #include <CrySerialization/Forward.h>
6 #include <CrySchematyc2/Any.h>
7 #include <CrySchematyc2/Env/EnvFunctionDescriptor.h>
9 #include "UnitTests/UnitTestRegistrar.h"
13 namespace EnvFunctionDescriptorUnitTests
17 void Serialize(Serialization::IArchive
&) {}
19 inline bool operator == (const SParam0
& rhs
) const
21 return value
== rhs
.value
;
29 void Serialize(Serialization::IArchive
&) {}
31 inline bool operator == (const SParam1
& rhs
) const
33 return value
== rhs
.value
;
41 void Serialize(Serialization::IArchive
&) {}
43 inline bool operator == (const SParam2
& rhs
) const
45 return value
== rhs
.value
;
53 void Serialize(Serialization::IArchive
&) {}
55 inline bool operator == (const SParam3
& rhs
) const
57 return value
== rhs
.value
;
65 void Serialize(Serialization::IArchive
&) {}
67 inline bool operator == (const SParam4
& rhs
) const
69 return value
== rhs
.value
;
77 void Serialize(Serialization::IArchive
&) {}
79 inline bool operator == (const SParam5
& rhs
) const
81 return value
== rhs
.value
;
89 void Serialize(Serialization::IArchive
&) {}
91 inline bool operator == (const SParam6
& rhs
) const
93 return value
== rhs
.value
;
101 void Serialize(Serialization::IArchive
&) {}
103 inline bool operator == (const SParam7
& rhs
) const
105 return value
== rhs
.value
;
113 void Serialize(Serialization::IArchive
&) {}
115 inline bool operator == (const SParam8
& rhs
) const
117 return value
== rhs
.value
;
125 void Serialize(Serialization::IArchive
&) {}
127 inline bool operator == (const SParam9
& rhs
) const
129 return value
== rhs
.value
;
135 SEnvFunctionResult
GlobalFunction00(const SEnvFunctionContext
&) { return SEnvFunctionResult(); }
136 SEnvFunctionResult
GlobalFunction01(const SEnvFunctionContext
&, SParam0
) { return SEnvFunctionResult(); }
137 SEnvFunctionResult
GlobalFunction02(const SEnvFunctionContext
&, SParam0
, SParam1
) { return SEnvFunctionResult(); }
138 SEnvFunctionResult
GlobalFunction03(const SEnvFunctionContext
&, SParam0
, SParam1
, SParam2
) { return SEnvFunctionResult(); }
139 SEnvFunctionResult
GlobalFunction04(const SEnvFunctionContext
&, SParam0
, SParam1
, SParam2
, SParam3
) { return SEnvFunctionResult(); }
140 SEnvFunctionResult
GlobalFunction05(const SEnvFunctionContext
&, SParam0
, SParam1
, SParam2
, SParam3
, SParam4
) { return SEnvFunctionResult(); }
141 SEnvFunctionResult
GlobalFunction06(const SEnvFunctionContext
&, SParam0
, SParam1
, SParam2
, SParam3
, SParam4
, SParam5
) { return SEnvFunctionResult(); }
142 SEnvFunctionResult
GlobalFunction07(const SEnvFunctionContext
&, SParam0
, SParam1
, SParam2
, SParam3
, SParam4
, SParam5
, SParam6
) { return SEnvFunctionResult(); }
143 SEnvFunctionResult
GlobalFunction08(const SEnvFunctionContext
&, SParam0
, SParam1
, SParam2
, SParam3
, SParam4
, SParam5
, SParam6
, SParam7
) { return SEnvFunctionResult(); }
144 SEnvFunctionResult
GlobalFunction09(const SEnvFunctionContext
&, SParam0
, SParam1
, SParam2
, SParam3
, SParam4
, SParam5
, SParam6
, SParam7
, SParam8
) { return SEnvFunctionResult(); }
145 SEnvFunctionResult
GlobalFunction10(const SEnvFunctionContext
&, SParam0
, SParam1
, SParam2
, SParam3
, SParam4
, SParam5
, SParam6
, SParam7
, SParam8
, SParam9
) { return SEnvFunctionResult(); }
149 SEnvFunctionResult
MemberFunction00(const SEnvFunctionContext
&) { return SEnvFunctionResult(); }
150 SEnvFunctionResult
MemberFunction01(const SEnvFunctionContext
&, SParam0
) { return SEnvFunctionResult(); }
151 SEnvFunctionResult
MemberFunction02(const SEnvFunctionContext
&, SParam0
, SParam1
) { return SEnvFunctionResult(); }
152 SEnvFunctionResult
MemberFunction03(const SEnvFunctionContext
&, SParam0
, SParam1
, SParam2
) { return SEnvFunctionResult(); }
153 SEnvFunctionResult
MemberFunction04(const SEnvFunctionContext
&, SParam0
, SParam1
, SParam2
, SParam3
) { return SEnvFunctionResult(); }
154 SEnvFunctionResult
MemberFunction05(const SEnvFunctionContext
&, SParam0
, SParam1
, SParam2
, SParam3
, SParam4
) { return SEnvFunctionResult(); }
155 SEnvFunctionResult
MemberFunction06(const SEnvFunctionContext
&, SParam0
, SParam1
, SParam2
, SParam3
, SParam4
, SParam5
) { return SEnvFunctionResult(); }
156 SEnvFunctionResult
MemberFunction07(const SEnvFunctionContext
&, SParam0
, SParam1
, SParam2
, SParam3
, SParam4
, SParam5
, SParam6
) { return SEnvFunctionResult(); }
157 SEnvFunctionResult
MemberFunction08(const SEnvFunctionContext
&, SParam0
, SParam1
, SParam2
, SParam3
, SParam4
, SParam5
, SParam6
, SParam7
) { return SEnvFunctionResult(); }
158 SEnvFunctionResult
MemberFunction09(const SEnvFunctionContext
&, SParam0
, SParam1
, SParam2
, SParam3
, SParam4
, SParam5
, SParam6
, SParam7
, SParam8
) { return SEnvFunctionResult(); }
159 SEnvFunctionResult
MemberFunction10(const SEnvFunctionContext
&, SParam0
, SParam1
, SParam2
, SParam3
, SParam4
, SParam5
, SParam6
, SParam7
, SParam8
, SParam9
) { return SEnvFunctionResult(); }
161 SEnvFunctionResult
ConstMemberFunction00(const SEnvFunctionContext
&) const { return SEnvFunctionResult(); }
162 SEnvFunctionResult
ConstMemberFunction01(const SEnvFunctionContext
&, SParam0
) const { return SEnvFunctionResult(); }
163 SEnvFunctionResult
ConstMemberFunction02(const SEnvFunctionContext
&, SParam0
, SParam1
) const { return SEnvFunctionResult(); }
164 SEnvFunctionResult
ConstMemberFunction03(const SEnvFunctionContext
&, SParam0
, SParam1
, SParam2
) const { return SEnvFunctionResult(); }
165 SEnvFunctionResult
ConstMemberFunction04(const SEnvFunctionContext
&, SParam0
, SParam1
, SParam2
, SParam3
) const { return SEnvFunctionResult(); }
166 SEnvFunctionResult
ConstMemberFunction05(const SEnvFunctionContext
&, SParam0
, SParam1
, SParam2
, SParam3
, SParam4
) const { return SEnvFunctionResult(); }
167 SEnvFunctionResult
ConstMemberFunction06(const SEnvFunctionContext
&, SParam0
, SParam1
, SParam2
, SParam3
, SParam4
, SParam5
) const { return SEnvFunctionResult(); }
168 SEnvFunctionResult
ConstMemberFunction07(const SEnvFunctionContext
&, SParam0
, SParam1
, SParam2
, SParam3
, SParam4
, SParam5
, SParam6
) const { return SEnvFunctionResult(); }
169 SEnvFunctionResult
ConstMemberFunction08(const SEnvFunctionContext
&, SParam0
, SParam1
, SParam2
, SParam3
, SParam4
, SParam5
, SParam6
, SParam7
) const { return SEnvFunctionResult(); }
170 SEnvFunctionResult
ConstMemberFunction09(const SEnvFunctionContext
&, SParam0
, SParam1
, SParam2
, SParam3
, SParam4
, SParam5
, SParam6
, SParam7
, SParam8
) const { return SEnvFunctionResult(); }
171 SEnvFunctionResult
ConstMemberFunction10(const SEnvFunctionContext
&, SParam0
, SParam1
, SParam2
, SParam3
, SParam4
, SParam5
, SParam6
, SParam7
, SParam8
, SParam9
) const { return SEnvFunctionResult(); }
174 EUnitTestResultFlags
TestEnvFunctionDescriptor(const CEnvFunctionDescriptorPtr
& pEnvFunctionDescriptor
, EEnvFunctionFlags flags
, uint32 paramCount
)
176 if(!pEnvFunctionDescriptor
)
178 return EUnitTestResultFlags::FatalError
;
181 if(pEnvFunctionDescriptor
->GetFlags() != flags
)
183 return EUnitTestResultFlags::FatalError
;
186 if(pEnvFunctionDescriptor
->GetParamCount() != paramCount
)
188 return EUnitTestResultFlags::FatalError
;
192 const EnvFunctionInputs inputs
= { nullptr };
193 const EnvFunctionOutputs outputs
= { nullptr };
194 pEnvFunctionDescriptor
->Execute(SEnvFunctionContext(), &object
, inputs
, outputs
);
196 // #SchematycTODO : Verify result of execution?
198 return EUnitTestResultFlags::Success
;
201 EUnitTestResultFlags
Run()
203 EUnitTestResultFlags resultFlags
= EUnitTestResultFlags::Success
;
205 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&GlobalFunction00
), EEnvFunctionFlags::None
, 0);
206 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&SObject::MemberFunction00
), EEnvFunctionFlags::Member
, 0);
207 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&SObject::ConstMemberFunction00
), EEnvFunctionFlags::Member
| EEnvFunctionFlags::Const
, 0);
209 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&GlobalFunction01
), EEnvFunctionFlags::None
, 1);
210 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&SObject::MemberFunction01
), EEnvFunctionFlags::Member
, 1);
211 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&SObject::ConstMemberFunction01
), EEnvFunctionFlags::Member
| EEnvFunctionFlags::Const
, 1);
213 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&GlobalFunction02
), EEnvFunctionFlags::None
, 2);
214 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&SObject::MemberFunction02
), EEnvFunctionFlags::Member
, 2);
215 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&SObject::ConstMemberFunction02
), EEnvFunctionFlags::Member
| EEnvFunctionFlags::Const
, 2);
217 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&GlobalFunction03
), EEnvFunctionFlags::None
, 3);
218 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&SObject::MemberFunction03
), EEnvFunctionFlags::Member
, 3);
219 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&SObject::ConstMemberFunction03
), EEnvFunctionFlags::Member
| EEnvFunctionFlags::Const
, 3);
221 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&GlobalFunction04
), EEnvFunctionFlags::None
, 4);
222 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&SObject::MemberFunction04
), EEnvFunctionFlags::Member
, 4);
223 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&SObject::ConstMemberFunction04
), EEnvFunctionFlags::Member
| EEnvFunctionFlags::Const
, 4);
225 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&GlobalFunction05
), EEnvFunctionFlags::None
, 5);
226 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&SObject::MemberFunction05
), EEnvFunctionFlags::Member
, 5);
227 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&SObject::ConstMemberFunction05
), EEnvFunctionFlags::Member
| EEnvFunctionFlags::Const
, 5);
229 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&GlobalFunction06
), EEnvFunctionFlags::None
, 6);
230 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&SObject::MemberFunction06
), EEnvFunctionFlags::Member
, 6);
231 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&SObject::ConstMemberFunction06
), EEnvFunctionFlags::Member
| EEnvFunctionFlags::Const
, 6);
233 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&GlobalFunction07
), EEnvFunctionFlags::None
, 7);
234 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&SObject::MemberFunction07
), EEnvFunctionFlags::Member
, 7);
235 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&SObject::ConstMemberFunction07
), EEnvFunctionFlags::Member
| EEnvFunctionFlags::Const
, 7);
237 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&GlobalFunction08
), EEnvFunctionFlags::None
, 8);
238 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&SObject::MemberFunction08
), EEnvFunctionFlags::Member
, 8);
239 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&SObject::ConstMemberFunction08
), EEnvFunctionFlags::Member
| EEnvFunctionFlags::Const
, 8);
241 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&GlobalFunction09
), EEnvFunctionFlags::None
, 9);
242 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&SObject::MemberFunction09
), EEnvFunctionFlags::Member
, 9);
243 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&SObject::ConstMemberFunction09
), EEnvFunctionFlags::Member
| EEnvFunctionFlags::Const
, 9);
245 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&GlobalFunction10
), EEnvFunctionFlags::None
, 10);
246 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&SObject::MemberFunction10
), EEnvFunctionFlags::Member
, 10);
247 resultFlags
|= TestEnvFunctionDescriptor(MakeEnvFunctionDescriptorShared(&SObject::ConstMemberFunction10
), EEnvFunctionFlags::Member
| EEnvFunctionFlags::Const
, 10);
253 SCHEMATYC2_REGISTER_UNIT_TEST(&EnvFunctionDescriptorUnitTests::Run
, "EnvFunctionDescriptor")