1 #include "utils/ip_utils.hpp"
2 
3 #include <gtest/gtest.h> // IWYU pragma: keep
4 
5 // IWYU pragma: no_include <gtest/gtest-message.h>
6 // IWYU pragma: no_include <gtest/gtest-test-part.h>
7 // IWYU pragma: no_include "gtest/gtest_pred_impl.h"
8 
9 namespace redfish::ip_util
10 {
11 namespace
12 {
13 
14 using ::boost::asio::ip::make_address;
15 
16 TEST(IpToString, ReturnsCorrectIpStringForIpv4Addresses)
17 {
18     EXPECT_EQ(toString(make_address("127.0.0.1")), "127.0.0.1");
19     EXPECT_EQ(toString(make_address("192.168.1.1")), "192.168.1.1");
20     EXPECT_EQ(toString(make_address("::1")), "::1");
21 }
22 
23 TEST(IpToString, ReturnsCorrectIpStringForIpv6Addresses)
24 {
25     EXPECT_EQ(toString(make_address("fd03:f9ab:25de:89ec::0001")),
26               "fd03:f9ab:25de:89ec::1");
27     EXPECT_EQ(toString(make_address("fd03:f9ab:25de:89ec::1234:abcd")),
28               "fd03:f9ab:25de:89ec::1234:abcd");
29     EXPECT_EQ(toString(make_address("fd03:f9ab:25de:89ec:1234:5678:90ab:cdef")),
30               "fd03:f9ab:25de:89ec:1234:5678:90ab:cdef");
31 }
32 
33 TEST(IpToString, ReturnsCorrectIpStringForIpv4MappedIpv6Addresses)
34 {
35     EXPECT_EQ(toString(make_address("::ffff:127.0.0.1")), "127.0.0.1");
36 }
37 } // namespace
38 } // namespace redfish::ip_util