mirror of https://github.com/ARMmbed/mbed-os.git
				
				
				
			Add UT for CEREG URC handler
							parent
							
								
									5778bc7326
								
							
						
					
					
						commit
						02de20acb6
					
				| 
						 | 
				
			
			@ -85,6 +85,89 @@ TEST_F(TestAT_CellularNetwork, Create)
 | 
			
		|||
    delete cn;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int expected_rat = 0;
 | 
			
		||||
int expected_status = 0;
 | 
			
		||||
int expected_cellid = 0;
 | 
			
		||||
 | 
			
		||||
void status_cb_urc(nsapi_event_t ev, intptr_t ptr)
 | 
			
		||||
{
 | 
			
		||||
    const cell_callback_data_t *data = (const cell_callback_data_t *)ptr;
 | 
			
		||||
    switch (ev) {
 | 
			
		||||
    case CellularRadioAccessTechnologyChanged:
 | 
			
		||||
        EXPECT_EQ(NSAPI_ERROR_OK, data->error);
 | 
			
		||||
        EXPECT_EQ(expected_rat, data->status_data);
 | 
			
		||||
        break;
 | 
			
		||||
    case CellularRegistrationStatusChanged:
 | 
			
		||||
        EXPECT_EQ(NSAPI_ERROR_OK, data->error);
 | 
			
		||||
        EXPECT_EQ(expected_status, data->status_data);
 | 
			
		||||
        break;
 | 
			
		||||
    case CellularCellIDChanged:
 | 
			
		||||
        EXPECT_EQ(NSAPI_ERROR_OK, data->error);
 | 
			
		||||
        EXPECT_EQ(expected_cellid, data->status_data);
 | 
			
		||||
        break;
 | 
			
		||||
    default:
 | 
			
		||||
        if (ev == NSAPI_EVENT_CONNECTION_STATUS_CHANGE) {
 | 
			
		||||
            EXPECT_EQ(NSAPI_STATUS_DISCONNECTED, (int)ptr);
 | 
			
		||||
        } else {
 | 
			
		||||
            FAIL();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TEST_F(TestAT_CellularNetwork, test_urc_creg)
 | 
			
		||||
{
 | 
			
		||||
    EventQueue que;
 | 
			
		||||
    FileHandle_stub fh1;
 | 
			
		||||
    ATHandler at(&fh1, que, 0, ",");
 | 
			
		||||
 | 
			
		||||
    AT_CellularNetwork cn(at);
 | 
			
		||||
    cn.attach(status_cb_urc);
 | 
			
		||||
 | 
			
		||||
    EXPECT_STREQ("+CEREG:", ATHandler_stub::urc_handlers[0].urc);
 | 
			
		||||
    EXPECT_STREQ("+CREG:", ATHandler_stub::urc_handlers[1].urc);
 | 
			
		||||
 | 
			
		||||
    // Connected to home network
 | 
			
		||||
    expected_rat = CellularNetwork::RAT_NB1;
 | 
			
		||||
    expected_status = CellularNetwork::RegisteredHomeNetwork;
 | 
			
		||||
    expected_cellid = 305463233;
 | 
			
		||||
 | 
			
		||||
    ATHandler_stub::int_count = 4;
 | 
			
		||||
    ATHandler_stub::int_valid_count_table[3] = 1; // [1] STAT, Registered to home network
 | 
			
		||||
    ATHandler_stub::int_valid_count_table[2] = 9; // [4] ACT, NB-IoT
 | 
			
		||||
    ATHandler_stub::int_valid_count_table[1] = 1; // [5] cause_type, skipped
 | 
			
		||||
    ATHandler_stub::int_valid_count_table[0] = 1; // [6] reject_cause, skipped
 | 
			
		||||
 | 
			
		||||
    ATHandler_stub::read_string_index = 4;
 | 
			
		||||
    ATHandler_stub::read_string_table[3] = "00C3"; // [2] LAC, 195
 | 
			
		||||
    ATHandler_stub::read_string_table[2] = "1234FFC1"; // [3] ci, 305463233
 | 
			
		||||
    ATHandler_stub::read_string_table[1] = "00100100"; // [7] active time
 | 
			
		||||
    ATHandler_stub::read_string_table[0] = "01000111"; // [8] periodic-tau
 | 
			
		||||
 | 
			
		||||
    ATHandler_stub::urc_handlers[0].cb();
 | 
			
		||||
 | 
			
		||||
    // Disconnected
 | 
			
		||||
    expected_rat = CellularNetwork::RAT_NB1;
 | 
			
		||||
    expected_status = CellularNetwork::NotRegistered;
 | 
			
		||||
    expected_cellid = 0;
 | 
			
		||||
 | 
			
		||||
    ATHandler_stub::int_count = 4;
 | 
			
		||||
    ATHandler_stub::int_valid_count_table[3] = 0; // [1] STAT, Not reqistered
 | 
			
		||||
    ATHandler_stub::int_valid_count_table[2] = 9; // [4] ACT, NB-IoT
 | 
			
		||||
    ATHandler_stub::int_valid_count_table[1] = 1; // [5] cause_type, skipped
 | 
			
		||||
    ATHandler_stub::int_valid_count_table[0] = 1; // [6] reject_cause, skipped
 | 
			
		||||
 | 
			
		||||
    ATHandler_stub::read_string_index = 4;
 | 
			
		||||
    ATHandler_stub::read_string_table[3] = "0000"; // [2] LAC, 0000
 | 
			
		||||
    ATHandler_stub::read_string_table[2] = "00000000"; // [3] ci, 000000000
 | 
			
		||||
    ATHandler_stub::read_string_table[1] = "00100100"; // [7] active time
 | 
			
		||||
    ATHandler_stub::read_string_table[0] = "01000111"; // [8] periodic-tau
 | 
			
		||||
 | 
			
		||||
    ATHandler_stub::urc_handlers[0].cb();
 | 
			
		||||
    ATHandler_stub::read_string_index = kRead_string_table_size;
 | 
			
		||||
    ATHandler_stub::read_string_value = NULL;
 | 
			
		||||
    ATHandler_stub::ssize_value = 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TEST_F(TestAT_CellularNetwork, test_AT_CellularNetwork_set_registration)
 | 
			
		||||
{
 | 
			
		||||
    EventQueue que;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue