From 0a320a8b8715be0cd6052bd9bd836deb64cc9968 Mon Sep 17 00:00:00 2001 From: emeric Date: Fri, 15 Nov 2024 18:16:00 +0100 Subject: [PATCH] Fixed unit tests --- src/libs/database/impl/MediaLibrary.cpp | 6 ++--- .../include/database/MediaLibrary.hpp | 4 ++-- src/libs/database/test/Artist.cpp | 8 +++---- src/libs/database/test/Directory.cpp | 2 +- src/libs/database/test/Listen.cpp | 24 +++++++++---------- src/libs/database/test/Release.cpp | 8 +++---- src/libs/database/test/Track.cpp | 8 +++---- src/libs/database/test/TrackList.cpp | 2 +- src/lms/ui/admin/MediaLibraryModal.cpp | 17 +++++++++---- src/tools/db-generator/LmsDbGenerator.cpp | 2 +- 10 files changed, 45 insertions(+), 36 deletions(-) diff --git a/src/libs/database/impl/MediaLibrary.cpp b/src/libs/database/impl/MediaLibrary.cpp index 65482ea25..a01b291ca 100644 --- a/src/libs/database/impl/MediaLibrary.cpp +++ b/src/libs/database/impl/MediaLibrary.cpp @@ -30,15 +30,15 @@ namespace lms::db { - MediaLibrary::MediaLibrary(const std::filesystem::path& p, std::string_view name) + MediaLibrary::MediaLibrary(std::string_view name, const std::filesystem::path& p) : _name{ std::string{ name, 0, maxNameLength } } { setPath(p); } - MediaLibrary::pointer MediaLibrary::create(Session& session, const std::filesystem::path& p, std::string_view name) + MediaLibrary::pointer MediaLibrary::create(Session& session, std::string_view name, const std::filesystem::path& p) { - return session.getDboSession()->add(std::unique_ptr{ new MediaLibrary{ p, name } }); + return session.getDboSession()->add(std::unique_ptr{ new MediaLibrary{ name, p } }); } std::size_t MediaLibrary::getCount(Session& session) diff --git a/src/libs/database/include/database/MediaLibrary.hpp b/src/libs/database/include/database/MediaLibrary.hpp index 26144fbc6..324260580 100644 --- a/src/libs/database/include/database/MediaLibrary.hpp +++ b/src/libs/database/include/database/MediaLibrary.hpp @@ -64,8 +64,8 @@ namespace lms::db private: friend class Session; - MediaLibrary(const std::filesystem::path& p, std::string_view name); - static pointer create(Session& session, const std::filesystem::path& p = {}, std::string_view name = {}); + MediaLibrary(std::string_view name, const std::filesystem::path& p); + static pointer create(Session& session, std::string_view name, const std::filesystem::path& p); std::filesystem::path _path; std::string _name; diff --git a/src/libs/database/test/Artist.cpp b/src/libs/database/test/Artist.cpp index 3a0622ffe..85f6ece51 100644 --- a/src/libs/database/test/Artist.cpp +++ b/src/libs/database/test/Artist.cpp @@ -89,8 +89,8 @@ namespace lms::db::tests ScopedArtist artist1{ session, "MyArtist1" }; ScopedArtist artist2{ session, "MyArtist2" }; ScopedArtist artist3{ session, "MyArtist3" }; - ScopedMediaLibrary library{ session }; - ScopedMediaLibrary otherLibrary{ session }; + ScopedMediaLibrary library{ session, "MyLibrary", "/root" }; + ScopedMediaLibrary otherLibrary{ session, "OtherLibrary", "/otherRoot" }; { auto transaction{ session.createWriteTransaction() }; @@ -306,8 +306,8 @@ namespace lms::db::tests { ScopedTrack track{ session }; ScopedArtist artist{ session, "MyArtist" }; - ScopedMediaLibrary library{ session }; - ScopedMediaLibrary otherLibrary{ session }; + ScopedMediaLibrary library{ session, "MyLibrary", "/root" }; + ScopedMediaLibrary otherLibrary{ session, "OtherLibrary", "/otherRoot" }; { auto transaction{ session.createWriteTransaction() }; diff --git a/src/libs/database/test/Directory.cpp b/src/libs/database/test/Directory.cpp index ddfc74554..546a0de02 100644 --- a/src/libs/database/test/Directory.cpp +++ b/src/libs/database/test/Directory.cpp @@ -260,7 +260,7 @@ namespace lms::db::tests ScopedDirectory parent2{ session, "/root_1" }; ScopedDirectory child2{ session, "/root_1/foo" }; - ScopedMediaLibrary library{ session, "/root" }; + ScopedMediaLibrary library{ session, "MyLibrary", "/root" }; { auto transaction{ session.createReadTransaction() }; diff --git a/src/libs/database/test/Listen.cpp b/src/libs/database/test/Listen.cpp index 7f299798b..dd0c2cdeb 100644 --- a/src/libs/database/test/Listen.cpp +++ b/src/libs/database/test/Listen.cpp @@ -343,8 +343,8 @@ namespace lms::db::tests ScopedUser user{ session, "MyUser" }; const Wt::WDateTime dateTime1{ Wt::WDate{ 2000, 1, 2 }, Wt::WTime{ 12, 0, 1 } }; ScopedListen listen{ session, user.lockAndGet(), track.lockAndGet(), ScrobblingBackend::Internal, dateTime1 }; - ScopedMediaLibrary library{ session }; - ScopedMediaLibrary otherLibrary{ session }; + ScopedMediaLibrary library{ session, "MyLibrary", "/root" }; + ScopedMediaLibrary otherLibrary{ session, "OtherLibrary", "/otherRoot" }; { auto transaction{ session.createReadTransaction() }; @@ -563,8 +563,8 @@ namespace lms::db::tests ScopedUser user{ session, "MyUser" }; const Wt::WDateTime dateTime{ Wt::WDate{ 2000, 1, 2 }, Wt::WTime{ 12, 0, 1 } }; ScopedRelease release{ session, "MyRelease" }; - ScopedMediaLibrary library{ session }; - ScopedMediaLibrary otherLibrary{ session }; + ScopedMediaLibrary library{ session, "MyLibrary", "/root" }; + ScopedMediaLibrary otherLibrary{ session, "OtherLibrary", "/otherRoot" }; { auto transaction{ session.createWriteTransaction() }; @@ -809,8 +809,8 @@ namespace lms::db::tests ScopedTrack track{ session }; ScopedUser user{ session, "MyUser" }; const Wt::WDateTime dateTime{ Wt::WDate{ 2000, 1, 2 }, Wt::WTime{ 12, 0, 1 } }; - ScopedMediaLibrary library{ session }; - ScopedMediaLibrary otherLibrary{ session }; + ScopedMediaLibrary library{ session, "MyLibrary", "/root" }; + ScopedMediaLibrary otherLibrary{ session, "OtherLibrary", "/otherRoot" }; { auto transaction{ session.createReadTransaction() }; @@ -1051,8 +1051,8 @@ namespace lms::db::tests ScopedTrack track{ session }; ScopedUser user{ session, "MyUser" }; ScopedArtist artist{ session, "MyArtist" }; - ScopedMediaLibrary library{ session }; - ScopedMediaLibrary otherLibrary{ session }; + ScopedMediaLibrary library{ session, "MyLibrary", "/root" }; + ScopedMediaLibrary otherLibrary{ session, "OtherLibrary", "/otherRoot" }; { auto transaction{ session.createWriteTransaction() }; @@ -1325,8 +1325,8 @@ namespace lms::db::tests ScopedTrack track{ session }; ScopedUser user{ session, "MyUser" }; ScopedRelease release{ session, "MyRelease" }; - ScopedMediaLibrary library{ session }; - ScopedMediaLibrary otherLibrary{ session }; + ScopedMediaLibrary library{ session, "MyLibrary", "/root" }; + ScopedMediaLibrary otherLibrary{ session, "OtherLibrary", "/otherRoot" }; { auto transaction{ session.createWriteTransaction() }; @@ -1410,8 +1410,8 @@ namespace lms::db::tests { ScopedTrack track{ session }; ScopedUser user{ session, "MyUser" }; - ScopedMediaLibrary library{ session }; - ScopedMediaLibrary otherLibrary{ session }; + ScopedMediaLibrary library{ session, "MyLibrary", "/root" }; + ScopedMediaLibrary otherLibrary{ session, "OtherLibrary", "/otherRoot" }; const Wt::WDateTime dateTime{ Wt::WDate{ 2000, 1, 2 }, Wt::WTime{ 12, 0, 1 } }; ScopedListen listen1{ session, user.lockAndGet(), track.lockAndGet(), ScrobblingBackend::Internal, dateTime }; diff --git a/src/libs/database/test/Release.cpp b/src/libs/database/test/Release.cpp index 73fa51dd9..d3ee941a2 100644 --- a/src/libs/database/test/Release.cpp +++ b/src/libs/database/test/Release.cpp @@ -86,8 +86,8 @@ namespace lms::db::tests ScopedRelease release1{ session, "MyRelease1" }; ScopedRelease release2{ session, "MyRelease2" }; ScopedRelease release3{ session, "MyRelease3" }; - ScopedMediaLibrary library{ session }; - ScopedMediaLibrary otherLibrary{ session }; + ScopedMediaLibrary library{ session, "MyLibrary", "/root" }; + ScopedMediaLibrary otherLibrary{ session, "OtherLibrary", "/otherRoot" }; { auto transaction{ session.createWriteTransaction() }; @@ -233,8 +233,8 @@ namespace lms::db::tests { ScopedTrack track{ session }; ScopedRelease release{ session, "MyRelease" }; - ScopedMediaLibrary library{ session }; - ScopedMediaLibrary otherLibrary{ session }; + ScopedMediaLibrary library{ session, "MyLibrary", "/root" }; + ScopedMediaLibrary otherLibrary{ session, "OtherLibrary", "/otherRoot" }; { auto transaction{ session.createWriteTransaction() }; diff --git a/src/libs/database/test/Track.cpp b/src/libs/database/test/Track.cpp index bd863bfbf..8c9a13d87 100644 --- a/src/libs/database/test/Track.cpp +++ b/src/libs/database/test/Track.cpp @@ -67,8 +67,8 @@ namespace lms::db::tests ScopedTrack track1{ session }; ScopedTrack track2{ session }; ScopedTrack track3{ session }; - ScopedMediaLibrary library{ session }; - ScopedMediaLibrary otherLibrary{ session }; + ScopedMediaLibrary library{ session, "MyLibrary", "/root" }; + ScopedMediaLibrary otherLibrary{ session, "OtherLibrary", "/otherRoot" }; { auto transaction{ session.createWriteTransaction() }; @@ -148,8 +148,8 @@ namespace lms::db::tests TEST_F(DatabaseFixture, Track_MediaLibrary) { ScopedTrack track{ session }; - ScopedMediaLibrary library{ session }; - ScopedMediaLibrary otherLibrary{ session }; + ScopedMediaLibrary library{ session, "MyLibrary", "/root" }; + ScopedMediaLibrary otherLibrary{ session, "OtherLibrary", "/otherRoot" }; { auto transaction{ session.createWriteTransaction() }; diff --git a/src/libs/database/test/TrackList.cpp b/src/libs/database/test/TrackList.cpp index 4fde7fa48..199ad4f5a 100644 --- a/src/libs/database/test/TrackList.cpp +++ b/src/libs/database/test/TrackList.cpp @@ -158,7 +158,7 @@ namespace lms::db::tests ScopedTrackList trackList2{ session, "MytrackList2", TrackListType::Playlist, false, user.lockAndGet() }; ScopedTrack track1{ session }; ScopedTrack track2{ session }; - ScopedMediaLibrary library{ session }; + ScopedMediaLibrary library{ session, "MyLibrary", "/root" }; { auto transaction{ session.createWriteTransaction() }; diff --git a/src/lms/ui/admin/MediaLibraryModal.cpp b/src/lms/ui/admin/MediaLibraryModal.cpp index 4b5560109..fb9a20ba1 100644 --- a/src/lms/ui/admin/MediaLibraryModal.cpp +++ b/src/lms/ui/admin/MediaLibraryModal.cpp @@ -151,14 +151,23 @@ namespace lms::ui auto& session{ LmsApp->getDbSession() }; auto transaction{ LmsApp->getDbSession().createWriteTransaction() }; + std::string name{ valueText(NameField).toUTF8() }; + std::string path{ valueText(DirectoryField).toUTF8() }; + MediaLibrary::pointer library; if (_libraryId.isValid()) + { library = MediaLibrary::find(session, _libraryId); + if (library) + { + library.modify()->setName(name); + library.modify()->setPath(path); + } + } else - library = session.create(); - - library.modify()->setName(valueText(NameField).toUTF8()); - library.modify()->setPath(valueText(DirectoryField).toUTF8()); + { + library = session.create(name, path); + } return library->getId(); } diff --git a/src/tools/db-generator/LmsDbGenerator.cpp b/src/tools/db-generator/LmsDbGenerator.cpp index b046e04ba..b4361d24b 100644 --- a/src/tools/db-generator/LmsDbGenerator.cpp +++ b/src/tools/db-generator/LmsDbGenerator.cpp @@ -142,7 +142,7 @@ namespace lms // create some random media libraries for (std::size_t i{}; i < params.mediaLibraryCount; ++i) - context.mediaLibraries.push_back(context.session.create()); + context.mediaLibraries.push_back(context.session.create("Library" + std::to_string(i), "/root" + std::to_string(i))); // create some random genres/moods {