/*************************************************************************** * * Função: PEC &Criar uma peça * ****/ Peca *PEC_criar(PecaTipo tipo, char caracter) { Peca *peca = (Peca*)malloc(sizeof(Peca)); if (peca==NULL) return NULL; PEC_setarTipo(peca, tipo); PEC_setarCaracter(peca, caracter); return peca; }/* Fim função: PEC &Criar uma peça */
TST_tpCondRet TST_EfetuarComando(char *ComandoTeste) { int inxLista = -1; int numLidos = -1; int CondRetEsp = -1; char StringDado[DIM_VALOR]; int i; int CondRet; int tipo = -1; int caracter = -1; StringDado[0] = 0; /* Efetuar reset de teste de peca */ if(strcmp(ComandoTeste, RESET_PECA_CMD) == 0) { for(i = 0; i < DIM_VT_PECA; i++) vtPecas[i] = NULL; return TST_CondRetOK; } /* fim ativa: Efetuar reset de teste de lista */ /* Testar Criar peca */ else if(strcmp(ComandoTeste, CRIAR_PECA_CMD) == 0) { numLidos = LER_LerParametros("iis", &inxLista, &tipo, StringDado); if((numLidos != 3) || (!ValidarInxPeca(inxLista, VAZIO))) return TST_CondRetParm; vtPecas[inxLista] = PEC_criar(tipo, StringDado[0]); return TST_CompararPonteiroNulo(1, vtPecas[inxLista], "Erro em ponteiro de nova peca."); } /* fim ativa: Testar Criar peca */ /* Testar Destruir peca*/ else if(strcmp(ComandoTeste, DESTRUIR_PECA_CMD) == 0) { numLidos = LER_LerParametros("ii", &inxLista, &CondRetEsp); if((numLidos != 2) || (!ValidarInxPeca(inxLista, INDIFERENTE))) return TST_CondRetParm; CondRet = PEC_destruir(vtPecas[inxLista]); vtPecas[inxLista] = NULL; return TST_CompararInt(CondRetEsp, CondRet, "Condicao de retorno errada ao destruir a peca.") ; } /* fim ativa: Testar Destruir peca */ /* Testar Obter Tipo da peca*/ else if(strcmp(ComandoTeste, OBTER_TIPO_CMD) == 0) { numLidos = LER_LerParametros("ii", &inxLista, &CondRetEsp); if((numLidos != 2) || (!ValidarInxPeca(inxLista, NAO_VAZIO))) return TST_CondRetParm; tipo = PEC_obterTipo(vtPecas[inxLista]); return TST_CompararInt(CondRetEsp, tipo, "Tipo errado ao obter tipo."); } /* fim ativa: Testar Obter Tipo da peca */ /* Testar Setar Tipo da peca*/ else if(strcmp(ComandoTeste, SETAR_TIPO_CMD) == 0) { numLidos = LER_LerParametros("iii", &inxLista, &tipo, &CondRetEsp); if((numLidos != 3) || (!ValidarInxPeca(inxLista, INDIFERENTE))) return TST_CondRetParm; CondRet = PEC_setarTipo(vtPecas[inxLista], tipo); return TST_CompararInt(CondRetEsp, CondRet, "Condicao de retorno errada ao setar tipo da peca."); } /* fim ativa: Testar Setar Tipo da peca */ /* Testar Obter Caracter da peca*/ else if(strcmp(ComandoTeste, OBTER_CARACTER_CMD) == 0) { numLidos = LER_LerParametros("is", &inxLista, StringDado); if((numLidos != 2) || (!ValidarInxPeca(inxLista, NAO_VAZIO))) return TST_CondRetParm; caracter = PEC_obterCaracter(vtPecas[inxLista]); return TST_CompararEspaco(StringDado, &caracter, 1, "Caracter errado ao obter caracter."); } /* fim ativa: Testar Obter Caracter da peca */ /* Testar Setar Caracter da peca*/ else if(strcmp(ComandoTeste, SETAR_CARACTER_CMD) == 0) { numLidos = LER_LerParametros("isi", &inxLista, StringDado, &CondRetEsp); if((numLidos != 3) || (!ValidarInxPeca(inxLista, INDIFERENTE))) return TST_CondRetParm; CondRet = PEC_setarCaracter(vtPecas[inxLista], StringDado[0]); return TST_CompararInt(CondRetEsp, CondRet, "Condicao de retorno errada ao setar caracter da peca."); } /* fim ativa: Testar Setar Caracter da peca */ return TST_CondRetNaoConhec; } /* Fim função: TPEC &Testar peca */