90 lines
1.9 KiB
C++
90 lines
1.9 KiB
C++
/**
|
|
* Copyright 2014 (c) Anna Schumaker.
|
|
*/
|
|
#include <core/tags/genre.h>
|
|
#include "../test.h"
|
|
|
|
static void test_verify_empty(struct genre *genre)
|
|
{
|
|
test_equal(genre->name(), "");
|
|
test_equal(genre->lowercase(), "");
|
|
test_equal(genre->primary_key(), "");
|
|
}
|
|
|
|
static void test_verify_vg(struct 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()
|
|
{
|
|
struct genre *genre = new struct 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 struct 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()
|
|
{
|
|
struct genre *video = new struct genre("Video Game Music");
|
|
struct genre *game = new struct 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<struct genre> genre_db;
|
|
struct genre *genre;
|
|
|
|
tags :: init_genre_db();
|
|
genre = genre_find("Video Game Music");
|
|
|
|
test_verify_vg(genre);
|
|
|
|
test_equal(genre_find("Video Game Music"), genre);
|
|
test_equal(genre_get(0), genre);
|
|
test_equal(genre_get(1), (struct genre *)NULL);
|
|
|
|
db_init(&genre_db, "genre.db", false);
|
|
db_load(&genre_db);
|
|
test_equal(genre_db.db_size, 1);
|
|
|
|
db_deinit(&genre_db);
|
|
}
|
|
|
|
DECLARE_UNIT_TESTS(
|
|
UNIT_TEST("Genre Tag", test_genre),
|
|
UNIT_TEST("Genre Compare", test_genre_compare),
|
|
UNIT_TEST("Genre Database", test_genere_db),
|
|
);
|