TEST(ndi_obj_id_map_test, c_api) {
    nas::ndi_obj_id_table_t  ndi_obj_ids;

    auto handle = nas_ndi_obj_id_table_create ();
    nas_ndi_obj_id_table_set_id (handle, 49,4);
    nas_ndi_obj_id_table_set_id (handle, 99,6);

    auto cps_obj = cps_api_object_create ();
    cps_api_attr_id_t  attr_id_list[] = {5,6};
    nas_ndi_obj_id_table_cps_serialize (handle, cps_obj,
                                        attr_id_list, 2);

    auto handle2 = nas_ndi_obj_id_table_create ();

    nas_ndi_obj_id_table_cps_unserialize (handle2, cps_obj,
                                          attr_id_list, 2);

    auto t1 = (nas::ndi_obj_id_table_t*) handle;
    auto t2 = (nas::ndi_obj_id_table_t*) handle2;

    EXPECT_TRUE (*t1 == *t2);
    ndi_obj_id_t  ndi_id;
    EXPECT_TRUE (nas_ndi_obj_id_table_get_id (handle, 49, &ndi_id));
    EXPECT_TRUE (ndi_id == 4);
    EXPECT_FALSE (nas_ndi_obj_id_table_get_id (handle, 48, &ndi_id));
}
t_std_error dn_nas_lag_get_ndi_ids (hal_ifindex_t if_index, nas_ndi_obj_id_table_handle_t ndi_id_data)
{
    if(ndi_id_data == NULL) {
        EV_LOG_ERR(ev_log_t_INTERFACE, 2, "INTF-C","Input ndi_data is NULL");
        return(STD_ERR(INTERFACE, PARAM, 0));
    }

    cps_api_get_params_t gp;
    cps_api_get_request_init(&gp);

    cps_api_object_t obj = cps_api_object_list_create_obj_and_append(gp.filters);
    t_std_error rc = STD_ERR(INTERFACE, FAIL, 0);

    do {
        if (!cps_api_key_from_attr_with_qual(cps_api_object_key(obj),
                DELL_BASE_IF_CMN_IF_INTERFACES_INTERFACE_OBJ, cps_api_qualifier_TARGET)) {
            break;
        }

        cps_api_object_attr_add_u32(obj,DELL_BASE_IF_CMN_IF_INTERFACES_INTERFACE_IF_INDEX, if_index);
        cps_api_object_attr_add(obj,IF_INTERFACES_INTERFACE_TYPE,
                (const char *)IF_INTERFACE_TYPE_IANAIFT_IANA_INTERFACE_TYPE_IANAIFT_IEEE8023ADLAG,
                sizeof(IF_INTERFACE_TYPE_IANAIFT_IANA_INTERFACE_TYPE_IANAIFT_IEEE8023ADLAG));

        if (cps_api_get(&gp) != cps_api_ret_code_OK)
            break;

        if (0 == cps_api_object_list_size(gp.list))
            break;

        obj = cps_api_object_list_get(gp.list,0);
        cps_api_attr_id_t  attr_list[] = {BASE_IF_LAG_IF_INTERFACES_INTERFACE_LAG_OPAQUE_DATA};

        if (!nas_ndi_obj_id_table_cps_unserialize (ndi_id_data, obj, attr_list,
                                                   sizeof (attr_list)/sizeof (cps_api_attr_id_t)))
        {
            EV_LOG_ERR(ev_log_t_INTERFACE, 2, "INTF-C","Failed to get LAG opaque data");
            break;
        }
        rc = STD_ERR_OK;

    } while (0);

    cps_api_get_request_close(&gp);
    return rc;
}