!B (Sandbox) (CE-21795) Importing models with multisubmaterials via fbx switches...
[CRYENGINE.git] / Code / CryEngine / CrySchematyc2 / UnitTests / EnvUnitTests.cpp
blob30727e3e1d10fcec5ce58a28fbc6eb4f23fc5de6
1 // Copyright 2001-2019 Crytek GmbH / Crytek Group. All rights reserved.
3 #include "StdAfx.h"
5 #include <CrySerialization/Forward.h>
6 #include <CrySchematyc2/Any.h>
7 #include <CrySchematyc2/Env/EnvFunctionDescriptor.h>
9 #include "UnitTests/UnitTestRegistrar.h"
11 namespace Schematyc2
13 namespace EnvFunctionDescriptorUnitTests
15 struct SParam0
17 void Serialize(Serialization::IArchive&) {}
19 inline bool operator == (const SParam0& rhs) const
21 return value == rhs.value;
24 int value;
27 struct SParam1
29 void Serialize(Serialization::IArchive&) {}
31 inline bool operator == (const SParam1& rhs) const
33 return value == rhs.value;
36 int value;
39 struct SParam2
41 void Serialize(Serialization::IArchive&) {}
43 inline bool operator == (const SParam2& rhs) const
45 return value == rhs.value;
48 int value;
51 struct SParam3
53 void Serialize(Serialization::IArchive&) {}
55 inline bool operator == (const SParam3& rhs) const
57 return value == rhs.value;
60 int value;
63 struct SParam4
65 void Serialize(Serialization::IArchive&) {}
67 inline bool operator == (const SParam4& rhs) const
69 return value == rhs.value;
72 int value;
75 struct SParam5
77 void Serialize(Serialization::IArchive&) {}
79 inline bool operator == (const SParam5& rhs) const
81 return value == rhs.value;
84 int value;
87 struct SParam6
89 void Serialize(Serialization::IArchive&) {}
91 inline bool operator == (const SParam6& rhs) const
93 return value == rhs.value;
96 int value;
99 struct SParam7
101 void Serialize(Serialization::IArchive&) {}
103 inline bool operator == (const SParam7& rhs) const
105 return value == rhs.value;
108 int value;
111 struct SParam8
113 void Serialize(Serialization::IArchive&) {}
115 inline bool operator == (const SParam8& rhs) const
117 return value == rhs.value;
120 int value;
123 struct SParam9
125 void Serialize(Serialization::IArchive&) {}
127 inline bool operator == (const SParam9& rhs) const
129 return value == rhs.value;
132 int 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(); }
147 struct SObject
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;
191 SObject object;
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);
249 return resultFlags;
253 SCHEMATYC2_REGISTER_UNIT_TEST(&EnvFunctionDescriptorUnitTests::Run, "EnvFunctionDescriptor")