コード例 #1
0
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);
}
コード例 #2
0
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;
}
コード例 #3
0
ファイル: assertions.c プロジェクト: hean01-cendio/cgreen
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);
}
コード例 #4
0
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);
}