diff --git a/core/Sconscript b/core/Sconscript index 17003556..9c8c307f 100644 --- a/core/Sconscript +++ b/core/Sconscript @@ -4,5 +4,5 @@ Import("env") env.UsePackage("gstreamer-1.0") env.UsePackage("taglib") -res = Glob("*.cpp") +res = Glob("*.cpp") + SConscript("tags/Sconscript") Return("res") diff --git a/core/tags.cpp b/core/tags.cpp index f28b23e5..4bba3ccc 100644 --- a/core/tags.cpp +++ b/core/tags.cpp @@ -18,37 +18,6 @@ Database library_db("library.db", true); Database track_db("track.db", false); -/** - * - * Artist tag - * - */ - -Artist :: Artist() {} - -Artist :: Artist(const std::string &s) - : name(s), lower(filter :: lowercase(name)) -{ -} - -const std::string Artist :: primary_key() const -{ - return name; -} - -void Artist :: read(File &f) -{ - name = f.getline(); - lower = filter :: lowercase(name); -} - -void Artist :: write(File &f) -{ - f << name; -} - - - /** * * Album tag diff --git a/core/tags/Sconscript b/core/tags/Sconscript new file mode 100644 index 00000000..10f42567 --- /dev/null +++ b/core/tags/Sconscript @@ -0,0 +1,3 @@ +#!/usr/bin/python +res = Glob("*.cpp") +Return("res") diff --git a/core/tags/artist.cpp b/core/tags/artist.cpp new file mode 100644 index 00000000..7f36c75a --- /dev/null +++ b/core/tags/artist.cpp @@ -0,0 +1,29 @@ +/** + * @file + * Copyright 2014 (c) Anna Schumaker. + */ +#include +#include + +Artist :: Artist() {} + +Artist :: Artist(const std::string &s) + : name(s), lower(filter :: lowercase(name)) +{ +} + +const std::string Artist :: primary_key() const +{ + return name; +} + +void Artist :: read(File &f) +{ + name = f.getline(); + lower = filter :: lowercase(name); +} + +void Artist :: write(File &f) +{ + f << name; +} diff --git a/include/core/tags/artist.h b/include/core/tags/artist.h index 7c2f92f2..e6659a9f 100644 --- a/include/core/tags/artist.h +++ b/include/core/tags/artist.h @@ -12,10 +12,8 @@ */ class Artist : public DatabaseEntry { public: - /** Artist name */ - std::string name; - /** Artist name (lowercase) */ - std::string lower; + std::string name; /**< Artist name. */ + std::string lower; /**< Artist name (lowercase). */ /** Artist tag constructor */ Artist(); diff --git a/tests/core/.gitignore b/tests/core/.gitignore index b3151414..7c4efbbe 100644 --- a/tests/core/.gitignore +++ b/tests/core/.gitignore @@ -4,7 +4,6 @@ database index filter idle -tags random queue library diff --git a/tests/core/Sconscript b/tests/core/Sconscript index cbaaa1bd..99d05136 100644 --- a/tests/core/Sconscript +++ b/tests/core/Sconscript @@ -14,8 +14,11 @@ test( "index" ) test( "filter" ) test( "idle" ) +test( "tags/artist" ) + test_env.UsePackage("taglib") -test( "tags" ) +objs += [ get_test_obj("tags", "core") ] +#test( "tags" ) test( "random" ) objs += [ get_test_obj("callback", "core") ] diff --git a/tests/core/tags/.gitignore b/tests/core/tags/.gitignore new file mode 100644 index 00000000..d489cd46 --- /dev/null +++ b/tests/core/tags/.gitignore @@ -0,0 +1 @@ +artist diff --git a/tests/core/tags/artist.cpp b/tests/core/tags/artist.cpp new file mode 100644 index 00000000..5062c4a7 --- /dev/null +++ b/tests/core/tags/artist.cpp @@ -0,0 +1,41 @@ +/** + * @file + * Copyright 2014 (c) Anna Schumaker. + */ +#include +#include +#include + +static void test_artist_tag() +{ + Artist artist; + File f("artist_tag", 0); + + test_equal(artist.name, (std::string)""); + test_equal(artist.lower, (std::string)""); + test_equal(artist.primary_key(), (std::string)""); + + artist = Artist("Koji Kondo"); + test_equal(artist.name, (std::string)"Koji Kondo"); + test_equal(artist.lower, (std::string)"koji kondo"); + test_equal(artist.primary_key(), (std::string)"Koji Kondo"); + + f.open(OPEN_WRITE); + artist.write(f); + f.close(); + + artist = Artist(); + f.open(OPEN_READ); + artist.read(f); + f.close(); + + test_equal(artist.name, (std::string)"Koji Kondo"); + test_equal(artist.lower, (std::string)"koji kondo"); + test_equal(artist.primary_key(), (std::string)"Koji Kondo"); +} + +int main(int argc, char **argv) +{ + run_test("Artist Tag Test", test_artist_tag); + return 0; +} diff --git a/tests/lib/Sconscript b/tests/lib/Sconscript index de21eff8..9744334e 100644 --- a/tests/lib/Sconscript +++ b/tests/lib/Sconscript @@ -8,6 +8,9 @@ core = [] for f in Glob("../../core/*.cpp"): f = str(f) core += [ test_env.Object("%s-core" % os.path.basename(f), f) ] +for f in Glob("../../core/tags/*.cpp"): + f = str(f) + core += [ test_env.Object("tags/%s-core" % os.path.basename(f), f) ] def test(name): global core, objs