Skip to content

Commit f848621

Browse files
author
Teppo Järvelin
committed
Cellular: added more CellularInformation unit tests.
1 parent f3424da commit f848621

File tree

7 files changed

+89
-10
lines changed

7 files changed

+89
-10
lines changed

features/cellular/UNITTESTS/at/at_cellularinformation/at_cellularinformationtest.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,3 +52,7 @@ TEST(AT_CellularInformation, test_AT_CellularInformation_get_revision)
5252
unit->test_AT_CellularInformation_get_revision();
5353
}
5454

55+
TEST(AT_CellularInformation, test_AT_CellularInformation_get_serial_number)
56+
{
57+
unit->test_AT_CellularInformation_get_serial_number();
58+
}

features/cellular/UNITTESTS/at/at_cellularinformation/test_at_cellularinformation.cpp

Lines changed: 68 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include "ATHandler_stub.h"
2121
#include "EventQueue.h"
2222
#include "FileHandle_stub.h"
23+
#include "AT_CellularBase_stub.h"
2324
#include "ATHandler.h"
2425
#include "AT_CellularInformation.h"
2526
#include "AT_CellularBase.h"
@@ -43,10 +44,19 @@ void Test_AT_CellularInformation::test_AT_CellularInformation_get_manufacturer()
4344
ATHandler ah(&fh, eq, 0, ",");
4445
AT_CellularInformation aci(ah);
4546

46-
ATHandler_stub::nsapi_error_value = 8;
47+
ATHandler_stub::nsapi_error_value = NSAPI_ERROR_OK;
48+
ATHandler_stub::read_string_value = "some";
49+
ATHandler_stub::ssize_value = 4;
4750

4851
char buf[8];
49-
CHECK(8 == aci.get_manufacturer(buf, 8));
52+
CHECK(NSAPI_ERROR_OK == aci.get_manufacturer(buf, 8));
53+
CHECK(strcmp("some", buf) == 0);
54+
55+
ATHandler_stub::nsapi_error_value = NSAPI_ERROR_DEVICE_ERROR;
56+
ATHandler_stub::ssize_value = -1;
57+
buf[0] = 0;
58+
CHECK(NSAPI_ERROR_DEVICE_ERROR == aci.get_manufacturer(buf, 8));
59+
CHECK(strlen(buf) == 0);
5060
}
5161

5262
void Test_AT_CellularInformation::test_AT_CellularInformation_get_model()
@@ -56,10 +66,18 @@ void Test_AT_CellularInformation::test_AT_CellularInformation_get_model()
5666
ATHandler ah(&fh, eq, 0, ",");
5767
AT_CellularInformation aci(ah);
5868

59-
ATHandler_stub::nsapi_error_value = 7;
60-
69+
ATHandler_stub::nsapi_error_value = NSAPI_ERROR_OK;
70+
ATHandler_stub::read_string_value = "model";
71+
ATHandler_stub::ssize_value = 5;
6172
char buf[8];
62-
CHECK(7 == aci.get_model(buf, 8));
73+
CHECK(NSAPI_ERROR_OK == aci.get_model(buf, 8));
74+
CHECK(strcmp("model", buf) == 0);
75+
76+
ATHandler_stub::nsapi_error_value = NSAPI_ERROR_DEVICE_ERROR;
77+
ATHandler_stub::ssize_value = -1;
78+
buf[0] = 0;
79+
CHECK(NSAPI_ERROR_DEVICE_ERROR == aci.get_model(buf, 8));
80+
CHECK(strlen(buf) == 0);
6381
}
6482

6583
void Test_AT_CellularInformation::test_AT_CellularInformation_get_revision()
@@ -71,11 +89,53 @@ void Test_AT_CellularInformation::test_AT_CellularInformation_get_revision()
7189
//Used heap var here to visit heap constructor
7290
AT_CellularInformation *aci = new AT_CellularInformation(ah);
7391

74-
ATHandler_stub::nsapi_error_value = 6;
92+
ATHandler_stub::nsapi_error_value = NSAPI_ERROR_OK;
93+
ATHandler_stub::read_string_value = "revision";
94+
ATHandler_stub::ssize_value = 8;
7595

76-
char buf[8];
77-
CHECK(6 == aci->get_revision(buf, 8));
96+
char buf[9];
97+
CHECK(NSAPI_ERROR_OK == aci->get_revision(buf, 9));
98+
CHECK(strcmp("revision", buf) == 0);
99+
100+
ATHandler_stub::nsapi_error_value = NSAPI_ERROR_DEVICE_ERROR;
101+
ATHandler_stub::ssize_value = -1;
102+
buf[0] = 0;
103+
CHECK(NSAPI_ERROR_DEVICE_ERROR == aci->get_revision(buf, 8));
104+
CHECK(strlen(buf) == 0);
78105

79106
delete aci;
80107
}
81108

109+
void Test_AT_CellularInformation::test_AT_CellularInformation_get_serial_number()
110+
{
111+
EventQueue eq;
112+
FileHandle_stub fh;
113+
ATHandler ah(&fh, eq, 0, ",");
114+
AT_CellularInformation aci(ah);
115+
116+
ATHandler_stub::nsapi_error_value = NSAPI_ERROR_OK;
117+
ATHandler_stub::read_string_value = "1234567";
118+
ATHandler_stub::ssize_value = 7;
119+
char buf[8];
120+
121+
CHECK(NSAPI_ERROR_OK == aci.get_serial_number(buf, 8, CellularInformation::SN));
122+
CHECK(strcmp("1234567", buf) == 0);
123+
124+
ATHandler_stub::nsapi_error_value = NSAPI_ERROR_DEVICE_ERROR;
125+
ATHandler_stub::ssize_value = -1;
126+
buf[0] = 0;
127+
CHECK(NSAPI_ERROR_DEVICE_ERROR == aci.get_serial_number(buf, 8, CellularInformation::SN));
128+
CHECK(strlen(buf) == 0);
129+
130+
AT_CellularBase_stub::supported_bool = false;
131+
CHECK(NSAPI_ERROR_UNSUPPORTED == aci.get_serial_number(buf, 8, CellularInformation::IMEI));
132+
CHECK(strlen(buf) == 0);
133+
134+
ATHandler_stub::nsapi_error_value = NSAPI_ERROR_OK;
135+
ATHandler_stub::read_string_value = "1234567";
136+
ATHandler_stub::ssize_value = 7;
137+
AT_CellularBase_stub::supported_bool = true;
138+
CHECK(NSAPI_ERROR_OK == aci.get_serial_number(buf, 8, CellularInformation::IMEI));
139+
CHECK(strcmp("1234567", buf) == 0);
140+
}
141+

features/cellular/UNITTESTS/at/at_cellularinformation/test_at_cellularinformation.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ class Test_AT_CellularInformation
2929
void test_AT_CellularInformation_get_model();
3030

3131
void test_AT_CellularInformation_get_revision();
32+
33+
void test_AT_CellularInformation_get_serial_number();
3234
};
3335

3436
#endif // TEST_AT_CELLULARINFORMATION_H

features/cellular/UNITTESTS/stubs/ATHandler_stub.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ ssize_t ATHandler::read_string(char *buf, size_t size, bool read_even_stop_tag)
164164

165165
if (ATHandler_stub::read_string_index == kRead_string_table_size) {
166166
if (ATHandler_stub::read_string_value && ATHandler_stub::ssize_value >= 0) {
167-
memcpy(buf, ATHandler_stub::read_string_value, ATHandler_stub::ssize_value);
167+
memcpy(buf, ATHandler_stub::read_string_value, ATHandler_stub::ssize_value+1);
168168
}
169169
return ATHandler_stub::ssize_value;
170170
}

features/cellular/UNITTESTS/stubs/AT_CellularBase_stub.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ using namespace mbed;
2525
ATHandler *AT_CellularBase_stub::handler_value = NULL;
2626
ATHandler *AT_CellularBase_stub::handler_at_constructor_value = NULL;
2727
device_err_t AT_CellularBase_stub::device_err_value;
28+
bool AT_CellularBase_stub::supported_bool = true;
2829

2930
AT_CellularBase::AT_CellularBase(ATHandler& at) : _at(at)
3031
{
@@ -43,5 +44,5 @@ device_err_t AT_CellularBase::get_device_error() const
4344

4445
bool AT_CellularBase::is_supported(SupportedFeature feature)
4546
{
46-
return true;
47+
return AT_CellularBase_stub::supported_bool;
4748
}

features/cellular/UNITTESTS/stubs/AT_CellularBase_stub.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,5 @@ namespace AT_CellularBase_stub {
2121
extern mbed::ATHandler *handler_value;
2222
extern mbed::ATHandler *handler_at_constructor_value;
2323
extern mbed::device_err_t device_err_value;
24+
extern bool supported_bool;
2425
}

features/cellular/UNITTESTS/stubs/SocketAddress_stub.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,10 @@ SocketAddress::SocketAddress(const SocketAddress &addr)
7373
{
7474
}
7575

76+
SocketAddress::~SocketAddress()
77+
{
78+
}
79+
7680
bool SocketAddress::set_ip_address(const char *addr)
7781
{
7882
return false;
@@ -123,6 +127,13 @@ SocketAddress::operator bool() const
123127
return false;
124128
}
125129

130+
SocketAddress &SocketAddress::operator=(const SocketAddress &addr)
131+
{
132+
set_addr(addr.get_addr());
133+
set_port(addr.get_port());
134+
return *this;
135+
}
136+
126137
bool operator==(const SocketAddress &a, const SocketAddress &b)
127138
{
128139
return false;

0 commit comments

Comments
 (0)