File size: 1,759 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 | // 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 <App/Origin.h>
#include "Mod/Part/App/Attacher.h"
#include "Mod/PartDesign/App/Body.h"
#include "Mod/PartDesign/App/DatumPlane.h"
class DatumPlaneTest: 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>();
}
void TearDown() override
{
App::GetApplication().closeDocument(_docName.c_str());
}
App::Document* getDocument() const
{
return _doc;
}
PartDesign::Body* getBody() const
{
return _body;
}
private:
std::string _docName;
App::Document* _doc = nullptr;
PartDesign::Body* _body = nullptr;
};
TEST_F(DatumPlaneTest, attachDatumPlane)
{
auto datumPlane = getDocument()->addObject<PartDesign::Plane>("Plane");
ASSERT_TRUE(datumPlane);
getBody()->addObject(datumPlane);
auto origin = getBody()->getOrigin();
App::PropertyLinkSubList support;
std::vector<App::DocumentObject*> objs;
std::vector<std::string> subs;
objs.push_back(origin->getXY());
subs.emplace_back();
support.setValues(objs, subs);
auto attach = datumPlane->getExtensionByType<Part::AttachExtension>();
attach->attacher().setReferences(support);
Attacher::SuggestResult sugr;
attach->attacher().suggestMapModes(sugr);
EXPECT_EQ(sugr.message, Attacher::SuggestResult::srOK);
}
|