// Copyright 2015 The Weave Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef LIBWEAVE_INCLUDE_WEAVE_PROVIDER_TEST_MOCK_CONFIG_STORE_H_ #define LIBWEAVE_INCLUDE_WEAVE_PROVIDER_TEST_MOCK_CONFIG_STORE_H_ #include #include #include #include #include namespace weave { namespace provider { namespace test { class MockConfigStore : public ConfigStore { public: explicit MockConfigStore(bool set_expectations = true) { using testing::_; using testing::Return; if (!set_expectations) return; EXPECT_CALL(*this, LoadDefaults(_)) .WillRepeatedly(testing::Invoke([](Settings* settings) { settings->firmware_version = "TEST_FIRMWARE"; settings->oem_name = "TEST_OEM"; settings->model_name = "TEST_MODEL"; settings->model_id = "ABCDE"; settings->name = "TEST_NAME"; settings->client_id = "TEST_CLIENT_ID"; settings->client_secret = "TEST_CLIENT_SECRET"; settings->api_key = "TEST_API_KEY"; return true; })); EXPECT_CALL(*this, LoadSettings()) .WillRepeatedly(Return(R"({ "version": 1, "device_id": "TEST_DEVICE_ID" })")); EXPECT_CALL(*this, LoadSettings(_)).WillRepeatedly(Return("")); EXPECT_CALL(*this, SaveSettings(_, _, _)) .WillRepeatedly(testing::WithArgs<1, 2>(testing::Invoke( [](const std::string& json, const DoneCallback& callback) { if (!callback.is_null()) callback.Run(nullptr); }))); } MOCK_METHOD1(LoadDefaults, bool(Settings*)); MOCK_METHOD1(LoadSettings, std::string(const std::string&)); MOCK_METHOD3(SaveSettings, void(const std::string&, const std::string&, const DoneCallback&)); MOCK_METHOD0(LoadSettings, std::string()); }; } // namespace test } // namespace provider } // namespace weave #endif // LIBWEAVE_INCLUDE_WEAVE_PROVIDER_TEST_MOCK_CONFIG_STORE_H_