Skip to content

Commit 25390c5

Browse files
committed
Container/MeshNetwork: Code cleaning
1 parent d273ee3 commit 25390c5

2 files changed

Lines changed: 76 additions & 85 deletions

File tree

tests/Container/MeshNetwork.mpp

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,5 +293,81 @@ export namespace CppUtils::UnitTest::Container::MeshNetwork
293293
}
294294
}
295295
});
296+
297+
suite.addTest("Attach (operator>>)", [&] {
298+
auto root = StringMeshNode::makeRoot("root");
299+
auto child = StringMeshNode::make("child");
300+
301+
root["branch"] >> child;
302+
303+
auto rootAccessor = root->sharedAccess();
304+
const auto& branches = rootAccessor->value.branches;
305+
suite.expectEqual(std::size(branches), 1uz);
306+
const auto& children = branches.at("branch");
307+
suite.expectEqual(std::size(children), 1uz);
308+
auto childAccessor = child->sharedAccess();
309+
suite.expectEqual(childAccessor->getDistanceFromRoot(), 1uz);
310+
});
311+
312+
suite.addTest("Chaining (operator>>)", [&] {
313+
auto root = StringMeshNode::makeRoot("root");
314+
auto child1 = StringMeshNode::make("child1");
315+
auto child2 = StringMeshNode::make("child2");
316+
317+
root["branch1"] >> child1["branch2"] >> child2;
318+
319+
auto rootAccessor = root->sharedAccess();
320+
const auto& rootBranches = rootAccessor->value.branches;
321+
suite.expectEqual(std::size(rootBranches), 1uz);
322+
auto child1Accessor = child1->sharedAccess();
323+
const auto& child1Branches = child1Accessor->value.branches;
324+
suite.expectEqual(std::size(child1Branches), 1uz);
325+
});
326+
327+
suite.addTest("Unlink (operator-)", [&] {
328+
auto root = StringMeshNode::makeRoot("root");
329+
auto child = StringMeshNode::make("child");
330+
331+
root["branch"] >> child;
332+
root["branch"] - child;
333+
334+
auto rootAccessor = root->sharedAccess();
335+
const auto& branches = rootAccessor->value.branches;
336+
suite.expect(std::empty(branches));
337+
});
338+
339+
suite.addTest("Bidirectional link (operator&)", [&] {
340+
auto fruit = StringMeshNode::makeRoot("fruit");
341+
auto apple = StringMeshNode::make("apple");
342+
343+
fruit["elements"] & apple["category"];
344+
{
345+
auto fruitAccessor = fruit->sharedAccess();
346+
const auto& fruitBranches = fruitAccessor->value.branches;
347+
suite.expectEqual(std::size(fruitBranches), 1uz);
348+
suite.expectEqual(std::size(fruitBranches.at("category")), 1uz);
349+
350+
auto appleAccessor = apple->sharedAccess();
351+
const auto& appleBranches = appleAccessor->value.branches;
352+
suite.expectEqual(std::size(appleBranches), 1uz);
353+
suite.expectEqual(std::size(appleBranches.at("elements")), 1uz);
354+
}
355+
});
356+
357+
suite.addTest("Bidirectional unlink (operator/)", [&] {
358+
auto fruit = StringMeshNode::makeRoot("fruit");
359+
auto apple = StringMeshNode::make("apple");
360+
361+
fruit["elements"] & apple["category"];
362+
fruit["elements"] / apple["category"];
363+
{
364+
auto fruitAccessor = fruit->sharedAccess();
365+
const auto& fruitBranches = fruitAccessor->value.branches;
366+
suite.expect(std::empty(fruitBranches));
367+
auto appleAccessor = apple->sharedAccess();
368+
const auto& appleBranches = appleAccessor->value.branches;
369+
suite.expect(std::empty(appleBranches));
370+
}
371+
});
296372
}};
297373
}

tests/Container/MeshNetworkOperators.mpp

Lines changed: 0 additions & 85 deletions
This file was deleted.

0 commit comments

Comments
 (0)