Add ProxyDatastore
This class will be used to intercept certain commands from the cli, like
entering RPC input. Right now, it works just as a pass-through.
Change-Id: I2d252609c1354005a0ccf4a1f26399dc895a73e8
diff --git a/tests/interpreter.cpp b/tests/interpreter.cpp
index 3b9736b..89fbd29 100644
--- a/tests/interpreter.cpp
+++ b/tests/interpreter.cpp
@@ -38,7 +38,8 @@
{
auto schema = std::make_shared<MockSchema>();
Parser parser(schema);
- MockDatastoreAccess datastore;
+ auto datastore = std::make_shared<MockDatastoreAccess>();
+ ProxyDatastore proxyDatastore(datastore);
std::vector<std::unique_ptr<trompeloeil::expectation>> expectations;
std::vector<command_> toInterpret;
@@ -173,7 +174,7 @@
}
ls_ ls;
ls.m_path = lsArg;
- expectations.emplace_back(NAMED_REQUIRE_CALL(datastore, schema()).RETURN(schema));
+ expectations.emplace_back(NAMED_REQUIRE_CALL(*datastore, schema()).RETURN(schema));
expectations.emplace_back(NAMED_REQUIRE_CALL(*schema, availableNodes(expectedPath, Recursion::NonRecursive)).RETURN(std::set<ModuleNodePair>{}));
toInterpret.emplace_back(ls);
}
@@ -323,7 +324,7 @@
get_ getCmd;
getCmd.m_path = inputPath;
- expectations.emplace_back(NAMED_REQUIRE_CALL(datastore, getItems(expectedPathArg)).RETURN(treeReturned));
+ expectations.emplace_back(NAMED_REQUIRE_CALL(*datastore, getItems(expectedPathArg)).RETURN(treeReturned));
toInterpret.emplace_back(getCmd);
}
@@ -335,22 +336,22 @@
SECTION("list instance")
{
inputPath.m_nodes = {dataNode_{{"mod"}, listElement_{"department", {{"name", "engineering"s}}}}};
- expectations.emplace_back(NAMED_REQUIRE_CALL(datastore, createItem("/mod:department[name='engineering']")));
- expectations.emplace_back(NAMED_REQUIRE_CALL(datastore, deleteItem("/mod:department[name='engineering']")));
+ expectations.emplace_back(NAMED_REQUIRE_CALL(*datastore, createItem("/mod:department[name='engineering']")));
+ expectations.emplace_back(NAMED_REQUIRE_CALL(*datastore, deleteItem("/mod:department[name='engineering']")));
}
SECTION("leaflist instance")
{
inputPath.m_nodes = {dataNode_{{"mod"}, leafListElement_{"addresses", "127.0.0.1"s}}};
- expectations.emplace_back(NAMED_REQUIRE_CALL(datastore, createItem("/mod:addresses[.='127.0.0.1']")));
- expectations.emplace_back(NAMED_REQUIRE_CALL(datastore, deleteItem("/mod:addresses[.='127.0.0.1']")));
+ expectations.emplace_back(NAMED_REQUIRE_CALL(*datastore, createItem("/mod:addresses[.='127.0.0.1']")));
+ expectations.emplace_back(NAMED_REQUIRE_CALL(*datastore, deleteItem("/mod:addresses[.='127.0.0.1']")));
}
SECTION("presence container")
{
inputPath.m_nodes = {dataNode_{{"mod"}, container_{"pContainer"}}};
- expectations.emplace_back(NAMED_REQUIRE_CALL(datastore, createItem("/mod:pContainer")));
- expectations.emplace_back(NAMED_REQUIRE_CALL(datastore, deleteItem("/mod:pContainer")));
+ expectations.emplace_back(NAMED_REQUIRE_CALL(*datastore, createItem("/mod:pContainer")));
+ expectations.emplace_back(NAMED_REQUIRE_CALL(*datastore, deleteItem("/mod:pContainer")));
}
create_ createCmd;
@@ -363,7 +364,7 @@
SECTION("delete a leaf")
{
- expectations.emplace_back(NAMED_REQUIRE_CALL(datastore, deleteItem("/mod:someLeaf")));
+ expectations.emplace_back(NAMED_REQUIRE_CALL(*datastore, deleteItem("/mod:someLeaf")));
delete_ deleteCmd;
deleteCmd.m_path = {Scope::Absolute, {dataNode_{{"mod"}, leaf_{"someLeaf"}}, }};
toInterpret.emplace_back(deleteCmd);
@@ -371,13 +372,13 @@
SECTION("commit")
{
- expectations.emplace_back(NAMED_REQUIRE_CALL(datastore, commitChanges()));
+ expectations.emplace_back(NAMED_REQUIRE_CALL(*datastore, commitChanges()));
toInterpret.emplace_back(commit_{});
}
SECTION("discard")
{
- expectations.emplace_back(NAMED_REQUIRE_CALL(datastore, discardChanges()));
+ expectations.emplace_back(NAMED_REQUIRE_CALL(*datastore, discardChanges()));
toInterpret.emplace_back(discard_{});
}
@@ -391,7 +392,7 @@
{
inputPath.m_nodes = {dataNode_{{"mod"}, leaf_{"animal"}}};
inputData = identityRef_{"Doge"};
- expectations.emplace_back(NAMED_REQUIRE_CALL(datastore, setLeaf("/mod:animal", identityRef_{"mod", "Doge"})));
+ expectations.emplace_back(NAMED_REQUIRE_CALL(*datastore, setLeaf("/mod:animal", identityRef_{"mod", "Doge"})));
}
@@ -406,18 +407,18 @@
{
SECTION("running -> startup")
{
- expectations.emplace_back(NAMED_REQUIRE_CALL(datastore, copyConfig(Datastore::Running, Datastore::Startup)));
+ expectations.emplace_back(NAMED_REQUIRE_CALL(*datastore, copyConfig(Datastore::Running, Datastore::Startup)));
toInterpret.emplace_back(copy_{{}, Datastore::Running, Datastore::Startup});
}
SECTION("startup -> running")
{
- expectations.emplace_back(NAMED_REQUIRE_CALL(datastore, copyConfig(Datastore::Startup, Datastore::Running)));
+ expectations.emplace_back(NAMED_REQUIRE_CALL(*datastore, copyConfig(Datastore::Startup, Datastore::Running)));
toInterpret.emplace_back(copy_{{}, Datastore::Startup, Datastore::Running});
}
}
for (const auto& command : toInterpret) {
- boost::apply_visitor(Interpreter(parser, datastore), command);
+ boost::apply_visitor(Interpreter(parser, proxyDatastore), command);
}
}