class.c 913 Bytes
#include <assert.h>
#include <json/json.h>

#include "token/cclass.h"
#include "class.h"

char _called;

INIT_CCLASS(MOCK_CLASS);

__construct(MOCK_CLASS)
{
    _called = 1;
    _this->value = va_arg(* params, int);
}

__jsonConst(MOCK_CLASS)
{
    _called = 1;
    assert(json_type_int == json_object_get_type(json));

    _this->value = json_object_get_int(json);
}

__clear(MOCK_CLASS) {}

__destruct(MOCK_CLASS)
{
    _called = 1;
}

__toJson(MOCK_CLASS)
{
    *json   = json_object_new_int(_this->value);
    _called = 1;
}

/**
 * ~~~ method implementations ~~~~~~~~
 */

int
mock_class_getValue(MOCK_CLASS _this)
{
    return _this->value;
}

void
mock_class_setValue(MOCK_CLASS _this, int value)
{
    _this->value = value;
}

/**
 * ~~~ helper for mock assertions ~~~~~~~~
 */
void *
getConstruct()
{
    return __construct;
}

void *
getJsonConst()
{
    return __jsonConst;
}
// vim: set et ts=4 sw=4: