Skip to content

Commit 2fcb534

Browse files
committed
Container/MeshNetwork: MeshNodePtr::operator==
1 parent 294a8fa commit 2fcb534

2 files changed

Lines changed: 31 additions & 0 deletions

File tree

modules/Container/MeshNetwork.mpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import CppUtils.Container.NetworkPtr;
55
import CppUtils.Container.SafeShared;
66
import CppUtils.Thread.UniqueLocker;
77
import CppUtils.Thread.SharedLocker;
8+
import CppUtils.Thread.SharedPtr;
89

910
export namespace CppUtils::Container
1011
{
@@ -297,6 +298,11 @@ export namespace CppUtils::Container
297298
return sharedLocker->value.value;
298299
}
299300

301+
[[nodiscard]] auto operator==(const MeshNodePtr& other) const noexcept -> bool
302+
{
303+
return Thread::SharedPtr::ownerEqual(m_node, other.m_node);
304+
}
305+
300306
private:
301307
SharedPtr m_node = nullptr;
302308
};

tests/Container/MeshNetwork.mpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,31 @@ export namespace CppUtils::UnitTest::Container::MeshNetwork
5656
}
5757
});
5858

59+
suite.addTest("Operator==: Equal nodes", [&] {
60+
auto node1 = StringMeshNodePtr::make("test");
61+
auto node2 = node1;
62+
suite.expectEqual(node1, node2);
63+
});
64+
65+
suite.addTest("Operator==: Unequal nodes", [&] {
66+
auto node1 = StringMeshNodePtr::make("test1");
67+
auto node2 = StringMeshNodePtr::make("test2");
68+
suite.expect(node1 != node2);
69+
});
70+
71+
suite.addTest("Operator==: Assigned nodes", [&] {
72+
auto node1 = StringMeshNodePtr::make("test");
73+
auto node2 = StringMeshNodePtr{};
74+
node2 = node1;
75+
suite.expectEqual(node1, node2);
76+
});
77+
78+
suite.addTest("Operator==: Node and null", [&] {
79+
auto node1 = StringMeshNodePtr::make("test");
80+
auto node2 = StringMeshNodePtr{};
81+
suite.expect(node1 != node2);
82+
});
83+
5984
suite.addTest("Detach child", [&] {
6085
auto fruit = StringMeshNodePtr::makeRoot("fruit");
6186
auto apple = StringMeshNodePtr::make("apple");

0 commit comments

Comments
 (0)