#include "gtest/gtest.h" #include "RiaQDateTimeTools.h" #include "RiaTestDataDirectory.h" #include "RimProject.h" #include "cafFilePath.h" #include "cafPdmObjectHandle.h" #include #include #include //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- template void fieldsByType(caf::PdmObjectHandle* object, std::vector& typedFields) { if (!object) return; std::vector allFieldsInObject; object->fields(allFieldsInObject); std::vector children; for (const auto& field : allFieldsInObject) { caf::PdmField* typedField = dynamic_cast*>(field); if (typedField) typedFields.push_back(&typedField->v()); caf::PdmField< std::vector >* typedFieldInVector = dynamic_cast >*>(field); if (typedFieldInVector) { for (T& typedFieldFromVector : typedFieldInVector->v()) { typedFields.push_back(&typedFieldFromVector); } } field->childObjects(&children); } for (const auto& child : children) { fieldsByType(child, typedFields); } } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- TEST(RimRelocatePathTest, findPathsInProjectFile) { QString fileName = QString("%1/RimRelocatePath/RelocatePath.rsp").arg(TEST_DATA_DIR); if (fileName.isEmpty()) return; RimProject project; project.fileName = fileName; project.readFile(); std::vector< caf::FilePath* > filePaths; fieldsByType(&project, filePaths); for (auto filePath : filePaths) { std::cout << filePath->path().toStdString() << std::endl; } } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- TEST(RimRelocatePathTest, DISABLED_LocaleDateStringTest) { // Set a non-english system locale on local machine for this test to be useful QDateTime dt; { QDate d(2018, 10, 1); dt.setDate(d); } QString formatString("ddd MMM yyyy"); // Change the default locale on your system to get a different text then the english formatted text QString defaultString = dt.toString(formatString); std::cout << "default " << defaultString.toStdString() << std::endl; QString englishString = RiaQDateTimeTools::toStringUsingApplicationLocale(dt, formatString); std::cout << "english " << englishString.toStdString() << std::endl; }