25.04.2017, 02:31
(
Последний раз редактировалось Dayvison_; 25.04.2017 в 18:29.
)
Aqui neste trecho vocк pode ver a parte baseada em simulaзхes(OnPlayerEvent, clickTextDraw, inputDialog), e tambйm os testes comuns ASSERT
Atualmente tenho feito apenas estes eventos, e algumas hooks bбsicas, eu pretendo ir incrementando conforme for necessбrio.
Atualmente tenho feito apenas estes eventos, e algumas hooks bбsicas, eu pretendo ir incrementando conforme for necessбrio.
PHP код:
#include <tests>
#include <hooks>
/*
Passos
1. Adcionar o player(nгo registrado)
2. Testar outros botхes de textdraws
3. Registrar o player
4. Checar no banco de dados se os dados foram inseridos
5. Setar valores nas variaveis dele
6. Remover o player
7. Checar no DB se os dados sгo iguais aos setados
8. Conectar o player(registrado), no id do player acima
9. Checar se variaveis foram limpas
10. Logar o player
11. Mudar valor das variaveis
12. Desconectar o player
13. Checar no DB se os valores foram atualizados
*/
static uvar(string: test_String[MAX_PLAYERS][15]) = "string", "\0";
static uvar(Float: test_Float[MAX_PLAYERS]) = "float", 0.0;
static uvar(Float: test_ArrayFloat[MAX_PLAYERS][15]) = "array-float", 0.0;
static uvar(bool: test_Bool[MAX_PLAYERS]) = "bool", false;
static uvar(bool: test_ArrayBool[MAX_PLAYERS][15]) = "array-bool", false;
static uvar( test_Int[MAX_PLAYERS]) = "int", 0;
static uvar( test_ArrayInt[MAX_PLAYERS][15]) = "array-int", 0;
static uvar(BitArray: test_BitArray<MAX_PLAYERS>) = "bitarray", false;
Test:Init()
{
const playerid = 0;
// 1. Adcionamos um player(nгo registrado)
AddFakePlayer(playerid, "Unknown_User", "127.0.0.1", {130, 230});
}
hook OnPlayerEvent(playerid, playerEvents:eventid)
{
static step;
if(eventid == SELECT_TEXTDRAW)
{
// 2. Testar outro botгo
if(!step)
{
++step;
clickTextDraw(playerid, loginSignIn[2]);
}
else
{
// 3. Registrar o player
step = 0;
clickTextDraw(playerid, loginSignUp[2]);
}
return;
}
// Certificar de que quando clica no botгo logar, sem estar conectado nada aconteзa
ASSERT(!step);
if(eventid == DIALOG_INPUT)
{
// 3. Registrar o player
inputDialog(playerid, "12345");
}
}
hook OnPlayerLogin(playerid, loginType:type)
{
// 3. Registrar o player
if(type == login_byRegister)
{
// Seleciona os dados da tabela
format(gs_QueryBuffer, sizeof(gs_QueryBuffer), "SELECT * from `"#USERS_TABLE"` where `id`='%d';", getPlayerIDG(playerid));
new Cache:cache = mysql_query(cHandle, gs_QueryBuffer);
// Obtem o numero de linhas existentes
new rows;
cache_get_row_count(rows);
// Certificar que a linha existe
ASSERT(rows == 1);
// 4. Checa no banco de dados se os dados foram inseridos
new
value_Arrays[15*15], // Salvo em strings, depois convertidos para indices
value_String[15],
Float:value_Float,
Float:value_ArrayFloat[15],
value_Bool,
bool:value_ArrayBool[15],
value_Int,
value_ArrayInt[15],
value_BitArray
;
cache_get_value_name(0, "string", value_String);
ASSERT(strcmp(value_String, test_String[playerid]));
cache_get_value_name_float(0, "float", value_Float);
ASSERT(value_Float == test_Float[playerid]);
cache_get_value_name(0, "array-float", value_Arrays);
sscanf(value_Arrays, "p<,>a<f>[15]", value_ArrayFloat)
ASSERT(arraycmp(value_ArrayFloat, test_ArrayFloat[plyerid]));
cache_get_value_name_int(0, "bool", value_Bool);
ASSERT(value_Bool == test_Bool[playerid]);
cache_get_value_name(0, "array-bool", value_Arrays);
sscanf(value_Arrays, "p<,>a<d>[15]", _:value_ArrayBool)
ASSERT(arraycmp(value_ArrayBool, test_ArrayBool[plyerid]));
cache_get_value_name_int(0, "int", value_Int);
ASSERT(value_Int == test_Int[playerid]);
cache_get_value_name(0, "array-int", value_Arrays);
sscanf(value_Arrays, "p<,>a<d>[15]", value_ArrayInt)
ASSERT(arraycmp(value_ArrayInt, test_ArrayInt[plyerid]));
cache_get_value_name_int(0, "bitarray", value_BitArray);
ASSERT(value_BitArray == _:Bit_Get(test_BitArray, playerid));
}
}