Added unit tests on orphaned entries

This commit is contained in:
emeric
2019-05-16 13:49:56 +02:00
parent 41c317d3ff
commit febfe518ba
4 changed files with 111 additions and 30 deletions
+99 -23
View File
@@ -39,11 +39,6 @@ class ScopedFileDeleter final
boost::filesystem::path _path;
};
/*static void check(bool cond)
{
if (!cond)
}*/
#define CHECK(PRED) \
{ \
if (!(PRED)) \
@@ -172,9 +167,16 @@ testSingleCluster(Wt::Dbo::Session& session)
CHECK(clusters.front().id() == clusterId);
CHECK(clusters.front()->getType().id() == clusterTypeId);
clusters = Cluster::getAllOrphans(session);
CHECK(clusters.size() == 1);
CHECK(clusters.front().id() == clusterId);
auto clusterTypes {ClusterType::getAll(session)};
CHECK(clusterTypes.size() == 1);
CHECK(clusterTypes.front().id() == clusterTypeId);
clusterTypes = ClusterType::getAllOrphans(session);
CHECK(clusterTypes.empty());
}
{
@@ -182,11 +184,18 @@ testSingleCluster(Wt::Dbo::Session& session)
auto cluster {Cluster::getById(session, clusterId)};
CHECK(cluster);
CHECK(cluster->getType().id() == clusterTypeId);
cluster.remove();
auto clusterTypes {ClusterType::getAllOrphans(session)};
CHECK(clusterTypes.size() == 1);
}
{
Wt::Dbo::Transaction transaction {session};
auto clusterType {ClusterType::getById(session, clusterTypeId)};
CHECK(clusterType);
cluster.remove();
clusterType.remove();
}
}
@@ -212,6 +221,11 @@ testSingleTrackSingleArtist(Wt::Dbo::Session& session)
artistId = artist.id();
}
{
Wt::Dbo::Transaction transaction {session};
CHECK(Artist::getAllOrphans(session).empty());
}
{
Wt::Dbo::Transaction transaction {session};
@@ -229,7 +243,7 @@ testSingleTrackSingleArtist(Wt::Dbo::Session& session)
CHECK(artistLink->getArtist().id() == artistId);
CHECK(track->getArtists(TrackArtistLink::Type::Artist).size() == 1);
CHECK(track->getArtists(TrackArtistLink::Type::ReleaseArtist).size() == 0);
CHECK(track->getArtists(TrackArtistLink::Type::ReleaseArtist).empty());
}
{
@@ -242,7 +256,7 @@ testSingleTrackSingleArtist(Wt::Dbo::Session& session)
auto track {tracks.front()};
CHECK(track.id() == trackId);
CHECK(artist->getTracks(TrackArtistLink::Type::ReleaseArtist).size() == 0);
CHECK(artist->getTracks(TrackArtistLink::Type::ReleaseArtist).empty());
CHECK(artist->getTracks(TrackArtistLink::Type::Artist).size() == 1);
track.remove();
@@ -271,6 +285,11 @@ testSingleTrackSingleArtistMultiRoles(Wt::Dbo::Session& session)
artistId = artist.id();
}
{
Wt::Dbo::Transaction transaction {session};
CHECK(Artist::getAllOrphans(session).empty());
}
{
Wt::Dbo::Transaction transaction {session};
@@ -331,6 +350,11 @@ testSingleTrackMultiArtists(Wt::Dbo::Session& session)
CHECK(artist1Id != artist2Id);
}
{
Wt::Dbo::Transaction transaction {session};
CHECK(Artist::getAllOrphans(session).empty());
}
{
Wt::Dbo::Transaction transaction {session};
@@ -343,7 +367,7 @@ testSingleTrackMultiArtists(Wt::Dbo::Session& session)
|| (artists[0].id() == artist2Id && artists[1].id() == artist1Id));
CHECK(track->getArtists(TrackArtistLink::Type::Artist).size() == 2);
CHECK(track->getArtists(TrackArtistLink::Type::ReleaseArtist).size() == 0);
CHECK(track->getArtists(TrackArtistLink::Type::ReleaseArtist).empty());
CHECK(Artist::getAll(session).size() == 2);
}
@@ -361,9 +385,9 @@ testSingleTrackMultiArtists(Wt::Dbo::Session& session)
CHECK(artist2->getTracks().front() == track);
CHECK(artist1->getTracks(TrackArtistLink::Type::ReleaseArtist).size() == 0);
CHECK(artist1->getTracks(TrackArtistLink::Type::ReleaseArtist).empty());
CHECK(artist1->getTracks(TrackArtistLink::Type::Artist).size() == 1);
CHECK(artist2->getTracks(TrackArtistLink::Type::ReleaseArtist).size() == 0);
CHECK(artist2->getTracks(TrackArtistLink::Type::ReleaseArtist).empty());
CHECK(artist2->getTracks(TrackArtistLink::Type::Artist).size() == 1);
track.remove();
@@ -395,18 +419,32 @@ testSingleTrackSingleRelease(Wt::Dbo::Session& session)
{
Wt::Dbo::Transaction transaction {session};
auto track {Track::getById(session, trackId)};
CHECK(track);
CHECK(track->getRelease());
CHECK(track->getRelease().id() == releaseId);
CHECK(Release::getAllOrphans(session).empty());
auto release {Release::getById(session, releaseId)};
CHECK(release);
CHECK(release->getTracks().size() == 1);
CHECK(release->getTracks().front().id() == trackId);
}
{
Wt::Dbo::Transaction transaction {session};
auto track {Track::getById(session, trackId)};
CHECK(track);
CHECK(track->getRelease());
CHECK(track->getRelease().id() == releaseId);
track.remove();
}
{
Wt::Dbo::Transaction transaction {session};
CHECK(Release::getAllOrphans(session).size() == 1);
auto release {Release::getById(session, releaseId)};
CHECK(release);
CHECK(release->getTracks().empty());
release.remove();
}
}
@@ -433,6 +471,11 @@ testSingleTrackSingleCluster(Wt::Dbo::Session& session)
clusterId = cluster.id();
}
{
Wt::Dbo::Transaction transaction {session};
CHECK(Cluster::getAllOrphans(session).empty());
}
{
Wt::Dbo::Transaction transaction {session};
@@ -480,6 +523,12 @@ testSingleTrackSingleReleaseSingleCluster(Wt::Dbo::Session& session)
clusterId = cluster.id();
}
{
Wt::Dbo::Transaction transaction {session};
CHECK(Cluster::getAllOrphans(session).empty());
CHECK(Release::getAllOrphans(session).empty());
}
{
Wt::Dbo::Transaction transaction {session};
@@ -532,6 +581,13 @@ testSingleTrackSingleArtistMultiClusters(Wt::Dbo::Session& session)
cluster2Id = cluster2.id();
}
{
Wt::Dbo::Transaction transaction {session};
CHECK(Cluster::getAllOrphans(session).empty());
CHECK(Release::getAllOrphans(session).empty());
CHECK(Artist::getAllOrphans(session).empty());
}
{
Wt::Dbo::Transaction transaction {session};
@@ -540,7 +596,7 @@ testSingleTrackSingleArtistMultiClusters(Wt::Dbo::Session& session)
CHECK(artists.front().id() == artistId);
artists = Artist::getByFilter(session, {cluster2Id});
CHECK(artists.size() == 0);
CHECK(artists.empty());
auto cluster2 {Cluster::getById(session, cluster2Id)};
auto track {Track::getById(session, trackId)};
@@ -607,6 +663,13 @@ testSingleTrackSingleArtistMultiRolesMultiClusters(Wt::Dbo::Session& session)
clusterId = cluster.id();
}
{
Wt::Dbo::Transaction transaction {session};
CHECK(Cluster::getAllOrphans(session).empty());
CHECK(Release::getAllOrphans(session).empty());
CHECK(Artist::getAllOrphans(session).empty());
}
{
Wt::Dbo::Transaction transaction {session};
@@ -663,6 +726,12 @@ testMultiTracksSingleArtistMultiClusters(Wt::Dbo::Session& session)
clusterTypeId = clusterType.id();
}
{
Wt::Dbo::Transaction transaction {session};
CHECK(Cluster::getAllOrphans(session).empty());
CHECK(Artist::getAllOrphans(session).empty());
}
{
Wt::Dbo::Transaction transaction {session};
@@ -774,6 +843,13 @@ testSingleTrackSingleReleaseSingleArtistSingleCluster(Wt::Dbo::Session& session)
clusterTypeId = clusterType.id();
}
{
Wt::Dbo::Transaction transaction {session};
CHECK(Cluster::getAllOrphans(session).empty());
CHECK(Artist::getAllOrphans(session).empty());
CHECK(Release::getAllOrphans(session).empty());
}
{
Wt::Dbo::Transaction transaction {session};
@@ -882,11 +958,11 @@ testDatabaseEmpty(Wt::Dbo::Session& session)
{
Wt::Dbo::Transaction transaction {session};
CHECK(Artist::getAll(session).size() == 0);
CHECK(Cluster::getAll(session).size() == 0);
CHECK(ClusterType::getAll(session).size() == 0);
CHECK(Release::getAll(session).size() == 0);
CHECK(Track::getAll(session).size() == 0);
CHECK(Artist::getAll(session).empty());
CHECK(Cluster::getAll(session).empty());
CHECK(ClusterType::getAll(session).empty());
CHECK(Release::getAll(session).empty());
CHECK(Track::getAll(session).empty());
}
int main(int argc, char* argv[])