unit: Add phonebook read parse test

This commit is contained in:
Denis Kenzior 2017-10-03 10:06:31 -05:00
parent 99501a7d1d
commit 7ce3f9a401
1 changed files with 48 additions and 0 deletions

View File

@ -93,6 +93,24 @@ static const struct message_data message_data_subscriber_ready_status = {
.binary_len = sizeof(message_binary_subscriber_ready_status),
};
static const unsigned char message_binary_phonebook_read[] = {
0x03, 0x00, 0x00, 0x80, 0x68, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4B, 0xF3, 0x84, 0x76,
0x1E, 0x6A, 0x41, 0xDB, 0xB1, 0xD8, 0xBE, 0xD2, 0x89, 0xC2, 0x5B, 0xDB,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x28, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x39, 0x00, 0x32, 0x00,
0x31, 0x00, 0x31, 0x00, 0x32, 0x00, 0x33, 0x00, 0x34, 0x00, 0x35, 0x00,
0x36, 0x00, 0x00, 0x00, 0x54, 0x00, 0x53, 0x00,
};
static const struct message_data message_data_phonebook_read = {
.tid = 2,
.binary = message_binary_phonebook_read,
.binary_len = sizeof(message_binary_phonebook_read),
};
static struct mbim_message *build_message(const struct message_data *msg_data)
{
static const int frag_size = 64;
@ -210,6 +228,33 @@ static void parse_subscriber_ready_status(const void *data)
mbim_message_unref(msg);
}
static void parse_phonebook_read(const void *data)
{
struct mbim_message *msg = build_message(data);
uint32_t n_items;
struct mbim_message_iter array;
uint32_t index;
char *number;
char *name;
bool r;
r = mbim_message_get_arguments(msg, "a(uss)", &n_items, &array);
assert(r);
assert(n_items == 1);
assert(mbim_message_iter_next_entry(&array, &index, &number, &name));
assert(index == 3);
assert(number);
assert(!strcmp(number, "921123456"));
assert(name);
assert(!strcmp(name, "TS"));
l_free(number);
l_free(name);
assert(!mbim_message_iter_next_entry(&array, &index, &number, &name));
mbim_message_unref(msg);
}
int main(int argc, char *argv[])
{
l_test_init(&argc, &argv);
@ -221,5 +266,8 @@ int main(int argc, char *argv[])
parse_subscriber_ready_status,
&message_data_subscriber_ready_status);
l_test_add("Phonebook Read (parse)", parse_phonebook_read,
&message_data_phonebook_read);
return l_test_run();
}