void ARPTest::test_equals(const ARP& arp1, const ARP& arp2) { EXPECT_EQ(arp1.opcode(), arp2.opcode()); ASSERT_EQ(arp1.hw_addr_length(), arp2.hw_addr_length()); EXPECT_EQ(arp1.hw_addr_format(), arp2.hw_addr_format()); ASSERT_EQ(arp1.prot_addr_length(), arp2.prot_addr_length()); EXPECT_EQ(arp1.prot_addr_format(), arp2.prot_addr_format()); EXPECT_EQ(arp1.sender_ip_addr(), arp2.sender_ip_addr()); EXPECT_EQ(arp1.target_ip_addr(), arp2.target_ip_addr()); EXPECT_EQ(arp1.sender_hw_addr(), arp2.sender_hw_addr()); EXPECT_EQ(arp1.target_hw_addr(), arp2.target_hw_addr()); EXPECT_EQ(arp1.inner_pdu() != NULL, arp2.inner_pdu() != NULL); }
TEST_F(ARPTest, DefaultContructor) { ARP arp; EXPECT_EQ(arp.target_ip_addr(), IPv4Address()); EXPECT_EQ(arp.sender_ip_addr(), IPv4Address()); EXPECT_EQ(arp.target_hw_addr(), empty_addr); EXPECT_EQ(arp.target_hw_addr(), empty_addr); EXPECT_EQ(arp.pdu_type(), PDU::ARP); }
EthernetII ARP::make_arp_request(ipaddress_type target, ipaddress_type sender, const hwaddress_type& hw_snd) { // Create ARP packet and set its attributes ARP arp; arp.target_ip_addr(target); arp.sender_ip_addr(sender); arp.sender_hw_addr(hw_snd); arp.opcode(REQUEST); // Create the EthernetII PDU with the ARP PDU as its inner PDU return EthernetII(EthernetII::BROADCAST, hw_snd) / arp; }
TEST_F(ARPTest, SenderIPAddrInt) { ARP arp; arp.sender_ip_addr(addr1); EXPECT_EQ(arp.sender_ip_addr(), addr1); }