FreeCAD
1// SPDX-License-Identifier: LGPL-2.1-or-later
2
3#include <gtest/gtest.h>
4
5#include "Mod/Sketcher/App/planegcs/GCS.h"
6
7class SystemTest: public GCS::System
8{
9public:
10size_t getNumberOfConstraints(int tagID = -1)
11{
12return _getNumberOfConstraints(tagID);
13}
14};
15
16class GCSTest: public ::testing::Test
17{
18protected:
19void SetUp() override
20{
21_system = std::make_unique<SystemTest>();
22}
23
24void TearDown() override
25{
26_system.reset();
27}
28
29SystemTest* System()
30{
31return _system.get();
32}
33
34private:
35std::unique_ptr<SystemTest> _system;
36};
37
38TEST_F(GCSTest, clearConstraints) // NOLINT
39{
40// Arrange
41const size_t numConstraints {100};
42for (size_t i = 0; i < numConstraints; ++i) {
43System()->addConstraint(new GCS::Constraint());
44}
45ASSERT_EQ(numConstraints, System()->getNumberOfConstraints());
46
47// Act
48System()->clear();
49
50// Assert
51EXPECT_EQ(0, System()->getNumberOfConstraints());
52}
53