1
// SPDX-License-Identifier: LGPL-2.1-or-later
2
/***************************************************************************
3
* Copyright (c) 2023 David Carter <dcarter@david.carter.ca> *
5
* This file is part of FreeCAD. *
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. *
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. *
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/>. *
21
**************************************************************************/
23
#include <gtest/gtest.h>
25
#include <Mod/Material/App/PreCompiled.h>
32
#include <App/Application.h>
33
#include <Gui/MetaTypes.h>
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>
42
class TestModelProperties : public ::testing::Test {
44
static void SetUpTestSuite() {
48
TEST_F(TestModelProperties, TestEmpty)
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);
61
TEST_F(TestModelProperties, TestBasic)
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);
79
prop.setInheritance(QString::fromStdString("12345"));
80
EXPECT_EQ(prop.getInheritance(), QString::fromStdString("12345"));
81
EXPECT_TRUE(prop.isInherited());
84
TEST_F(TestModelProperties, TestAddColumns)
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"));
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);
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);
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);