/*
* Copyright © 2014 Canonical Ltd.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
*
* Authored by: Thomas Voß
*/
#ifndef MOCK_PROVIDER_H_
#define MOCK_PROVIDER_H_
#include
#include
struct MockProvider : public com::ubuntu::location::Provider
{
MockProvider() : com::ubuntu::location::Provider()
{
}
MOCK_METHOD1(matches_criteria, bool(const com::ubuntu::location::Criteria&));
MOCK_CONST_METHOD1(supports, bool(const com::ubuntu::location::Provider::Features&));
MOCK_CONST_METHOD1(requires, bool(const com::ubuntu::location::Provider::Requirements&));
// Called by the engine whenever the wifi and cell ID reporting state changes.
MOCK_METHOD1(on_wifi_and_cell_reporting_state_changed, void(com::ubuntu::location::WifiAndCellIdReportingState state));
// Called by the engine whenever the reference location changed.
MOCK_METHOD1(on_reference_location_updated, void(const com::ubuntu::location::Update& position));
// Called by the engine whenever the reference velocity changed.
MOCK_METHOD1(on_reference_velocity_updated, void(const com::ubuntu::location::Update& velocity));
// Called by the engine whenever the reference heading changed.
MOCK_METHOD1(on_reference_heading_updated, void(const com::ubuntu::location::Update& heading));
MOCK_METHOD0(start_position_updates, void());
MOCK_METHOD0(stop_position_updates, void());
MOCK_METHOD0(start_heading_updates, void());
MOCK_METHOD0(stop_heading_updates, void());
MOCK_METHOD0(start_velocity_updates, void());
MOCK_METHOD0(stop_velocity_updates, void());
// Inject a position update from the outside.
void inject_update(const com::ubuntu::location::Update& update)
{
mutable_updates().position(update);
}
// Inject a velocity update from the outside.
void inject_update(const com::ubuntu::location::Update& update)
{
mutable_updates().velocity(update);
}
// Inject a heading update from the outside.
void inject_update(const com::ubuntu::location::Update& update)
{
mutable_updates().heading(update);
}
};
#endif // MOCK_PROVIDER_H_