void test_want(Constraint *constraint, const char *function, intptr_t actual, const char *test_file, int test_line, TestReporter *reporter) { char *message; char parameter_name_actual_string[255]; if (parameters_are_not_valid_for(constraint, actual)) { message = validation_failure_message_for(constraint, actual); (*reporter->assert_true)( reporter, test_file, test_line, false, message); free(message); return; } snprintf(parameter_name_actual_string, sizeof(parameter_name_actual_string) - 1, "[%s] parameter in [%s]", constraint->parameter_name, function); message = constraint->failure_message(constraint, parameter_name_actual_string, actual); (*reporter->assert_true)( reporter, test_file, test_line, (*constraint->compare)(constraint, actual), message); free(message); }
bool parameters_are_not_valid_for(Constraint *constraint, intptr_t actual) { char *message = validation_failure_message_for(constraint, actual); bool not_valid = (strlen(message) > 0); free(message); return not_valid; }
void assert_that_(const char *file, int line, const char *actual_string, intptr_t actual, Constraint* constraint) { char *failure_message; if (NULL != constraint && is_not_comparing(constraint)) { (*get_test_reporter()->assert_true)( get_test_reporter(), file, line, false, "\tGot constraint of type [%s], but they are not allowed for assertions, only in mock expectations.", constraint->name); constraint->destroy(constraint); return; } if (parameters_are_not_valid_for(constraint, actual)) { char *validation_message = validation_failure_message_for(constraint, actual); (*get_test_reporter()->assert_true)( get_test_reporter(), file, line, false, validation_message); constraint->destroy(constraint); free(validation_message); return; } failure_message = constraint->failure_message(constraint, actual_string, actual); (*get_test_reporter()->assert_true)( get_test_reporter(), file, line, (*constraint->compare)(constraint, actual), failure_message ); constraint->destroy(constraint); free(failure_message); }
static void set_contents(Constraint *constraint, const char *function, intptr_t actual, const char *test_file, int test_line, TestReporter *reporter) { char *message; (void)function; if (parameters_are_not_valid_for(constraint, actual)) { message = validation_failure_message_for(constraint, actual); (*reporter->assert_true)( reporter, test_file, test_line, false, message); free(message); return; } memmove((void *)actual, (void *)constraint->expected_value, constraint->size_of_expected_value); }