mirror of
https://github.com/jorenchik/testing-spring-2024.git
synced 2025-10-21 20:10:36 +00:00
feat: add to_string to ValidationStatus
This commit is contained in:
parent
7fd0c887ec
commit
e316beedbc
@ -1,6 +1,7 @@
|
||||
#include "./validation.hh"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string>
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
const Action kill = Action("kill", true);
|
||||
@ -16,6 +17,8 @@ int main(int argc, char *argv[]) {
|
||||
Player player2 = Player(420, "player2", role1, PlayerStatus::Alive);
|
||||
Room room1(1, "Room 1", 1710087364, RoomStatus::InProgress, {player1, player2});
|
||||
Room room2(2, "Room 2", 1710087384, RoomStatus::Ended, {});
|
||||
printf("The action validation result is %u\n", validated_action);
|
||||
ValidationStatus validated_action = validate_action(&player1, &kill, &room1, &relatedEvents, &player2);
|
||||
std::string validated_action_str = ValidationStatusUtils::to_string(validated_action);
|
||||
printf("The action validation result is \"%s\"\n", validated_action_str.c_str());
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
@ -7,6 +7,7 @@
|
||||
#include "modules/room.hh"
|
||||
|
||||
#include <algorithm>
|
||||
#include <string>
|
||||
|
||||
/**
|
||||
* Check if a player belongs to a given room.
|
||||
@ -95,3 +96,20 @@ ValidationStatus validate_action(
|
||||
}
|
||||
return ValidationStatus::ActionProhibited;
|
||||
}
|
||||
|
||||
std::string ValidationStatusUtils::to_string(ValidationStatus status) {
|
||||
switch (status) {
|
||||
case ValidationStatus::PlayerNotInRoom: return "player not in room";
|
||||
case ValidationStatus::NoTargetPlayerSpecified: return "no target player specified";
|
||||
case ValidationStatus::RoomNotInProgress: return "room not in progress";
|
||||
case ValidationStatus::ActionDoesNotBelongToRole: return "action does not belong to role";
|
||||
case ValidationStatus::ActionProhibited: return "action prohibited";
|
||||
case ValidationStatus::NoActor: return "no actor";
|
||||
case ValidationStatus::NoAction: return "no action";
|
||||
case ValidationStatus::NoRole: return "no role";
|
||||
case ValidationStatus::NoRoom: return "no room";
|
||||
case ValidationStatus::NoRelatedEvents: return "no relevant events";
|
||||
case ValidationStatus::ActionValid: return "action valid";
|
||||
default: return "unknown validation status";
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
#include "modules/player.hh"
|
||||
#include "modules/room.hh"
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
enum class ValidationStatus {
|
||||
@ -19,6 +20,12 @@ enum class ValidationStatus {
|
||||
ActionValid,
|
||||
};
|
||||
|
||||
std::string validation_status_to_string(ValidationStatus status);
|
||||
|
||||
ValidationStatus
|
||||
validate_action(Player *actor, const Action *action, Room *room, std::vector<Event> *relatedEvents, Player *target);
|
||||
|
||||
class ValidationStatusUtils {
|
||||
public:
|
||||
static std::string to_string(ValidationStatus status);
|
||||
};
|
||||
|
||||
Loading…
Reference in New Issue
Block a user