1c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// 2c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// Copyright (C) 2015 The Android Open Source Project 3c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// 4c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// Licensed under the Apache License, Version 2.0 (the "License"); 5c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// you may not use this file except in compliance with the License. 6c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// You may obtain a copy of the License at 7c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// 8c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// http://www.apache.org/licenses/LICENSE-2.0 9c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// 10c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// Unless required by applicable law or agreed to in writing, software 11c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// distributed under the License is distributed on an "AS IS" BASIS, 12c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// See the License for the specific language governing permissions and 14c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// limitations under the License. 15c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// 16e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu 17e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu#include "shill/arp_client_test_helper.h" 18e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu 19e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu#include <gtest/gtest.h> 20e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu 21e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiuusing testing::_; 22e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiuusing testing::Invoke; 23e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiuusing testing::Return; 24e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu 25e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiunamespace shill { 26e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu 27a794cd60a7339d576ea2eed263a4f0a20fb255afPaul StewartArpClientTestHelper::ArpClientTestHelper(MockArpClient* client) 28e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu : client_(client) {} 29e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu 30e9b75804020ed3173ae7e5e925da78f2c642cd35Peter QiuArpClientTestHelper::~ArpClientTestHelper() {} 31e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu 32e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiuvoid ArpClientTestHelper::GeneratePacket(uint16_t operation, 33a794cd60a7339d576ea2eed263a4f0a20fb255afPaul Stewart const IPAddress& local_ip, 34a794cd60a7339d576ea2eed263a4f0a20fb255afPaul Stewart const ByteString& local_mac, 35a794cd60a7339d576ea2eed263a4f0a20fb255afPaul Stewart const IPAddress& remote_ip, 36a794cd60a7339d576ea2eed263a4f0a20fb255afPaul Stewart const ByteString& remote_mac) { 37e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu packet_.set_operation(operation); 38e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu packet_.set_local_ip_address(local_ip); 39e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu packet_.set_local_mac_address(local_mac); 40e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu packet_.set_remote_ip_address(remote_ip); 41e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu packet_.set_remote_mac_address(remote_mac); 42e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu 43e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu EXPECT_CALL(*client_, ReceivePacket(_, _)) 44e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu .WillOnce(Invoke(this, &ArpClientTestHelper::SimulateReceivePacket)); 45e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu} 46e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu 47a794cd60a7339d576ea2eed263a4f0a20fb255afPaul Stewartbool ArpClientTestHelper::SimulateReceivePacket(ArpPacket* packet, 48a794cd60a7339d576ea2eed263a4f0a20fb255afPaul Stewart ByteString* sender) { 49e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu packet->set_operation(packet_.operation()); 50e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu packet->set_local_ip_address(packet_.local_ip_address()); 51e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu packet->set_local_mac_address(packet_.local_mac_address()); 52e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu packet->set_remote_ip_address(packet_.remote_ip_address()); 53e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu packet->set_remote_mac_address(packet_.remote_mac_address()); 54e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu return true; 55e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu} 56e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu 57e9b75804020ed3173ae7e5e925da78f2c642cd35Peter Qiu} // namespace shill 58