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}));
}