Added missing fr translations + added missing unit tests

This commit is contained in:
emeric
2024-01-26 17:47:39 +01:00
parent 0ed3f1ba79
commit 9461b2a936
6 changed files with 204 additions and 29 deletions
+12 -6
View File
@@ -34,8 +34,10 @@ namespace Database
auto query{ session.query<ArtistId>("SELECT a.id from artist a")
.join("track t ON t.id = t_a_l.track_id")
.join("track_artist_link t_a_l ON t_a_l.artist_id = a.id")
.join("listen l ON l.track_id = t.id")
.where("l.user_id = ?").bind(params.user) };
.join("listen l ON l.track_id = t.id") };
if (params.user.isValid())
query.where("l.user_id = ?").bind(params.user);
if (params.backend)
query.where("l.backend = ?").bind(*params.backend);
@@ -77,8 +79,10 @@ namespace Database
{
auto query{ session.query<ReleaseId>("SELECT r.id from release r")
.join("track t ON t.release_id = r.id")
.join("listen l ON l.track_id = t.id")
.where("l.user_id = ?").bind(params.user) };
.join("listen l ON l.track_id = t.id") };
if (params.user.isValid())
query.where("l.user_id = ?").bind(params.user);
if (params.backend)
query.where("l.backend = ?").bind(*params.backend);
@@ -119,8 +123,10 @@ namespace Database
Wt::Dbo::Query<TrackId> createTracksQuery(Wt::Dbo::Session& session, const Listen::StatsFindParameters& params)
{
auto query{ session.query<TrackId>("SELECT t.id from track t")
.join("listen l ON l.track_id = t.id")
.where("l.user_id = ?").bind(params.user) };
.join("listen l ON l.track_id = t.id") };
if (params.user.isValid())
query.where("l.user_id = ?").bind(params.user);
if (params.backend)
query.where("l.backend = ?").bind(*params.backend);
+119 -1
View File
@@ -1045,6 +1045,45 @@ TEST_F(DatabaseFixture, Listen_getRecentArtists_cluster)
}
}
TEST_F(DatabaseFixture, Listen_getRecentArtists_mediaLibrary)
{
ScopedTrack track{ session, "MyTrack" };
ScopedUser user{ session, "MyUser" };
ScopedArtist artist{ session, "MyArtist" };
ScopedMediaLibrary library{ session };
ScopedMediaLibrary otherLibrary{ session };
{
auto transaction{ session.createWriteTransaction() };
TrackArtistLink::create(session, track.get(), artist.get(), TrackArtistLinkType::Artist);
track.get().modify()->setMediaLibrary(library.get());
}
const Wt::WDateTime dateTime{ Wt::WDate {2000, 1, 2}, Wt::WTime {12,0, 1} };
ScopedListen listen1{ session, user.lockAndGet(), track.lockAndGet(), ScrobblingBackend::Internal, dateTime };
{
auto transaction{ session.createReadTransaction() };
Listen::ArtistStatsFindParameters params;
params.setMediaLibrary(library.getId());
auto artists{ Listen::getRecentArtists(session, params) };
ASSERT_EQ(artists.results.size(), 1);
EXPECT_EQ(artists.results[0], artist->getId());
}
{
auto transaction{ session.createReadTransaction() };
Listen::ArtistStatsFindParameters params;
params.setMediaLibrary(otherLibrary.getId());
auto artists{ Listen::getRecentArtists(session, params) };
EXPECT_EQ(artists.results.size(), 0);
}
}
TEST_F(DatabaseFixture, Listen_getRecentReleases)
{
ScopedTrack track{ session, "MyTrack" };
@@ -1096,7 +1135,6 @@ TEST_F(DatabaseFixture, Listen_getRecentReleases)
}
}
TEST_F(DatabaseFixture, Listen_getMostRecentRelease)
{
ScopedTrack track{ session, "MyTrack" };
@@ -1282,6 +1320,46 @@ TEST_F(DatabaseFixture, Listen_getRecentReleases_cluster)
}
}
TEST_F(DatabaseFixture, Listen_getRecentReleases_mediaLibrary)
{
ScopedTrack track{ session, "MyTrack" };
ScopedUser user{ session, "MyUser" };
ScopedRelease release{ session, "MyRelease" };
ScopedMediaLibrary library{ session };
ScopedMediaLibrary otherLibrary{ session };
{
auto transaction{ session.createWriteTransaction() };
track.get().modify()->setRelease(release.get());
track.get().modify()->setMediaLibrary(library.get());
}
const Wt::WDateTime dateTime{ Wt::WDate {2000, 1, 2}, Wt::WTime {12,0, 1} };
ScopedListen listen1{ session, user.lockAndGet(), track.lockAndGet(), ScrobblingBackend::Internal, dateTime };
{
auto transaction{ session.createReadTransaction() };
Listen::StatsFindParameters params;
params.setMediaLibrary(library.getId());
auto releases{ Listen::getRecentReleases(session, params) };
EXPECT_EQ(releases.moreResults, false);
ASSERT_EQ(releases.results.size(), 1);
EXPECT_EQ(releases.results[0], release.getId());
}
{
auto transaction{ session.createReadTransaction() };
Listen::StatsFindParameters params;
params.setMediaLibrary(otherLibrary.getId());
auto releases{ Listen::getRecentReleases(session, params) };
EXPECT_EQ(releases.moreResults, false);
EXPECT_EQ(releases.results.size(), 0);
}
}
TEST_F(DatabaseFixture, Listen_getRecentTracks)
{
ScopedTrack track{ session, "MyTrack" };
@@ -1328,6 +1406,46 @@ TEST_F(DatabaseFixture, Listen_getRecentTracks)
}
}
TEST_F(DatabaseFixture, Listen_getRecentTracks_mediaLibrary)
{
ScopedTrack track{ session, "MyTrack" };
ScopedUser user{ session, "MyUser" };
ScopedMediaLibrary library{ session };
ScopedMediaLibrary otherLibrary{ session };
const Wt::WDateTime dateTime{ Wt::WDate {2000, 1, 2}, Wt::WTime {12,0, 1} };
ScopedListen listen1{ session, user.lockAndGet(), track.lockAndGet(), ScrobblingBackend::Internal, dateTime };
{
auto transaction{ session.createWriteTransaction() };
track.get().modify()->setMediaLibrary(library.get());
}
{
auto transaction{ session.createReadTransaction() };
Listen::StatsFindParameters params;
params.setMediaLibrary(library.getId());
auto tracks{ Listen::getRecentTracks(session, params) };
EXPECT_EQ(tracks.moreResults, false);
ASSERT_EQ(tracks.results.size(), 1);
EXPECT_EQ(tracks.results[0], track.getId());
}
{
auto transaction{ session.createReadTransaction() };
Listen::StatsFindParameters params;
params.setMediaLibrary(otherLibrary.getId());
auto tracks{ Listen::getRecentTracks(session, params) };
EXPECT_EQ(tracks.moreResults, false);
EXPECT_EQ(tracks.results.size(), 0);
}
}
TEST_F(DatabaseFixture, Listen_getCount_track)
{
ScopedTrack track{ session, "MyTrack" };