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);
}