core/tags/genre: Rewrite unit test
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
parent
fe3d7867d1
commit
4cba24e72a
|
@ -4,20 +4,64 @@
|
|||
#include <core/tags/genre.h>
|
||||
#include "../test.h"
|
||||
|
||||
static void test_artist_tag()
|
||||
static void test_verify_empty(Genre *genre)
|
||||
{
|
||||
Genre genre;
|
||||
test_equal(genre.name(), (std::string)"");
|
||||
test_equal(genre.lowercase(), (std::string)"");
|
||||
test_equal(genre.primary_key(), (std::string)"");
|
||||
|
||||
genre = Genre("Video Game Music");
|
||||
test_equal(genre.name(), (std::string)"Video Game Music");
|
||||
test_equal(genre.lowercase(), (std::string)"video game music");
|
||||
test_equal(genre.primary_key(), (std::string)"Video Game Music");
|
||||
test_equal(genre->name(), "");
|
||||
test_equal(genre->lowercase(), "");
|
||||
test_equal(genre->primary_key(), "");
|
||||
}
|
||||
|
||||
static void test_genere_tag_lookup()
|
||||
static void test_verify_vg(Genre *genre)
|
||||
{
|
||||
test_equal(genre->name(), "Video Game Music");
|
||||
test_equal(genre->lowercase(), "video game music");
|
||||
test_equal(genre->primary_key(), "Video Game Music");
|
||||
}
|
||||
|
||||
static void test_genre()
|
||||
{
|
||||
Genre *genre = new Genre("Video Game Music");
|
||||
unsigned int i;
|
||||
file f;
|
||||
|
||||
test_verify_vg(genre);
|
||||
|
||||
file_init(&f, "genre_tag", 0);
|
||||
file_open(&f, OPEN_WRITE);
|
||||
file_writef(&f, "1 \n1 ");
|
||||
genre->write(f);
|
||||
file_close(&f);
|
||||
delete genre;
|
||||
|
||||
genre = new Genre();
|
||||
test_verify_empty(genre);
|
||||
|
||||
file_open(&f, OPEN_READ);
|
||||
file_readf(&f, "%u", &i);
|
||||
genre->read(f);
|
||||
test_verify_empty(genre);
|
||||
|
||||
file_readf(&f, "%u", &i);
|
||||
genre->read(f);
|
||||
file_close(&f);
|
||||
test_verify_vg(genre);
|
||||
delete genre;
|
||||
}
|
||||
|
||||
static void test_genre_compare()
|
||||
{
|
||||
Genre *video = new Genre("Video Game Music");
|
||||
Genre *game = new Genre("game music");
|
||||
|
||||
test_equal(video->compare(video), 0);
|
||||
test_equal(video->compare(game), 1);
|
||||
test_equal(game->compare(video), -1);
|
||||
|
||||
delete game;
|
||||
delete video;
|
||||
}
|
||||
|
||||
static void test_genere_db()
|
||||
{
|
||||
database<Genre> genre_db;
|
||||
Genre *genre;
|
||||
|
@ -25,9 +69,7 @@ static void test_genere_tag_lookup()
|
|||
tags :: init_genre_db();
|
||||
genre = tags :: get_genre("Video Game Music");
|
||||
|
||||
test_equal(genre->name(), (std::string)"Video Game Music");
|
||||
test_equal(genre->lowercase(), (std::string)"video game music");
|
||||
test_equal(genre->primary_key(), (std::string)"Video Game Music");
|
||||
test_verify_vg(genre);
|
||||
|
||||
test_equal(tags :: get_genre("Video Game Music"), genre);
|
||||
test_equal(tags :: get_genre(0), genre);
|
||||
|
@ -35,10 +77,13 @@ static void test_genere_tag_lookup()
|
|||
|
||||
db_init(&genre_db, "genre.db", false);
|
||||
db_load(&genre_db);
|
||||
test_equal(genre_db.db_size, (unsigned)1);
|
||||
test_equal(genre_db.db_size, 1);
|
||||
|
||||
db_deinit(&genre_db);
|
||||
}
|
||||
|
||||
DECLARE_UNIT_TESTS(
|
||||
UNIT_TEST("Genre Tag", test_artist_tag),
|
||||
UNIT_TEST("Genre Tag Lookup", test_genere_tag_lookup),
|
||||
UNIT_TEST("Genre Tag", test_genre),
|
||||
UNIT_TEST("Genre Compare", test_genre_compare),
|
||||
UNIT_TEST("Genre Database", test_genere_db),
|
||||
);
|
||||
|
|
Loading…
Reference in New Issue