// SPDX-License-Identifier: BSD-3-Clause OR Apache-2.0 #include "aap2/aap2_client.h" #include "testud3tn_unity.h" #include #include #include TEST_GROUP(aapv2_client); TEST_SETUP(aapv2_client) { } TEST_TEAR_DOWN(aapv2_client) { } static void assert_and_free_str_eq(const char *expected, char *got) { TEST_ASSERT_NOT_NULL(got); TEST_ASSERT_EQUAL_STRING(expected, got); free(got); } TEST(aapv2_client, aap2_client_get_eid_for_agent) { // Valid DTN assert_and_free_str_eq( "dtn://node/svc", aap2_client_get_eid_for_agent("dtn://node/", "svc") ); assert_and_free_str_eq( "dtn://node/svc", aap2_client_get_eid_for_agent("dtn://node", "svc") ); // We tolerate the node ID to be sth. else than the admin. endpoint (also valid node ID!). assert_and_free_str_eq( "dtn://node/svc", aap2_client_get_eid_for_agent("dtn://node/xyz", "svc") ); assert_and_free_str_eq( "dtn://node/svc", aap2_client_get_eid_for_agent("dtn://node/~group", "svc") ); // Valid IPN assert_and_free_str_eq("ipn:42.7", aap2_client_get_eid_for_agent("ipn:42.0", "7")); assert_and_free_str_eq("ipn:1.42.7", aap2_client_get_eid_for_agent("ipn:1.42.0", "7")); assert_and_free_str_eq("ipn:42.7", aap2_client_get_eid_for_agent("ipn:0.42.0", "7")); assert_and_free_str_eq("ipn:!.7", aap2_client_get_eid_for_agent("ipn:!.0", "7")); // We tolerate the node ID to be sth. else than the admin. endpoint (also valid node ID!). assert_and_free_str_eq("ipn:5.11", aap2_client_get_eid_for_agent("ipn:5.9", "11")); // Invalid / Edge Cases TEST_ASSERT_NULL(aap2_client_get_eid_for_agent(NULL, "svc")); TEST_ASSERT_NULL(aap2_client_get_eid_for_agent("dtn://node/", NULL)); TEST_ASSERT_NULL(aap2_client_get_eid_for_agent("dtn:none", "svc")); TEST_ASSERT_NULL(aap2_client_get_eid_for_agent("dtn://node/", "bad agent")); TEST_ASSERT_NULL(aap2_client_get_eid_for_agent("ipn:12.0", "")); TEST_ASSERT_NULL(aap2_client_get_eid_for_agent("ipn:12.0", "abc")); } TEST_GROUP_RUNNER(aapv2_client) { RUN_TEST_CASE(aapv2_client, aap2_client_get_eid_for_agent); }