Remove *base* methods from config_store.h This information should be the same for all weave devices. BUG:24267885 Change-Id: Ia396d856e6e15f18db9ceacba05e90b34c474205 Reviewed-on: https://weave-review.googlesource.com/1205 Reviewed-by: Vitaly Buka <vitalybuka@google.com>
diff --git a/libweave/examples/ubuntu/file_config_store.cc b/libweave/examples/ubuntu/file_config_store.cc index 8cc8fc5..8853bcf 100644 --- a/libweave/examples/ubuntu/file_config_store.cc +++ b/libweave/examples/ubuntu/file_config_store.cc
@@ -59,36 +59,6 @@ str << settings; } -std::string FileConfigStore::LoadBaseCommandDefs() { - return R"({ - "base": { - "updateBaseConfiguration": { - "minimalRole": "manager", - "parameters": { - "localDiscoveryEnabled": "boolean", - "localAnonymousAccessMaxRole": [ "none", "viewer", "user" ], - "localPairingEnabled": "boolean" - }, - "results": {} - }, - "identify": { - "minimalRole": "user", - "parameters": {}, - "results": {} - }, - "updateDeviceInfo": { - "minimalRole": "manager", - "parameters": { - "description": "string", - "name": "string", - "location": "string" - }, - "results": {} - } - } - })"; -} - std::map<std::string, std::string> FileConfigStore::LoadCommandDefs() { return {{"example", R"({ "base": { @@ -106,33 +76,6 @@ })"}}; } -std::string FileConfigStore::LoadBaseStateDefs() { - return R"({ - "base": { - "firmwareVersion": "string", - "localDiscoveryEnabled": "boolean", - "localAnonymousAccessMaxRole": [ "none", "viewer", "user" ], - "localPairingEnabled": "boolean", - "network": { - "properties": { - "name": "string" - } - } - } - })"; -} - -std::string FileConfigStore::LoadBaseStateDefaults() { - return R"({ - "base": { - "firmwareVersion": "unknown", - "localDiscoveryEnabled": false, - "localAnonymousAccessMaxRole": "none", - "localPairingEnabled": false - } - })"; -} - std::map<std::string, std::string> FileConfigStore::LoadStateDefs() { return {}; }
diff --git a/libweave/examples/ubuntu/file_config_store.h b/libweave/examples/ubuntu/file_config_store.h index aa1d4fe..f89636d 100644 --- a/libweave/examples/ubuntu/file_config_store.h +++ b/libweave/examples/ubuntu/file_config_store.h
@@ -21,10 +21,7 @@ bool LoadDefaults(Settings* settings) override; std::string LoadSettings() override; void SaveSettings(const std::string& settings) override; - std::string LoadBaseCommandDefs() override; std::map<std::string, std::string> LoadCommandDefs() override; - std::string LoadBaseStateDefs() override; - std::string LoadBaseStateDefaults() override; std::map<std::string, std::string> LoadStateDefs() override; std::vector<std::string> LoadStateDefaults() override;
diff --git a/libweave/include/weave/provider/config_store.h b/libweave/include/weave/provider/config_store.h index d073ca7..30f289c 100644 --- a/libweave/include/weave/provider/config_store.h +++ b/libweave/include/weave/provider/config_store.h
@@ -35,11 +35,10 @@ // recommended to protect data, e.g. using encryption. virtual void SaveSettings(const std::string& settings) = 0; - virtual std::string LoadBaseCommandDefs() = 0; - virtual std::string LoadBaseStateDefs() = 0; - virtual std::string LoadBaseStateDefaults() = 0; - // Returns command definitions as JSON. + // Key is unique string which will be used to assign single command handler + // later. + // Value is JSON with command definition. virtual std::map<std::string, std::string> LoadCommandDefs() = 0; // Returns device state definitions as JSON.
diff --git a/libweave/include/weave/provider/test/mock_config_store.h b/libweave/include/weave/provider/test/mock_config_store.h index 1a287ee..872e666 100644 --- a/libweave/include/weave/provider/test/mock_config_store.h +++ b/libweave/include/weave/provider/test/mock_config_store.h
@@ -41,12 +41,7 @@ MOCK_METHOD0(LoadSettings, std::string()); MOCK_METHOD1(SaveSettings, void(const std::string&)); - MOCK_METHOD0(LoadBaseCommandDefs, std::string()); MOCK_METHOD0(LoadCommandDefs, std::map<std::string, std::string>()); - - MOCK_METHOD0(LoadBaseStateDefs, std::string()); - MOCK_METHOD0(LoadBaseStateDefaults, std::string()); - MOCK_METHOD0(LoadStateDefs, std::map<std::string, std::string>()); MOCK_METHOD0(LoadStateDefaults, std::vector<std::string>()); };
diff --git a/libweave/src/commands/command_manager.cc b/libweave/src/commands/command_manager.cc index f1ff3d0..95ca291 100644 --- a/libweave/src/commands/command_manager.cc +++ b/libweave/src/commands/command_manager.cc
@@ -14,6 +14,43 @@ namespace weave { +namespace { + +const char kBaseCommandDefs[] = R"({ + "base": { + "updateBaseConfiguration": { + "minimalRole": "manager", + "parameters": { + "localDiscoveryEnabled": "boolean", + "localAnonymousAccessMaxRole": [ "none", "viewer", "user" ], + "localPairingEnabled": "boolean" + }, + "results": {} + }, + "reboot": { + "minimalRole": "user", + "parameters": {}, + "results": {} + }, + "identify": { + "minimalRole": "user", + "parameters": {}, + "results": {} + }, + "updateDeviceInfo": { + "minimalRole": "manager", + "parameters": { + "description": "string", + "name": "string", + "location": "string" + }, + "results": {} + } + } +})"; + +} + CommandManager::CommandManager() {} CommandManager::~CommandManager() {} @@ -63,7 +100,7 @@ LOG(INFO) << "Initializing CommandManager."; // Load global standard GCD command dictionary. - CHECK(LoadBaseCommands(config_store->LoadBaseCommandDefs(), nullptr)); + CHECK(LoadBaseCommands(kBaseCommandDefs, nullptr)); // Loading the rest of commands. for (const auto& defs : config_store->LoadCommandDefs())
diff --git a/libweave/src/commands/command_manager_unittest.cc b/libweave/src/commands/command_manager_unittest.cc index 7aa560f..8d64650 100644 --- a/libweave/src/commands/command_manager_unittest.cc +++ b/libweave/src/commands/command_manager_unittest.cc
@@ -116,8 +116,6 @@ TEST(CommandManager, ShouldLoadStandardAndTestDefinitions) { CommandManager manager; provider::test::MockConfigStore config_store; - EXPECT_CALL(config_store, LoadBaseCommandDefs()) - .WillOnce(Return(kTestBaseCommands)); EXPECT_CALL(config_store, LoadCommandDefs()) .WillOnce(Return(std::map<std::string, std::string>{ {"category", kTestVendorCommands}, {"test", kTestTestCommands}}));
diff --git a/libweave/src/states/state_manager.cc b/libweave/src/states/state_manager.cc index a3acc41..0d96175 100644 --- a/libweave/src/states/state_manager.cc +++ b/libweave/src/states/state_manager.cc
@@ -16,6 +16,33 @@ namespace weave { +namespace { + +const char kBaseStateDefs[] = R"({ + "base": { + "firmwareVersion": "string", + "localDiscoveryEnabled": "boolean", + "localAnonymousAccessMaxRole": [ "none", "viewer", "user" ], + "localPairingEnabled": "boolean", + "network": { + "properties": { + "name": "string" + } + } + } +})"; + +const char kBaseStateDefaults[] = R"({ + "base": { + "firmwareVersion": "unknown", + "localDiscoveryEnabled": false, + "localAnonymousAccessMaxRole": "none", + "localPairingEnabled": false + } +})"; + +} + StateManager::StateManager(StateChangeQueueInterface* state_change_queue) : state_change_queue_(state_change_queue) { CHECK(state_change_queue_) << "State change queue not specified"; @@ -32,14 +59,14 @@ LOG(INFO) << "Initializing StateManager."; // Load standard device state definition. - CHECK(LoadBaseStateDefinition(config_store->LoadBaseStateDefs(), nullptr)); + CHECK(LoadBaseStateDefinition(kBaseStateDefs, nullptr)); // Load component-specific device state definitions. for (const auto& pair : config_store->LoadStateDefs()) CHECK(LoadStateDefinition(pair.second, pair.first, nullptr)); // Load standard device state defaults. - CHECK(LoadStateDefaults(config_store->LoadBaseStateDefaults(), nullptr)); + CHECK(LoadStateDefaults(kBaseStateDefaults, nullptr)); // Load component-specific device state defaults. for (const auto& json : config_store->LoadStateDefaults())
diff --git a/libweave/src/states/state_manager_unittest.cc b/libweave/src/states/state_manager_unittest.cc index b7ae37e..8d07e65 100644 --- a/libweave/src/states/state_manager_unittest.cc +++ b/libweave/src/states/state_manager_unittest.cc
@@ -141,15 +141,10 @@ provider::test::MockConfigStore config_store; StateManager manager(&mock_state_change_queue_); - EXPECT_CALL(config_store, LoadBaseStateDefs()) - .WillOnce(Return(kBaseDefinition)); - EXPECT_CALL(config_store, LoadStateDefs()) .WillOnce(Return(std::map<std::string, std::string>{ {"powerd", R"({"power": {"battery_level":"integer"}})"}})); - EXPECT_CALL(config_store, LoadBaseStateDefaults()) - .WillOnce(Return(kBaseDefaults)); EXPECT_CALL(config_store, LoadStateDefaults()) .WillOnce(Return(std::vector<std::string>{ R"({"power": {"battery_level":44}})"})); @@ -158,14 +153,14 @@ auto expected = R"({ 'base': { - 'manufacturer': 'Test Factory', - 'serialNumber': 'Test Model' + 'firmwareVersion': 'unknown', + 'localAnonymousAccessMaxRole': 'none', + 'localDiscoveryEnabled': false, + 'localPairingEnabled': false, + 'network': {} }, 'power': { 'battery_level': 44 - }, - 'device': { - 'state_property': '' } })"; EXPECT_JSON_EQ(expected, *manager.GetStateValuesAsJson());
diff --git a/libweave/src/weave_unittest.cc b/libweave/src/weave_unittest.cc index fab3fad..bdb70e6 100644 --- a/libweave/src/weave_unittest.cc +++ b/libweave/src/weave_unittest.cc
@@ -41,49 +41,16 @@ const char kCategory[] = "powerd"; -const char kBaseCommandDefs[] = R"({ - "base": { - "reboot": { - "parameters": {"delay": "integer"}, - "results": {} - }, - "shutdown": { - "parameters": {}, - "results": {} - } - } -})"; - const char kCommandDefs[] = R"({ "base": { "reboot": {}, - "shutdown": {} - } -})"; - -const char kBaseStateDefs[] = R"({ - "base": { - "firmwareVersion": "string", - "localDiscoveryEnabled": "boolean", - "localAnonymousAccessMaxRole": [ "none", "viewer", "user" ], - "localPairingEnabled": "boolean", - "network": { - "properties": { - "name": "string" - } + "_shutdown": { + "parameters": {}, + "results": {} } } })"; -const char kBaseStateDefaults[] = R"({ - "base": { - "firmwareVersion": "", - "localDiscoveryEnabled": false, - "localAnonymousAccessMaxRole": "none", - "localPairingEnabled": false - } -})"; - const char kDeviceResource[] = R"({ "kind": "clouddevices#device", "id": "DEVICE_ID", @@ -192,23 +159,14 @@ void InitConfigStore() { EXPECT_CALL(config_store_, SaveSettings("")).WillRepeatedly(Return()); - EXPECT_CALL(config_store_, LoadBaseCommandDefs()) - .WillOnce(Return(kBaseCommandDefs)); - EXPECT_CALL(config_store_, LoadCommandDefs()) .WillOnce(Return( std::map<std::string, std::string>{{kCategory, kCommandDefs}})); - EXPECT_CALL(config_store_, LoadBaseStateDefs()) - .WillOnce(Return(kBaseStateDefs)); - EXPECT_CALL(config_store_, LoadStateDefs()) .WillOnce(Return( std::map<std::string, std::string>{{kCategory, kStateDefs}})); - EXPECT_CALL(config_store_, LoadBaseStateDefaults()) - .WillOnce(Return(kBaseStateDefaults)); - EXPECT_CALL(config_store_, LoadStateDefaults()) .WillOnce(Return(std::vector<std::string>{kStateDefaults})); }