From 91f6f54b4e4c6d0c9b93ef827f058b13929418f1 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Fri, 21 Nov 2014 08:36:49 -0500 Subject: [PATCH] Track: Add a test for the Track destructor We want to make sure that the _library size is decremented whenever a track is removed or destroyed. Signed-off-by: Anna Schumaker --- core/tags.cpp | 6 ------ core/tags/track.cpp | 6 ++++++ tests/core/tags/track.cpp | 9 ++++++++- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/core/tags.cpp b/core/tags.cpp index 11ef54ad..6f18fbde 100644 --- a/core/tags.cpp +++ b/core/tags.cpp @@ -29,12 +29,6 @@ Track :: Track(const std::string &f, Library *library) library->inc_size(); } -Track :: ~Track() -{ - if (_library) - _library->dec_size(); -} - const std::string Track :: primary_key() const { return path(); diff --git a/core/tags/track.cpp b/core/tags/track.cpp index d8b6cdf0..ab73d747 100644 --- a/core/tags/track.cpp +++ b/core/tags/track.cpp @@ -17,6 +17,12 @@ Track :: Track(Album *album, Artist *artist, Genre *genre, Library *library) _library->inc_size(); } +Track :: ~Track() +{ + if (_library) + _library->dec_size(); +} + Album *Track :: album() { return _album; } Artist *Track :: artist() { return _artist; } Genre *Track :: genre() { return _genre; } diff --git a/tests/core/tags/track.cpp b/tests/core/tags/track.cpp index f7707056..b8c12b7f 100644 --- a/tests/core/tags/track.cpp +++ b/tests/core/tags/track.cpp @@ -42,12 +42,19 @@ static void test_track_tag_constructor() test_equal(track.artist(), artist); test_equal(track.genre(), genre); test_equal(track.library(), library); - test_equal(track.library()->size(), (unsigned)1); + test_equal(library->size(), (unsigned)1); +} + +static void test_track_tag_destructor() +{ + Library *library = tags :: get_library("/home/Zelda/Music"); + test_equal(library->size(), (unsigned)0); } int main(int argc, char **argv) { run_test("Track Tag Default Constructor Test", test_track_tag_default); run_test("Track Tag Constructor Test", test_track_tag_constructor); + run_test("Track Tag Destructor Test", test_track_tag_destructor); return 0; }