File size: 2,602 Bytes
985c397 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | // SPDX-License-Identifier: LGPL-2.1-or-later
#include <gtest/gtest.h>
#include "src/App/InitApplication.h"
#include <App/Application.h>
#include <App/Document.h>
#include "Mod/Part/App/FeaturePartBox.h"
#include "Mod/PartDesign/App/Body.h"
#include "Mod/PartDesign/App/ShapeBinder.h"
// NOLINTBEGIN(readability-magic-numbers,cppcoreguidelines-avoid-magic-numbers)
class ShapeBinderTest: public ::testing::Test
{
protected:
static void SetUpTestSuite()
{
tests::initApplication();
}
void SetUp() override
{
_docName = App::GetApplication().getUniqueDocumentName("test");
_doc = App::GetApplication().newDocument(_docName.c_str(), "testUser");
_body = _doc->addObject<PartDesign::Body>();
_box = _doc->addObject<Part::Box>();
_box->Length.setValue(1);
_box->Width.setValue(2);
_box->Height.setValue(3);
_box->Placement.setValue(
Base::Placement(Base::Vector3d(), Base::Rotation(), Base::Vector3d())
); // NOLINT
// _body->addObject(_box); // Invalid, Part::Features can't go in a PartDesign::Body,
// but we can bind them.
_binder = _doc->addObject<PartDesign::ShapeBinder>("ShapeBinderFoo");
_subbinder = _doc->addObject<PartDesign::SubShapeBinder>("SubShapeBinderBar");
_binder->Shape.setValue(_box->Shape.getShape());
_subbinder->setLinks({{_box, {"Face1", "Face2"}}}, false);
_body->addObject(_binder);
_body->addObject(_subbinder);
}
void TearDown() override
{
App::GetApplication().closeDocument(_docName.c_str());
}
// NOLINTBEGIN(cppcoreguidelines-non-private-member-variables-in-classes)
App::Document* _doc = nullptr;
std::string _docName = "";
Part::Box* _box = nullptr;
PartDesign::Body* _body = nullptr;
PartDesign::ShapeBinder* _binder = nullptr;
PartDesign::SubShapeBinder* _subbinder = nullptr;
// NOLINTEND(cppcoreguidelines-non-private-member-variables-in-classes)
};
TEST_F(ShapeBinderTest, shapeBinderExists)
{
// Arrange
// Act
auto binder = _doc->getObject("ShapeBinderFoo");
// Assert the object is correct
EXPECT_NE(binder, nullptr);
// Assert the elementMap is correct
}
TEST_F(ShapeBinderTest, subShapeBinderExists)
{
// Arrange
// Act
auto subbinder = _doc->getObject("SubShapeBinderBar");
// Assert the object is correct
EXPECT_NE(subbinder, nullptr);
// Assert the elementMap is correct
}
// NOLINTEND(readability-magic-numbers,cppcoreguidelines-avoid-magic-numbers)
|