#include <sc_unittest.h>
#include <sc_error.h>


static void UT_SC_getError(void);
static void UT_SC_setError(void);
static void UT_SC_getErrorMessage(void);
static void UT_SC_getErrorMessage_ENOMEM(void);

void UT_regist_sc_error(void)
{
	SC_Unittest_add("SC_getError"              , UT_SC_getError);
	SC_Unittest_add("SC_setError"              , UT_SC_setError);
	SC_Unittest_add("SC_getErrorMessage"       , UT_SC_getErrorMessage);
	SC_Unittest_add("SC_getErrorMessage_ENOMEM", UT_SC_getErrorMessage_ENOMEM);
}


static
void UT_SC_getError(void)
{
	int errorNum = 0;
	SC_setError(SC_ETIMEDOUT);
	errorNum = SC_getError();
	SC_assertNumber(SC_ETIMEDOUT, errorNum);
}


static
void UT_SC_setError(void)
{
	int errorNum = 0;
	SC_setError(SC_ENOMEM);
	errorNum = SC_getError();
	SC_assertNumber(SC_ENOMEM, errorNum);
}


static
void UT_SC_getErrorMessage(void)
{
	char buff[4096];
	bool result = SC_getErrorMessage(SC_ENOMEM, buff, sizeof(buff));
	SC_assert(result);
}


static
void UT_SC_getErrorMessage_ENOMEM(void)
{
	char buff[1];
	bool result = SC_getErrorMessage(SC_ENOMEM, buff, sizeof(buff));
	SC_assert(!result);
}

