Changed schema to allow multiple releases/artists to share the same image

This commit is contained in:
emeric
2024-10-04 09:54:04 +02:00
parent b5d650791c
commit 55c7dea8d8
9 changed files with 133 additions and 24 deletions
+28
View File
@@ -19,8 +19,12 @@
#include "Common.hpp"
#include "database/Image.hpp"
namespace lms::db::tests
{
using ScopedImage = ScopedEntity<db::Image>;
TEST_F(DatabaseFixture, Artist)
{
{
@@ -697,4 +701,28 @@ namespace lms::db::tests
EXPECT_EQ(artists.results.front(), artist.getId());
}
}
TEST_F(DatabaseFixture, Artist_image)
{
ScopedArtist release{ session, "MyArtist" };
{
auto transaction{ session.createReadTransaction() };
EXPECT_FALSE(release.get()->getImage());
}
ScopedImage image{ session, "/myImage" };
{
auto transaction{ session.createWriteTransaction() };
release.get().modify()->setImage(image.get());
}
{
auto transaction{ session.createReadTransaction() };
auto artistImage(release.get()->getImage());
ASSERT_TRUE(artistImage);
EXPECT_EQ(artistImage->getId(), image.getId());
}
}
} // namespace lms::db::tests
+27
View File
@@ -19,8 +19,11 @@
#include "Common.hpp"
#include "database/Image.hpp"
namespace lms::db::tests
{
using ScopedImage = ScopedEntity<db::Image>;
using ScopedLabel = ScopedEntity<db::Label>;
using ScopedReleaseType = ScopedEntity<db::ReleaseType>;
@@ -1038,4 +1041,28 @@ namespace lms::db::tests
EXPECT_EQ(release3->getTrackCount(), 0);
}
}
TEST_F(DatabaseFixture, Release_image)
{
ScopedRelease release{ session, "MyRelease" };
{
auto transaction{ session.createReadTransaction() };
EXPECT_FALSE(release.get()->getImage());
}
ScopedImage image{ session, "/myImage" };
{
auto transaction{ session.createWriteTransaction() };
release.get().modify()->setImage(image.get());
}
{
auto transaction{ session.createReadTransaction() };
auto releaseImage(release.get()->getImage());
ASSERT_TRUE(releaseImage);
EXPECT_EQ(releaseImage->getId(), image.getId());
}
}
} // namespace lms::db::tests