#include "helper.h"
#include "knet.h"
CASE(Test_Address) {
kloop_t* loop = knet_loop_create();
kchannel_ref_t* channel = knet_loop_create_channel(loop, 0, 1024);
kaddress_t* peer = knet_channel_ref_get_peer_address(channel);
kaddress_t* local = knet_channel_ref_get_local_address(channel);
EXPECT_TRUE(std::string(LOCAL_ADDR) == address_get_ip(peer));
EXPECT_FALSE(address_get_port(peer));
EXPECT_TRUE_OUTPUT(std::string(LOCAL_ADDR) == address_get_ip(local), address_get_ip(local));
EXPECT_FALSE(address_get_port(local));
knet_channel_ref_close(channel);
kchannel_ref_t* connector = knet_loop_create_channel(loop, 1, 1024);
kchannel_ref_t* acceptor = knet_loop_create_channel(loop, 1, 1024);
knet_channel_ref_accept(acceptor, 0, 8000, 1);
knet_channel_ref_connect(connector, LOOP_ADDR, 8000, 1);
knet_loop_run_once(loop);
peer = knet_channel_ref_get_peer_address(connector);
local = knet_channel_ref_get_local_address(connector);
EXPECT_TRUE(std::string(LOCAL_ADDR) != address_get_ip(peer));
EXPECT_TRUE(8000 == address_get_port(peer));
knet_loop_destroy(loop);
}