diff --git a/UNITTESTS/features/netsocket/NetworkInterface/test_NetworkInterface.cpp b/UNITTESTS/features/netsocket/NetworkInterface/test_NetworkInterface.cpp index 9ea4937471..15fb805e04 100644 --- a/UNITTESTS/features/netsocket/NetworkInterface/test_NetworkInterface.cpp +++ b/UNITTESTS/features/netsocket/NetworkInterface/test_NetworkInterface.cpp @@ -17,6 +17,7 @@ #include "gtest/gtest.h" #include "features/netsocket/NetworkInterface.h" +#include "NetworkStack_stub.h" class stubNetworkInterface : public NetworkInterface { virtual nsapi_error_t connect() @@ -29,8 +30,10 @@ class stubNetworkInterface : public NetworkInterface { }; virtual NetworkStack *get_stack() { - return NULL; + return &stack; }; +public: + NetworkStackstub stack; }; class TestNetworkInterface : public testing::Test { @@ -53,8 +56,79 @@ TEST_F(TestNetworkInterface, constructor) EXPECT_TRUE(iface); } +// get_default_instance is tested along with the implementations of NetworkInterface. + TEST_F(TestNetworkInterface, get_mac_address) { char *n = 0; EXPECT_EQ(iface->get_mac_address(), n); } + +TEST_F(TestNetworkInterface, get_ip_address) +{ + char *n = 0; + EXPECT_EQ(iface->get_ip_address(), n); +} + +TEST_F(TestNetworkInterface, get_netmask) +{ + char *n = 0; + EXPECT_EQ(iface->get_netmask(), n); +} + +TEST_F(TestNetworkInterface, get_gateway) +{ + char *n = 0; + EXPECT_EQ(iface->get_gateway(), n); +} + +TEST_F(TestNetworkInterface, set_network) +{ + EXPECT_EQ(iface->set_network("127.0.0.1", "255.255.0.0", "127.0.0.1"), NSAPI_ERROR_UNSUPPORTED); +} + +TEST_F(TestNetworkInterface, set_dhcp) +{ + EXPECT_EQ(iface->set_dhcp(true), NSAPI_ERROR_OK); + EXPECT_EQ(iface->set_dhcp(false), NSAPI_ERROR_UNSUPPORTED); +} + +TEST_F(TestNetworkInterface, gethostbyname) +{ + SocketAddress a; + EXPECT_EQ(iface->gethostbyname("host", &a, NSAPI_UNSPEC), NSAPI_ERROR_OK); +} + + +static bool callback_is_called; +static void my_callback(nsapi_error_t result, SocketAddress *address) +{ + (void)result; + (void)address; + callback_is_called = true; +} + +TEST_F(TestNetworkInterface, gethostbyname_async) +{ + SocketAddress a; + EXPECT_EQ(iface->gethostbyname_async("host", mbed::callback(my_callback), NSAPI_UNSPEC), NSAPI_ERROR_OK); + EXPECT_EQ(iface->gethostbyname_async_cancel(1), NSAPI_ERROR_OK); +} + +TEST_F(TestNetworkInterface, add_dns_server) +{ + SocketAddress a("127.0.0.1", 1024); + EXPECT_EQ(iface->add_dns_server(a), NSAPI_ERROR_OK); +} + +TEST_F(TestNetworkInterface, get_connection_status) +{ + EXPECT_EQ(iface->get_connection_status(), NSAPI_ERROR_UNSUPPORTED); +} + +TEST_F(TestNetworkInterface, set_blocking) +{ + EXPECT_EQ(iface->set_blocking(true), NSAPI_ERROR_UNSUPPORTED); +} + +// No way to test attach as it doesn't do or return anything. diff --git a/UNITTESTS/features/netsocket/NetworkInterface/unittest.cmake b/UNITTESTS/features/netsocket/NetworkInterface/unittest.cmake index cab0725e05..37ea5dc0bf 100644 --- a/UNITTESTS/features/netsocket/NetworkInterface/unittest.cmake +++ b/UNITTESTS/features/netsocket/NetworkInterface/unittest.cmake @@ -5,10 +5,21 @@ # Source files set(unittest-sources + ../features/netsocket/SocketAddress.cpp + ../features/netsocket/NetworkStack.cpp ../features/netsocket/NetworkInterface.cpp + ../features/frameworks/nanostack-libservice/source/libip4string/ip4tos.c + ../features/frameworks/nanostack-libservice/source/libip4string/stoip4.c ) # Test files set(unittest-test-sources + stubs/Mutex_stub.cpp + stubs/mbed_assert_stub.c + stubs/equeue_stub.c + stubs/EventQueue_stub.cpp + stubs/mbed_shared_queues_stub.cpp + stubs/nsapi_dns_stub.cpp + stubs/EventFlags_stub.cpp features/netsocket/NetworkInterface/test_NetworkInterface.cpp )