// Multiple numbers should be extractable. static char* test_global_multiple_numbers(void) { data_processor_init("1|55555|0", '|'); ProcessingState* state = data_processor_get_global(); int num1 = data_processor_get_int(state); int num2 = data_processor_get_int(state); int num3 = data_processor_get_int(state); mu_assert(1 == num1 && 55555 == num2 && 0 == num3, "Multiple numbers not extracted from global state"); return 0; }
// Mixed values should be extractable from a single local state. static char* test_single_local_mixed(void) { ProcessingState* state = data_processor_create("8|This is a string!|0|6765444", '|'); int num1 = data_processor_get_int(state); char* string1 = data_processor_get_string(state); bool boolean1 = data_processor_get_bool(state); int num2 = data_processor_get_int(state); mu_assert(8 == num1 && 0 == strcmp("This is a string!", string1) && false == boolean1 && 6765444 == num2, "Mixed values not extracted from global state"); return 0; }
static void handle_update(char* data) { destroy_lines(); data_processor_init(data, '|'); num_lines = data_processor_get_int(); lines = malloc(sizeof(TubeLine*) * num_lines); for (uint8_t l = 0; l < num_lines; l += 1) { TubeLine* line = malloc(sizeof(TubeLine)); line->name = data_processor_get_string(); line->status = data_processor_get_string(); lines[l] = line; } update_handler(); }
// A single number should be extractable. static char* test_global_single_number(void) { data_processor_init("1", '|'); int num = data_processor_get_int(data_processor_get_global()); mu_assert(1 == num, "Single number not extracted from global state"); return 0; }