Skip to content

Commit 294a8fa

Browse files
committed
Container/MeshNodePtr: setValue
1 parent d25881d commit 294a8fa

2 files changed

Lines changed: 22 additions & 0 deletions

File tree

modules/Container/MeshNetwork.mpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,14 @@ export namespace CppUtils::Container
279279
return (self.m_node);
280280
}
281281

282+
auto setValue(Value&& value) -> void
283+
{
284+
if (not m_node)
285+
return;
286+
auto uniqueLocker = m_node->uniqueAccess();
287+
uniqueLocker->value.value = std::forward<Value>(value);
288+
}
289+
282290
[[nodiscard]] auto getValue() const -> std::expected<Value, std::string_view>
283291
{
284292
using namespace std::literals;

tests/Container/MeshNetwork.mpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,18 +373,32 @@ export namespace CppUtils::UnitTest::Container::MeshNetwork
373373

374374
suite.addTest("Get value", [&] {
375375
auto node = StringMeshNodePtr::make("value");
376+
376377
auto expectedValue = node.getValue();
378+
377379
suite.expect(expectedValue.has_value());
378380
suite.expectEqual(expectedValue.value(), "value");
379381
});
380382

381383
suite.addTest("Get value: Invalid node", [&] {
382384
auto emptyNode = StringMeshNodePtr{};
385+
383386
auto unexpectedValue = emptyNode.getValue();
387+
384388
suite.expect(not unexpectedValue.has_value());
385389
suite.expectEqual(unexpectedValue.error(), "Invalid MeshNodePtr"sv);
386390
});
387391

392+
suite.addTest("Set value", [&] {
393+
auto node = StringMeshNodePtr::make("initial");
394+
395+
node.setValue("updated");
396+
397+
auto expectedValue = node.getValue();
398+
suite.expect(expectedValue.has_value());
399+
suite.expectEqual(expectedValue.value(), "updated");
400+
});
401+
388402
suite.addTest("Get node", [&] {
389403
auto root = StringMeshNodePtr::makeRoot("root");
390404
auto child = StringMeshNodePtr::make("child");

0 commit comments

Comments
 (0)