@ -21,73 +21,94 @@
# include <stdlib.h>
# include <stdlib.h>
# include "runtest.h"
# include "runtest.h"
# include "cc lass.h"
# include "class.h"
# include "logger.h"
# include "logger.h"
# include "mock/mock_logger.h"
int level = - 1 ;
char * msg = NULL ;
const char testname [ ] = " loggerTest " ;
Logger logger = NULL ;
static void
logfnct_mock ( int _level , const char * _msg )
static
int
__setUp ( )
{
{
level = _level ;
msg = malloc ( strlen ( _msg ) + 1 ) ;
strcpy ( msg , _msg ) ;
return TEST_OK ;
}
}
int ( * const setUp ) ( ) = __setUp ;
const char testname [ ] = " loggerTest " ;
LOGGER logger = NULL ;
static
int
__tearDown ( )
{
if ( NULL ! = logger ) {
ASSERT_OBJECT ( logger ) ;
delete ( logger ) ;
}
return TEST_OK ;
}
int ( * const tearDown ) ( ) = __tearDown ;
static
static
int
int
__setUp ( )
testLoggerLevel ( )
{
{
logger = new ( LOGGER , NULL ) ;
logger = new ( MockLogger , LOGGER_ERR ) ;
ASSERT_INSTANCE_OF ( MockLogger , logger ) ;
ASSERT_EQUAL ( LOGGER_ERR , logger - > min_level ) ;
loggerLog ( logger , LOGGER_WARNING , " foo %d %s " , 123 , " bar " ) ;
ASSERT_STRING_EQUAL ( " " , ( ( MockLogger ) logger ) - > message ) ;
ASSERT_INSTANCE_OF ( LOGGER , logger ) ;
loggerLog ( logger , LOGGER_ERR , " foo %d %s " , 123 , " bar " ) ;
ASSERT_STRING_EQUAL ( " [ERR] foo 123 bar " , ( ( MockLogger ) logger ) - > message ) ;
logger_add ( logger , logfnct_mock ) ;
mockLoggerCleanMsg ( ( MockLogger ) logger ) ;
loggerLog ( logger , LOGGER_CRIT , " foo %d %s " , 123 , " bar " ) ;
ASSERT_STRING_EQUAL ( " [CRIT] foo 123 bar " , ( ( MockLogger ) logger ) - > message ) ;
return TEST_OK ;
return TEST_OK ;
}
}
int ( * const setUp ) ( ) = __setUp ;
static
static
int
int
__tearDown ( )
testLoggerStderr ( )
{
{
level = - 1 ;
logger = new ( LoggerStderr , LOGGER_ERR ) ;
if ( NULL ! = msg ) {
free ( msg ) ;
msg = NULL ;
}
freopen ( " /dev/null " , " w " , stderr ) ;
loggerLog ( logger , LOGGER_ERR , " foo %d %s " , 123 , " bar " ) ;
if ( NULL ! = logger ) {
ASSERT_OBJECT ( logger ) ;
delete ( & logger ) ;
}
/**
* \ todo think about a way to assert something here
*/
return TEST_OK ;
return TEST_OK ;
}
}
int ( * const tearDown ) ( ) = __tearDown ;
static
static
int
int
testLogger ( )
testLoggerSyslog ( )
{
{
logger_log ( logger , LOGGER_ERR , " foo %d %s " , 123 , " bar " ) ;
logger = new ( LoggerSyslog , LOGGER_ERR ) ;
loggerLog ( logger , LOGGER_ERR , " foo %d %s " , 123 , " bar " ) ;
ASSERT_EQUAL ( LOGGER_ERR , level ) ;
ASSERT_STRING_EQUAL ( " foo 123 bar " , msg ) ;
/**
* \ todo think about a way to assert something here
*/
return TEST_OK ;
return TEST_OK ;
}
}
const testfunc tests [ ] = {
const testfunc tests [ ] = {
testLogger
testLoggerLevel ,
testLoggerStderr ,
testLoggerSyslog
} ;
} ;
const size_t count = FUNCS_COUNT ( tests ) ;
const size_t count = FUNCS_COUNT ( tests ) ;