#include
#include |
#include |
namespace tp = td::protocol;
template
static int TestCommand() {
Command_T command;
td::DataBuffer buffer = tp::CommandSerializer::Serialize(command);
auto abstractCommand = tp::CommandSerializer::Deserialize(buffer);
td_test_assert(abstractCommand);
Command_T* command2 = dynamic_cast(abstractCommand.get());
td_test_assert(command2);
td_test_assert(command.GetType() == command2->GetType());
return std::memcmp(&command.m_Data, &command2->m_Data, sizeof(Command_Data_T));
}
#define DeclareCommand(Command, ...) TestCommand();
static int TestAllCommands() {
DeclareAllCommand()
return TD_TEST_SUCCESSFUL;
}
static int TestNewTeam() {
tp::commands::TeamChange tc;
tc.m_Data.m_Player = 69;
tc.m_Data.m_NewTeam = td::Team::Red;
td::DataBuffer db = tp::CommandSerializer::Serialize(tc);
auto packet = tp::CommandSerializer::Deserialize(db);
tp::commands::TeamChange* tc2 = dynamic_cast(packet.get());
return TD_TEST_SUCCESSFUL;
}
int main() {
TestNewTeam();
return TestAllCommands();
} |