packetTest.c 1.58 KB
#include <stdio.h>

#include "runtest.h"
#include "token/cclass.h"
#include "token/packet.h"
#include "token/dyntype.h"


const char testname[]  = "packetTest";
PACKET packet = NULL;


static
int
__setUp()
{
    packet = new(PACKET, NULL);

    ASSERT_INSTANCE_OF(PACKET, packet);
    return TEST_OK;
}
int (* const setUp)() = __setUp;

static
int
__tearDown()
{
    if (NULL != packet) {
        ASSERT_OBJECT(packet);
        delete(&packet);
    }

    return TEST_OK;
}
int (* const tearDown)() = __tearDown;

static
int
testDefaultInit()
{
    ASSERT_INSTANCE_OF(PACKET, packet);
    ASSERT_NULL(packet_getHeader(packet));
    ASSERT_NULL(packet_getData(packet));

    return TEST_OK;
}

static
int
testParamInit1()
{
    __tearDown();

    DYNTYPE header = dyntype_newInt(123);
    packet = new(PACKET, header, NULL);

    ASSERT_INSTANCE_OF(PACKET, packet);
    ASSERT_NULL(packet_getHeader(packet));
    ASSERT_NULL(packet_getData(packet));

    delete(&header);

    return TEST_OK;
}

static
int
testParamInit2()
{
    DYNTYPE header, data;

    __tearDown();

    packet = new(PACKET, dyntype_newInt(123), dyntype_newInt(321));

    ASSERT_INSTANCE_OF(PACKET, packet);

    header = packet_getHeader(packet);
    data   = packet_getData(packet);

    ASSERT_INSTANCE_OF(DYNTYPE, header);
    ASSERT_INSTANCE_OF(DYNTYPE, data);

    ASSERT_EQUAL(123, dyntype_getInt(header));
    ASSERT_EQUAL(321, dyntype_getInt(data));

    return TEST_OK;
}

const testfunc tests[] = {
    testDefaultInit,
    testParamInit1,
    testParamInit2
};
const size_t count = FUNCS_COUNT(tests);

// vim: set et ts=4 sw=4: