| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | #include <gtest/gtest.h> |
| |
|
| | #include <QMetaType> |
| | #include <QString> |
| |
|
| | #include <App/Application.h> |
| | #include <Base/Quantity.h> |
| | #include <Gui/MetaTypes.h> |
| | #include <src/App/InitApplication.h> |
| |
|
| | #include <Mod/Material/App/MaterialLibrary.h> |
| | #include <Mod/Material/App/MaterialManager.h> |
| | #include <Mod/Material/App/MaterialValue.h> |
| | #include <Mod/Material/App/Model.h> |
| | #include <Mod/Material/App/ModelManager.h> |
| | #include <Mod/Material/App/ModelUuids.h> |
| |
|
| | |
| |
|
| | class TestMaterialCards : public ::testing::Test { |
| | protected: |
| | static void SetUpTestSuite() { |
| | if (App::Application::GetARGC() == 0) { |
| | tests::initApplication(); |
| | } |
| | } |
| |
|
| | void SetUp() override { |
| | |
| | QString libPath = QDir::tempPath() + QStringLiteral("/TestMaterialCards"); |
| | QDir libDir(libPath); |
| | libDir.removeRecursively(); |
| | libDir.mkdir(libPath); |
| | _library = std::make_shared<Materials::MaterialLibraryLocal>(QStringLiteral("Testing"), |
| | libPath, |
| | QStringLiteral(":/icons/preferences-general.svg"), |
| | false); |
| | _modelManager = &(Materials::ModelManager::getManager()); |
| | _materialManager = &(Materials::MaterialManager::getManager()); |
| |
|
| | _testMaterialUUID = QStringLiteral("c6c64159-19c1-40b5-859c-10561f20f979"); |
| | } |
| |
|
| | |
| | Materials::ModelManager* _modelManager; |
| | Materials::MaterialManager* _materialManager; |
| | std::shared_ptr<Materials::MaterialLibraryLocal> _library; |
| | QString _testMaterialUUID; |
| | }; |
| |
|
| | TEST_F(TestMaterialCards, TestCopy) |
| | { |
| | ASSERT_NE(_modelManager, nullptr); |
| | ASSERT_TRUE(_library); |
| | |
| |
|
| | auto testMaterial = _materialManager->getMaterial(_testMaterialUUID); |
| | auto newMaterial = std::make_shared<Materials::Material>(*testMaterial); |
| |
|
| | EXPECT_EQ(testMaterial->getUUID(), _testMaterialUUID); |
| | EXPECT_EQ(newMaterial->getUUID(), _testMaterialUUID); |
| |
|
| | |
| | _materialManager->saveMaterial(_library, |
| | newMaterial, |
| | QStringLiteral("/Test Material2.FCMat"), |
| | false, |
| | true, |
| | false); |
| | EXPECT_EQ(newMaterial->getUUID(), _testMaterialUUID); |
| | EXPECT_EQ(newMaterial->getName(), QStringLiteral("Test Material2")); |
| |
|
| | |
| | EXPECT_THROW(_materialManager->saveMaterial(_library, |
| | newMaterial, |
| | QStringLiteral("/Test Material2.FCMat"), |
| | false, |
| | true, |
| | false) |
| | , Materials::MaterialExists); |
| | EXPECT_EQ(newMaterial->getUUID(), _testMaterialUUID); |
| | EXPECT_EQ(newMaterial->getName(), QStringLiteral("Test Material2")); |
| |
|
| | |
| | _materialManager->saveMaterial(_library, |
| | newMaterial, |
| | QStringLiteral("/Test Material2.FCMat"), |
| | true, |
| | true, |
| | false); |
| | EXPECT_EQ(newMaterial->getUUID(), _testMaterialUUID); |
| | EXPECT_EQ(newMaterial->getName(), QStringLiteral("Test Material2")); |
| |
|
| | |
| | _materialManager->saveMaterial(_library, |
| | newMaterial, |
| | QStringLiteral("/Test Material3.FCMat"), |
| | false, |
| | true, |
| | true); |
| | EXPECT_EQ(newMaterial->getUUID(), _testMaterialUUID); |
| | EXPECT_EQ(newMaterial->getName(), QStringLiteral("Test Material3")); |
| |
|
| | |
| | _materialManager->saveMaterial(_library, |
| | newMaterial, |
| | QStringLiteral("/Test Material4.FCMat"), |
| | false, |
| | false, |
| | true); |
| | EXPECT_NE(newMaterial->getUUID(), _testMaterialUUID); |
| | EXPECT_EQ(newMaterial->getName(), QStringLiteral("Test Material4")); |
| | QString uuid1 = newMaterial->getUUID(); |
| |
|
| | |
| | _materialManager->saveMaterial(_library, |
| | newMaterial, |
| | QStringLiteral("/Test Material5.FCMat"), |
| | false, |
| | true, |
| | true); |
| | EXPECT_EQ(newMaterial->getUUID(), uuid1); |
| | EXPECT_EQ(newMaterial->getName(), QStringLiteral("Test Material5")); |
| |
|
| | _materialManager->saveMaterial(_library, |
| | newMaterial, |
| | QStringLiteral("/Test Material5.FCMat"), |
| | true, |
| | true, |
| | true); |
| | EXPECT_EQ(newMaterial->getUUID(), uuid1); |
| | EXPECT_EQ(newMaterial->getName(), QStringLiteral("Test Material5")); |
| |
|
| | |
| | _materialManager->saveMaterial(_library, |
| | newMaterial, |
| | QStringLiteral("/Test Material6.FCMat"), |
| | false, |
| | true, |
| | true); |
| | EXPECT_EQ(newMaterial->getUUID(), uuid1); |
| | EXPECT_EQ(newMaterial->getName(), QStringLiteral("Test Material6")); |
| |
|
| | _materialManager->saveMaterial(_library, |
| | newMaterial, |
| | QStringLiteral("/Test Material6.FCMat"), |
| | true, |
| | false, |
| | true); |
| | EXPECT_EQ(newMaterial->getUUID(), uuid1); |
| | EXPECT_EQ(newMaterial->getName(), QStringLiteral("Test Material6")); |
| | } |
| |
|
| | TEST_F(TestMaterialCards, TestColumns) |
| | { |
| | ASSERT_NE(_modelManager, nullptr); |
| | ASSERT_TRUE(_library); |
| |
|
| | auto testMaterial = _materialManager->getMaterial(_testMaterialUUID); |
| |
|
| | EXPECT_TRUE(testMaterial->hasPhysicalProperty(QStringLiteral("TestArray2D"))); |
| | auto array2d = testMaterial->getPhysicalProperty(QStringLiteral("TestArray2D"))->getMaterialValue(); |
| | EXPECT_TRUE(array2d); |
| | EXPECT_EQ(dynamic_cast<Materials::Array2D &>(*array2d).columns(), 2); |
| |
|
| | EXPECT_TRUE(testMaterial->hasPhysicalProperty(QStringLiteral("TestArray2D3Column"))); |
| | auto array2d3Column = testMaterial->getPhysicalProperty(QStringLiteral("TestArray2D3Column"))->getMaterialValue(); |
| | EXPECT_TRUE(array2d3Column); |
| | EXPECT_EQ(dynamic_cast<Materials::Array2D &>(*array2d3Column).columns(), 3); |
| |
|
| | EXPECT_TRUE(testMaterial->hasPhysicalProperty(QStringLiteral("TestArray3D"))); |
| | auto array3d = testMaterial->getPhysicalProperty(QStringLiteral("TestArray3D"))->getMaterialValue(); |
| | EXPECT_TRUE(array3d); |
| | EXPECT_EQ(dynamic_cast<Materials::Array3D &>(*array3d).columns(), 2); |
| | } |
| |
|
| | |
| |
|