Vodafone Test Suite

Dependencies:   mbed-rtos mbed HTTPClient VodafoneUSBModem

Committer:
ashleymills
Date:
Mon Sep 17 13:28:39 2012 +0000
Revision:
44:6d0ac4747f5b
Parent:
40:32b0558320ea
Child:
59:b091324302b4
Refactored names. Privatised virtuals to avoid bugs (bitten).

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nherriot 28:c630a04a7198 1 #pragma once
nherriot 28:c630a04a7198 2 #include "VodafoneTestCase.h"
nherriot 28:c630a04a7198 3
nherriot 30:dd2beda340c6 4 #define TEST_PHONE_NUMBER "+447717275049"
nherriot 28:c630a04a7198 5
nherriot 28:c630a04a7198 6 // this test case will wait to receive an SMS from the modem.
nherriot 28:c630a04a7198 7 // if the method that reports a message waiting returns an error it will fail.
nherriot 28:c630a04a7198 8 // if the method that returns the message from the mailbox returns an error it will fai.
nherriot 28:c630a04a7198 9 // it will report the test as failed if any of the above happens.
nherriot 28:c630a04a7198 10 // it waits forever for an SMS.
nherriot 28:c630a04a7198 11 // TODO: this should wait for a set time before failing.
nherriot 28:c630a04a7198 12
ashleymills 37:847f5f86e9ff 13 extern const char *gTest13Description;
ashleymills 40:32b0558320ea 14 extern const char *gIrregularMessage;
nherriot 31:9231acdde9ff 15
nherriot 28:c630a04a7198 16 class Test13 : public VodafoneTestCase {
nherriot 28:c630a04a7198 17 public:
nherriot 28:c630a04a7198 18
nherriot 28:c630a04a7198 19 char num[17];
nherriot 31:9231acdde9ff 20 char msg[160];
nherriot 28:c630a04a7198 21 size_t count;
nherriot 28:c630a04a7198 22
ashleymills 33:16126e029d58 23 Test13(VodafoneUSBModem *m) : VodafoneTestCase(m) {
ashleymills 33:16126e029d58 24 _description = gTest13Description;
ashleymills 33:16126e029d58 25 _testCaseNumber = 13;
nherriot 28:c630a04a7198 26 }
ashleymills 44:6d0ac4747f5b 27
ashleymills 44:6d0ac4747f5b 28 private:
nherriot 28:c630a04a7198 29
ashleymills 44:6d0ac4747f5b 30 virtual bool executeTest() {
nherriot 28:c630a04a7198 31 LOG("Test %d waiting for an SMS message...", _testCaseNumber);
nherriot 28:c630a04a7198 32 LOG("Receiving SMS from test phone, waiting for response.");
nherriot 28:c630a04a7198 33
nherriot 28:c630a04a7198 34 while(true)
nherriot 28:c630a04a7198 35 {
nherriot 28:c630a04a7198 36 LOG("Waiting for an SMS message...");
nherriot 28:c630a04a7198 37 int ret = _modem->getSMCount(&count);
nherriot 28:c630a04a7198 38 if(ret)
nherriot 28:c630a04a7198 39 {
nherriot 28:c630a04a7198 40 LOG("getSMCount returned %d", ret);
nherriot 28:c630a04a7198 41 Thread::wait(3000);
nherriot 28:c630a04a7198 42 continue;
nherriot 28:c630a04a7198 43 }
nherriot 28:c630a04a7198 44
nherriot 28:c630a04a7198 45 if( count > 0)
nherriot 28:c630a04a7198 46 {
nherriot 28:c630a04a7198 47 LOG("%d SMS to read", count);
nherriot 28:c630a04a7198 48 ret = _modem->getSM(num, msg, 64);
nherriot 31:9231acdde9ff 49
nherriot 31:9231acdde9ff 50 if(ret)
nherriot 31:9231acdde9ff 51 {
nherriot 31:9231acdde9ff 52 LOG("Error receiving sms. The method getSMS returned %d", ret);
nherriot 31:9231acdde9ff 53 return false;
nherriot 31:9231acdde9ff 54 }
nherriot 31:9231acdde9ff 55 LOG("The message is from number: %s and the message is: \"%s\"", num, msg);
ashleymills 40:32b0558320ea 56 if (strcmp (msg, gIrregularMessage) ==0)
nherriot 31:9231acdde9ff 57 {
nherriot 31:9231acdde9ff 58 LOG("Success receiving alphabet message matches the sent message");
nherriot 31:9231acdde9ff 59 return true;
nherriot 31:9231acdde9ff 60 }
nherriot 31:9231acdde9ff 61
nherriot 31:9231acdde9ff 62 return true;
nherriot 28:c630a04a7198 63 }
nherriot 28:c630a04a7198 64 Thread::wait(500);
nherriot 28:c630a04a7198 65 }
nherriot 28:c630a04a7198 66
nherriot 28:c630a04a7198 67 }
nherriot 16:c89d426c6175 68 };