Better handle badly tagged multi-discs releases

This commit is contained in:
emeric
2022-09-04 21:14:48 +02:00
parent a6e2818a38
commit 56e9b4f787
8 changed files with 72 additions and 16 deletions
@@ -464,3 +464,47 @@ TEST_F(DatabaseFixture, Release_artist)
}
}
TEST_F(DatabaseFixture, Release_getDiscCount)
{
ScopedRelease release {session, "MyRelease"};
ScopedTrack track {session, "MyTrack"};
ScopedTrack track2 {session, "MyTrack2"};
{
auto transaction {session.createSharedTransaction()};
EXPECT_EQ(release.get()->getDiscCount(), 0);
}
{
auto transaction {session.createUniqueTransaction()};
track.get().modify()->setRelease(release.get());
}
{
auto transaction {session.createSharedTransaction()};
EXPECT_EQ(release.get()->getDiscCount(), 1);
}
{
auto transaction {session.createUniqueTransaction()};
track.get().modify()->setDiscNumber(5);
}
{
auto transaction {session.createSharedTransaction()};
EXPECT_EQ(release.get()->getDiscCount(), 1);
}
{
auto transaction {session.createUniqueTransaction()};
track2.get().modify()->setRelease(release.get());
track2.get().modify()->setDiscNumber(5);
}
{
auto transaction {session.createSharedTransaction()};
EXPECT_EQ(release.get()->getDiscCount(), 1);
}
{
auto transaction {session.createUniqueTransaction()};
track2.get().modify()->setDiscNumber(6);
}
{
auto transaction {session.createSharedTransaction()};
EXPECT_EQ(release.get()->getDiscCount(), 2);
}
}