FreeCAD

Форк
0
/
TestModelProperties.cpp 
136 строк · 5.9 Кб
1
// SPDX-License-Identifier: LGPL-2.1-or-later
2
/***************************************************************************
3
 *   Copyright (c) 2023 David Carter <dcarter@david.carter.ca>             *
4
 *                                                                         *
5
 *   This file is part of FreeCAD.                                         *
6
 *                                                                         *
7
 *   FreeCAD is free software: you can redistribute it and/or modify it    *
8
 *   under the terms of the GNU Lesser General Public License as           *
9
 *   published by the Free Software Foundation, either version 2.1 of the  *
10
 *   License, or (at your option) any later version.                       *
11
 *                                                                         *
12
 *   FreeCAD is distributed in the hope that it will be useful, but        *
13
 *   WITHOUT ANY WARRANTY; without even the implied warranty of            *
14
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      *
15
 *   Lesser General Public License for more details.                       *
16
 *                                                                         *
17
 *   You should have received a copy of the GNU Lesser General Public      *
18
 *   License along with FreeCAD. If not, see                               *
19
 *   <https://www.gnu.org/licenses/>.                                      *
20
 *                                                                         *
21
 **************************************************************************/
22

23
#include <gtest/gtest.h>
24

25
#include <Mod/Material/App/PreCompiled.h>
26
#ifndef _PreComp_
27
#endif
28

29
#include <QMetaType>
30
#include <QString>
31

32
#include <App/Application.h>
33
#include <Gui/MetaTypes.h>
34

35
#include <Mod/Material/App/MaterialManager.h>
36
#include <Mod/Material/App/Model.h>
37
#include <Mod/Material/App/ModelManager.h>
38
#include <Mod/Material/App/ModelUuids.h>
39

40
// clang-format off
41

42
class TestModelProperties : public ::testing::Test {
43
 protected:
44
  static void SetUpTestSuite() {
45
  }
46
};
47

48
TEST_F(TestModelProperties, TestEmpty)
49
{
50
    auto prop = Materials::ModelProperty();
51
    EXPECT_TRUE(prop.getName().isNull());
52
    EXPECT_TRUE(prop.getPropertyType().isNull());
53
    EXPECT_TRUE(prop.getUnits().isNull());
54
    EXPECT_TRUE(prop.getURL().isNull());
55
    EXPECT_TRUE(prop.getDescription().isNull());
56
    EXPECT_TRUE(prop.getInheritance().isNull());
57
    EXPECT_FALSE(prop.isInherited());
58
    EXPECT_EQ(prop.columns(), 0);
59
}
60

61
TEST_F(TestModelProperties, TestBasic)
62
{
63
    auto prop = Materials::ModelProperty(QString::fromStdString("1"),
64
                           QString::fromStdString("2"),
65
                           QString::fromStdString("3"),
66
                           QString::fromStdString("4"),
67
                           QString::fromStdString("5"),
68
                           QString::fromStdString("6"));
69
    EXPECT_EQ(prop.getName(), QString::fromStdString("1"));
70
    EXPECT_EQ(prop.getDisplayName(), QString::fromStdString("2"));
71
    EXPECT_EQ(prop.getPropertyType(), QString::fromStdString("3"));
72
    EXPECT_EQ(prop.getUnits(), QString::fromStdString("4"));
73
    EXPECT_EQ(prop.getURL(), QString::fromStdString("5"));
74
    EXPECT_EQ(prop.getDescription(), QString::fromStdString("6"));
75
    EXPECT_TRUE(prop.getInheritance().isNull());
76
    EXPECT_FALSE(prop.isInherited());
77
    EXPECT_EQ(prop.columns(), 0);
78

79
    prop.setInheritance(QString::fromStdString("12345"));
80
    EXPECT_EQ(prop.getInheritance(), QString::fromStdString("12345"));
81
    EXPECT_TRUE(prop.isInherited());
82
}
83

84
TEST_F(TestModelProperties, TestAddColumns)
85
{
86
    auto prop = Materials::ModelProperty(QString::fromStdString("1"),
87
                           QString::fromStdString("2"),
88
                           QString::fromStdString("3"),
89
                           QString::fromStdString("4"),
90
                           QString::fromStdString("5"),
91
                           QString::fromStdString("6"));
92
    auto prop1 = Materials::ModelProperty(QString::fromStdString("10"),
93
                           QString::fromStdString("9"),
94
                           QString::fromStdString("8"),
95
                           QString::fromStdString("7"),
96
                           QString::fromStdString("6"),
97
                           QString::fromStdString("5"));
98
    auto prop2 = Materials::ModelProperty(QString::fromStdString("a"),
99
                           QString::fromStdString("b"),
100
                           QString::fromStdString("c"),
101
                           QString::fromStdString("d"),
102
                           QString::fromStdString("e"),
103
                           QString::fromStdString("f"));
104

105
    EXPECT_EQ(prop.columns(), 0);
106
    prop.addColumn(prop1);
107
    EXPECT_EQ(prop.columns(), 1);
108
    prop.addColumn(prop2);
109
    EXPECT_EQ(prop.columns(), 2);
110

111
    auto columns = prop.getColumns();
112
    auto entry1 = columns.at(0);
113
    EXPECT_EQ(entry1.getName(), QString::fromStdString("10"));
114
    EXPECT_EQ(entry1.getDisplayName(), QString::fromStdString("9"));
115
    EXPECT_EQ(entry1.getPropertyType(), QString::fromStdString("8"));
116
    EXPECT_EQ(entry1.getUnits(), QString::fromStdString("7"));
117
    EXPECT_EQ(entry1.getURL(), QString::fromStdString("6"));
118
    EXPECT_EQ(entry1.getDescription(), QString::fromStdString("5"));
119
    EXPECT_TRUE(entry1.getInheritance().isNull());
120
    EXPECT_FALSE(entry1.isInherited());
121
    EXPECT_EQ(entry1.columns(), 0);
122

123
    auto entry2 = columns.at(1);
124
    EXPECT_EQ(entry2.getName(), QString::fromStdString("a"));
125
    EXPECT_EQ(entry2.getDisplayName(), QString::fromStdString("b"));
126
    EXPECT_EQ(entry2.getPropertyType(), QString::fromStdString("c"));
127
    EXPECT_EQ(entry2.getUnits(), QString::fromStdString("d"));
128
    EXPECT_EQ(entry2.getURL(), QString::fromStdString("e"));
129
    EXPECT_EQ(entry2.getDescription(), QString::fromStdString("f"));
130
    EXPECT_TRUE(entry2.getInheritance().isNull());
131
    EXPECT_FALSE(entry2.isInherited());
132
    EXPECT_EQ(entry2.columns(), 0);
133

134
}
135

136
// clang-format on
137

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.