附录A TestSource.cpp
1 #include "TestHeader.h"
2 #include "TestDriver.h"
3 #include "Logger.h"
4 #include "cmapexamplesmsengine.h"
5 #include <msvstore.h>
6
7 // ========== logger ==========
8 #include <flogger.h>
9 #define __DEFINE_LITERAL(aLiteralName, aStr) _LIT(aLiteralName, aStr);
10 _LIT( _KLogDir, "MyLogs" );
11 _LIT( _KLogFile, "test.txt" );
12 #define _LOGF( aEllipsis )\
13 {\
14 _LIT(_KFormat,"%S(%d):%Ld:%S: ");\
15 __DEFINE_LITERAL( _KFile, __FILE__ );\
16 TPtrC8 _func8((TUint8*)__FUNCTION__);\
17 TBuf<40> _func;\
18 _func.Copy(_func8.Right(40));\
19 TBuf<256> _log;\
20 _log.Format(_KFormat, &_KFile, __LINE__, RThread().Id().Id(), &_func);\
21 _log.AppendFormat aEllipsis;\
22 RFileLogger::Write( _KLogDir, _KLogFile, EFileLoggingModeAppend, _log );\
23 }
24 #define _HERE() _LOGF((KNullDesC))
25
26 // ========== stubbed / mocked implementations ==========
27 class DummyObserver : public MSmsEngineObserver
28 {
29 virtual void MessageSent()
30 {
31 _LOGF((_L("DummyObserver::MessageSent()")));
32 }
33 virtual void MessageReceived(TDesC& aMsg, TDesC& aAddr)
34 {
35 _LOGF((_L("DummyObserver::MessageReceived(%S, %S)"), &aMsg, &aAddr));
36 }
37 virtual void MessageRequested(TDesC& aMsg, TDesC& aAddr)
38 {
39 _LOGF((_L("DummyObserver::MessageRequested(%S, %S)"), &aMsg, &aAddr));
40 }
41 virtual void SmsEngineError(TInt aErrorCode)
42 {
43 _LOGF((_L("DummyObserver::SmsEngineError(%d)"), aErrorCode));
44 }
45 };
46
47 void RSendAsMessage::AddRecipientL(const TDesC16& a, RSendAsMessage::TSendAsRecipientType b)
48 {
49 _LOGF((_L("RSendAsMessage::AddRecipientL(%S, %d)"), &a, b));
50 }
51
52 void RSendAsMessage::Close()
53 {
54 _LOGF((_L("RSendAsMessage::Close()")));
55 }
56
57 void RSendAsMessage::CreateL(RSendAs &a, TUid b)
58 {
59 _LOGF((_L("RSendAsMessage::CreateL(%d, %d)"), &a, b));
60 }
61
62 void RSendAsMessage::SendMessage(class TRequestStatus &)
63 {
64 _LOGF((_L("RSendAsMessage::SendMessage()")));
65 }
66
67 // global function pointer
68 void (*gRSendAsMessage_SetBodyTextLHook)() = NULL;
69
70 void RSendAsMessage::SetBodyTextL(const TDesC16& a)
71 {
72 _LOGF((_L("RSendAsMessage::SetBodyTextL(%S)"), &a));
73 if(gRSendAsMessage_SetBodyTextLHook)
74 gRSendAsMessage_SetBodyTextLHook();
75 }
76
77 CMsvEntry * CMsvEntry::NewL(CMsvSession &, long, TMsvSelectionOrdering const &)
78 {
79 _LOGF((_L("CMsvEntry::NewL()")));
80 return NULL;
81 }
82
83 CMsvSession * CMsvSession::OpenAsyncL(MMsvSessionObserver &)
84 {
85 _LOGF((_L("CMsvSession::OpenAsyncL()")));
86 return NULL;
87 }
88
89 CMsvStore * CMsvEntry::ReadStoreL(void)
90 {
91 _LOGF((_L("CMsvEntry::ReadStoreL()")));
92 return NULL;
93 }
94
95 TInt CMsvStore::HasBodyTextL(void) const
96 {
97 _LOGF((_L("CMsvStore::HasBodyTextL()")));
98 return KErrNone;
99 }
100
101 TInt RSendAs::Connect(void)
102 {
103 _LOGF((_L("RSendAs::Connect()")));
104 return KErrNone;
105 }
106
107 TMsvSelectionOrdering::TMsvSelectionOrdering(void)
108 {
109 _LOGF((_L("TMsvSelectionOrdering::TMsvSelectionOrdering()")));
110 }
111
112 void CMsvEntry::DeleteL(long)
113 {
114 _LOGF((_L("TCMsvEntry::DeleteL()")));
115 }
116
117 void CMsvEntry::SetEntryL(long)
118 {
119 _LOGF((_L("CMsvEntry::SetEntryL()")));
120 }
121
122 void CMsvStore::RestoreBodyTextL(CRichText &)
123 {
124 _LOGF((_L("CMsvStore::RestoreBodyTextL()")));
125 }
126
127 // ========== test suite ==========
128 void CMapExampleSmsEngineTest::setUp()
129 {
130 _HERE();
131 gRSendAsMessage_SetBodyTextLHook = NULL;
132 iObserver = new (ELeave) DummyObserver();
133 iTarget = CMapExampleSmsEngine::NewL(iObserver);
134 }
135
136 void CMapExampleSmsEngineTest::tearDown()
137 {
138 _HERE();
139 delete iTarget;
140 delete iObserver;
141 }
142
143 void CMapExampleSmsEngineTest::testParseMsgCoordinates()
144 {
145 _HERE();
146 }
147
148 void CMapExampleSmsEngineTest::testParseMsgRequestType()
149 {
150 _HERE();
151 }
152
153 void CMapExampleSmsEngineTest::testParseMsgUid()
154 {
155 _HERE();
156 iTarget->ParseMsgUid(_L("REQ E01FF1Cd"));
157 }
158
159 void CMapExampleSmsEngineTest::testSendMessage()
160 {
161 _HERE();
162 iTarget->SendSmsL(_L("12345678"), _L("abcd"));
163 }
164
165 void ThrowExceptionL()
166 {
167 _HERE();
168 User::Leave(KErrGeneral);
169 }
170
171 void CMapExampleSmsEngineTest::testSendMessageExceptions()
172 {
173 _HERE();
174 gRSendAsMessage_SetBodyTextLHook = ThrowExceptionL;
175 TS_ASSERT_THROWS_ANYTHING(
176 iTarget->SendSmsL(_L("12345678"), _L("abcd")));
177 }
178
2 #include "TestDriver.h"
3 #include "Logger.h"
4 #include "cmapexamplesmsengine.h"
5 #include <msvstore.h>
6
7 // ========== logger ==========
8 #include <flogger.h>
9 #define __DEFINE_LITERAL(aLiteralName, aStr) _LIT(aLiteralName, aStr);
10 _LIT( _KLogDir, "MyLogs" );
11 _LIT( _KLogFile, "test.txt" );
12 #define _LOGF( aEllipsis )\
13 {\
14 _LIT(_KFormat,"%S(%d):%Ld:%S: ");\
15 __DEFINE_LITERAL( _KFile, __FILE__ );\
16 TPtrC8 _func8((TUint8*)__FUNCTION__);\
17 TBuf<40> _func;\
18 _func.Copy(_func8.Right(40));\
19 TBuf<256> _log;\
20 _log.Format(_KFormat, &_KFile, __LINE__, RThread().Id().Id(), &_func);\
21 _log.AppendFormat aEllipsis;\
22 RFileLogger::Write( _KLogDir, _KLogFile, EFileLoggingModeAppend, _log );\
23 }
24 #define _HERE() _LOGF((KNullDesC))
25
26 // ========== stubbed / mocked implementations ==========
27 class DummyObserver : public MSmsEngineObserver
28 {
29 virtual void MessageSent()
30 {
31 _LOGF((_L("DummyObserver::MessageSent()")));
32 }
33 virtual void MessageReceived(TDesC& aMsg, TDesC& aAddr)
34 {
35 _LOGF((_L("DummyObserver::MessageReceived(%S, %S)"), &aMsg, &aAddr));
36 }
37 virtual void MessageRequested(TDesC& aMsg, TDesC& aAddr)
38 {
39 _LOGF((_L("DummyObserver::MessageRequested(%S, %S)"), &aMsg, &aAddr));
40 }
41 virtual void SmsEngineError(TInt aErrorCode)
42 {
43 _LOGF((_L("DummyObserver::SmsEngineError(%d)"), aErrorCode));
44 }
45 };
46
47 void RSendAsMessage::AddRecipientL(const TDesC16& a, RSendAsMessage::TSendAsRecipientType b)
48 {
49 _LOGF((_L("RSendAsMessage::AddRecipientL(%S, %d)"), &a, b));
50 }
51
52 void RSendAsMessage::Close()
53 {
54 _LOGF((_L("RSendAsMessage::Close()")));
55 }
56
57 void RSendAsMessage::CreateL(RSendAs &a, TUid b)
58 {
59 _LOGF((_L("RSendAsMessage::CreateL(%d, %d)"), &a, b));
60 }
61
62 void RSendAsMessage::SendMessage(class TRequestStatus &)
63 {
64 _LOGF((_L("RSendAsMessage::SendMessage()")));
65 }
66
67 // global function pointer
68 void (*gRSendAsMessage_SetBodyTextLHook)() = NULL;
69
70 void RSendAsMessage::SetBodyTextL(const TDesC16& a)
71 {
72 _LOGF((_L("RSendAsMessage::SetBodyTextL(%S)"), &a));
73 if(gRSendAsMessage_SetBodyTextLHook)
74 gRSendAsMessage_SetBodyTextLHook();
75 }
76
77 CMsvEntry * CMsvEntry::NewL(CMsvSession &, long, TMsvSelectionOrdering const &)
78 {
79 _LOGF((_L("CMsvEntry::NewL()")));
80 return NULL;
81 }
82
83 CMsvSession * CMsvSession::OpenAsyncL(MMsvSessionObserver &)
84 {
85 _LOGF((_L("CMsvSession::OpenAsyncL()")));
86 return NULL;
87 }
88
89 CMsvStore * CMsvEntry::ReadStoreL(void)
90 {
91 _LOGF((_L("CMsvEntry::ReadStoreL()")));
92 return NULL;
93 }
94
95 TInt CMsvStore::HasBodyTextL(void) const
96 {
97 _LOGF((_L("CMsvStore::HasBodyTextL()")));
98 return KErrNone;
99 }
100
101 TInt RSendAs::Connect(void)
102 {
103 _LOGF((_L("RSendAs::Connect()")));
104 return KErrNone;
105 }
106
107 TMsvSelectionOrdering::TMsvSelectionOrdering(void)
108 {
109 _LOGF((_L("TMsvSelectionOrdering::TMsvSelectionOrdering()")));
110 }
111
112 void CMsvEntry::DeleteL(long)
113 {
114 _LOGF((_L("TCMsvEntry::DeleteL()")));
115 }
116
117 void CMsvEntry::SetEntryL(long)
118 {
119 _LOGF((_L("CMsvEntry::SetEntryL()")));
120 }
121
122 void CMsvStore::RestoreBodyTextL(CRichText &)
123 {
124 _LOGF((_L("CMsvStore::RestoreBodyTextL()")));
125 }
126
127 // ========== test suite ==========
128 void CMapExampleSmsEngineTest::setUp()
129 {
130 _HERE();
131 gRSendAsMessage_SetBodyTextLHook = NULL;
132 iObserver = new (ELeave) DummyObserver();
133 iTarget = CMapExampleSmsEngine::NewL(iObserver);
134 }
135
136 void CMapExampleSmsEngineTest::tearDown()
137 {
138 _HERE();
139 delete iTarget;
140 delete iObserver;
141 }
142
143 void CMapExampleSmsEngineTest::testParseMsgCoordinates()
144 {
145 _HERE();
146 }
147
148 void CMapExampleSmsEngineTest::testParseMsgRequestType()
149 {
150 _HERE();
151 }
152
153 void CMapExampleSmsEngineTest::testParseMsgUid()
154 {
155 _HERE();
156 iTarget->ParseMsgUid(_L("REQ E01FF1Cd"));
157 }
158
159 void CMapExampleSmsEngineTest::testSendMessage()
160 {
161 _HERE();
162 iTarget->SendSmsL(_L("12345678"), _L("abcd"));
163 }
164
165 void ThrowExceptionL()
166 {
167 _HERE();
168 User::Leave(KErrGeneral);
169 }
170
171 void CMapExampleSmsEngineTest::testSendMessageExceptions()
172 {
173 _HERE();
174 gRSendAsMessage_SetBodyTextLHook = ThrowExceptionL;
175 TS_ASSERT_THROWS_ANYTHING(
176 iTarget->SendSmsL(_L("12345678"), _L("abcd")));
177 }
178