TestSource.cpp
#include "TestHeader.h"
#include "TestDriver.h"
#include "Logger.h"
#include "cmapexamplesmsengine.h"
#include <msvstore.h>
// ========== logger ==========
#include <flogger.h>
#define __DEFINE_LITERAL(aLiteralName, aStr) _LIT(aLiteralName, aStr);
_LIT( _KLogDir, "MyLogs" );
_LIT( _KLogFile, "test.txt" );
#define _LOGF( aEllipsis )\
{\
_LIT(_KFormat,"%S(%d):%Ld:%S: ");\
__DEFINE_LITERAL( _KFile, __FILE__ );\
TPtrC8 _func8((TUint8*)__FUNCTION__);\
TBuf<40> _func;\
_func.Copy(_func8.Right(40));\
TBuf<256> _log;\
_log.Format(_KFormat, &_KFile, __LINE__, RThread().Id().Id(), &_func);\
_log.AppendFormat aEllipsis;\
RFileLogger::Write( _KLogDir, _KLogFile, EFileLoggingModeAppend, _log );\
}
#define _HERE() _LOGF((KNullDesC))
// ========== stubbed / mocked implementations ==========
class DummyObserver : public MSmsEngineObserver
{
virtual void MessageSent()
{
_LOGF((_L("DummyObserver::MessageSent()")));
}
virtual void MessageReceived(TDesC& aMsg, TDesC& aAddr)
{
_LOGF((_L("DummyObserver::MessageReceived(%S, %S)"), &aMsg, &aAddr));
}
virtual void MessageRequested(TDesC& aMsg, TDesC& aAddr)
{
_LOGF((_L("DummyObserver::MessageRequested(%S, %S)"), &aMsg, &aAddr));
}
virtual void SmsEngineError(TInt aErrorCode)
{
_LOGF((_L("DummyObserver::SmsEngineError(%d)"), aErrorCode));
}
};
void RSendAsMessage::AddRecipientL(const TDesC16& a, RSendAsMessage::TSendAsRecipientType b)
{
_LOGF((_L("RSendAsMessage::AddRecipientL(%S, %d)"), &a, b));
}
void RSendAsMessage::Close()
{
_LOGF((_L("RSendAsMessage::Close()")));
}
void RSendAsMessage::CreateL(RSendAs &a, TUid b)
{
_LOGF((_L("RSendAsMessage::CreateL(%d, %d)"), &a, b));
}
void RSendAsMessage::SendMessage(class TRequestStatus &)
{
_LOGF((_L("RSendAsMessage::SendMessage()")));
}
// global function pointer
void (*gRSendAsMessage_SetBodyTextLHook)() = NULL;
void RSendAsMessage::SetBodyTextL(const TDesC16& a)
{
_LOGF((_L("RSendAsMessage::SetBodyTextL(%S)"), &a));
if(gRSendAsMessage_SetBodyTextLHook)
gRSendAsMessage_SetBodyTextLHook();
}
CMsvEntry * CMsvEntry::NewL(CMsvSession &, long, TMsvSelectionOrdering const &)
{
_LOGF((_L("CMsvEntry::NewL()")));
return NULL;
}
CMsvSession * CMsvSession::OpenAsyncL(MMsvSessionObserver &)
{
_LOGF((_L("CMsvSession::OpenAsyncL()")));
return NULL;
}
CMsvStore * CMsvEntry::ReadStoreL(void)
{
_LOGF((_L("CMsvEntry::ReadStoreL()")));
return NULL;
}
TInt CMsvStore::HasBodyTextL(void) const
{
_LOGF((_L("CMsvStore::HasBodyTextL()")));
return KErrNone;
}
TInt RSendAs::Connect(void)
{
_LOGF((_L("RSendAs::Connect()")));
return KErrNone;
}
TMsvSelectionOrdering::TMsvSelectionOrdering(void)
{
_LOGF((_L("TMsvSelectionOrdering::TMsvSelectionOrdering()")));
}
void CMsvEntry::DeleteL(long)
{
_LOGF((_L("TCMsvEntry::DeleteL()")));
}
void CMsvEntry::SetEntryL(long)
{
_LOGF((_L("CMsvEntry::SetEntryL()")));
}
void CMsvStore::RestoreBodyTextL(CRichText &)
{
_LOGF((_L("CMsvStore::RestoreBodyTextL()")));
}
// ========== test suite ==========
void CMapExampleSmsEngineTest::setUp()
{
_HERE();
gRSendAsMessage_SetBodyTextLHook = NULL;
iObserver = new (ELeave) DummyObserver();
iTarget = CMapExampleSmsEngine::NewL(iObserver);
}
void CMapExampleSmsEngineTest::tearDown()
{
_HERE();
delete iTarget;
delete iObserver;
}
void CMapExampleSmsEngineTest::testParseMsgCoordinates()
{
_HERE();
}
void CMapExampleSmsEngineTest::testParseMsgRequestType()
{
_HERE();
}
void CMapExampleSmsEngineTest::testParseMsgUid()
{
_HERE();
iTarget->ParseMsgUid(_L("REQ E01FF1Cd"));
}
void CMapExampleSmsEngineTest::testSendMessage()
{
_HERE();
iTarget->SendSmsL(_L("12345678"), _L("abcd"));
}
void ThrowExceptionL()
{
_HERE();
User::Leave(KErrGeneral);
}
void CMapExampleSmsEngineTest::testSendMessageExceptions()
{
_HERE();
gRSendAsMessage_SetBodyTextLHook = ThrowExceptionL;
TS_ASSERT_THROWS_ANYTHING(
iTarget->SendSmsL(_L("12345678"), _L("abcd"))
);
}