Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenkernel/intern/asset_library_service_test.cc
- This file was added.
| /* | |||||
| * This program is free software; you can redistribute it and/or | |||||
| * modify it under the terms of the GNU General Public License | |||||
| * as published by the Free Software Foundation; either version 2 | |||||
| * of the License, or (at your option) any later version. | |||||
| * | |||||
| * This program is distributed in the hope that it will be useful, | |||||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
| * GNU General Public License for more details. | |||||
| * | |||||
| * You should have received a copy of the GNU General Public License | |||||
| * along with this program; if not, write to the Free Software Foundation, | |||||
| * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||||
| * | |||||
| * The Original Code is Copyright (C) 2020 Blender Foundation | |||||
| * All rights reserved. | |||||
| */ | |||||
| #include "asset_library_service.hh" | |||||
| #include "CLG_log.h" | |||||
| #include "testing/testing.h" | |||||
| namespace blender::bke::tests { | |||||
| class AssetLibraryServiceTest : public testing::Test { | |||||
| public: | |||||
| CatalogFilePath asset_library_root_; | |||||
| static void SetUpTestSuite() | |||||
| { | |||||
| CLG_init(); | |||||
| } | |||||
| static void TearDownTestSuite() | |||||
| { | |||||
| CLG_exit(); | |||||
| } | |||||
| void SetUp() override | |||||
| { | |||||
| const std::string test_files_dir = blender::tests::flags_test_asset_dir(); | |||||
| if (test_files_dir.empty()) { | |||||
| FAIL(); | |||||
| } | |||||
| asset_library_root_ = test_files_dir + "/" + "asset_library"; | |||||
| } | |||||
| void TearDown() override | |||||
| { | |||||
| AssetLibraryService::destroy(); | |||||
| } | |||||
| }; | |||||
| TEST_F(AssetLibraryServiceTest, get_destroy) | |||||
| { | |||||
| AssetLibraryService *const service = AssetLibraryService::get(); | |||||
| EXPECT_EQ(service, AssetLibraryService::get()) | |||||
| << "Calling twice without destroying in between should return the same instance."; | |||||
| AssetLibraryService::destroy(); | |||||
| EXPECT_NE(service, AssetLibraryService::get()) | |||||
| << "Calling twice with destroying in between should return a new instance."; | |||||
| /* This should not crash. */ | |||||
| AssetLibraryService::destroy(); | |||||
| AssetLibraryService::destroy(); | |||||
| } | |||||
| TEST_F(AssetLibraryServiceTest, library_pointers) | |||||
| { | |||||
| AssetLibraryService *service = AssetLibraryService::get(); | |||||
| AssetLibrary *const lib = service->get_asset_library_on_disk(asset_library_root_); | |||||
| AssetLibrary *const curfile_lib = service->get_asset_library_current_file(); | |||||
| EXPECT_EQ(lib, service->get_asset_library_on_disk(asset_library_root_)) | |||||
| << "Calling twice without destroying in between should return the same instance."; | |||||
| EXPECT_EQ(curfile_lib, service->get_asset_library_current_file()) | |||||
| << "Calling twice without destroying in between should return the same instance."; | |||||
| AssetLibraryService::destroy(); | |||||
| service = AssetLibraryService::get(); | |||||
| EXPECT_NE(lib, service->get_asset_library_on_disk(asset_library_root_)) | |||||
| << "Calling twice with destroying in between should return a new instance."; | |||||
| EXPECT_NE(curfile_lib, service->get_asset_library_current_file()) | |||||
| << "Calling twice with destroying in between should return a new instance."; | |||||
| } | |||||
| TEST_F(AssetLibraryServiceTest, catalogs_loaded) | |||||
| { | |||||
| AssetLibraryService *const service = AssetLibraryService::get(); | |||||
| AssetLibrary *const lib = service->get_asset_library_on_disk(asset_library_root_); | |||||
| AssetCatalogService *const cat_service = lib->catalog_service.get(); | |||||
| const bUUID UUID_POSES_ELLIE("df60e1f6-2259-475b-93d9-69a1b4a8db78"); | |||||
| EXPECT_NE(nullptr, cat_service->find_catalog(UUID_POSES_ELLIE)) | |||||
| << "Catalogs should be loaded after getting an asset library from disk."; | |||||
| } | |||||
| } // namespace blender::bke::tests | |||||