File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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;
Original file line number Diff line number Diff 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");
You can’t perform that action at this time.
0 commit comments