102 lines
2.6 KiB
C++
102 lines
2.6 KiB
C++
/*
|
|
* Copyright 2014 (c) Anna Schumaker.
|
|
* Test a DatabaseEntry
|
|
*/
|
|
|
|
#include <tags.h>
|
|
#include <print.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
unsigned int test_num = 0;
|
|
|
|
void test_results(bool success, unsigned int line)
|
|
{
|
|
print(" %u: ", test_num);
|
|
if (success)
|
|
print("Success!\n");
|
|
else {
|
|
print("FAILED (%u) =(\n", line);
|
|
exit(1);
|
|
}
|
|
test_num++;
|
|
}
|
|
|
|
void test_library_size(unsigned int expected, unsigned int line)
|
|
{
|
|
test_results(tagdb :: get_library_db().size() == expected, line);
|
|
}
|
|
|
|
void test_track_size(unsigned int expected, unsigned int line)
|
|
{
|
|
test_results(tagdb :: get_track_db().size() == expected, line);
|
|
}
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
/**
|
|
* Initial library checks
|
|
*/
|
|
Library *library = tagdb :: add_library("Music");
|
|
test_results(library->root_path == "Music", __LINE__);
|
|
test_library_size(1, __LINE__);
|
|
|
|
Library *library_null = tagdb :: add_library("Music");
|
|
test_results(library_null == NULL, __LINE__);
|
|
test_library_size(1, __LINE__);
|
|
|
|
unsigned int id = library->id;
|
|
tagdb :: remove_library(id);
|
|
test_library_size(0, __LINE__);
|
|
tagdb :: remove_library(id);
|
|
test_library_size(0, __LINE__);
|
|
|
|
|
|
/**
|
|
* Test adding / removing tracks
|
|
*/
|
|
library = tagdb :: add_library("Music");
|
|
Track *track = tagdb :: add_track("Music/1.ogg", library);
|
|
test_track_size(1, __LINE__);
|
|
Track *track_null = tagdb :: add_track("Music/1.ogg", library);
|
|
test_track_size(1, __LINE__);
|
|
|
|
test_results(track->path() == "Music/1.ogg", __LINE__);
|
|
test_results(track_null == NULL, __LINE__);
|
|
|
|
id = track->id;
|
|
tagdb :: remove_track(id);
|
|
test_track_size(0, __LINE__);
|
|
tagdb :: remove_track(id);
|
|
test_track_size(0, __LINE__);
|
|
|
|
|
|
/**
|
|
* Test adding and removing multiple tracks
|
|
*/
|
|
tagdb :: add_track("Music/1.ogg", library);
|
|
tagdb :: add_track("Music/10.ogg", library);
|
|
tagdb :: add_track("Music/15.ogg", library);
|
|
tagdb :: add_track("Music/60.ogg", library);
|
|
tagdb :: add_track("Music/90.ogg", library);
|
|
tagdb :: add_track("Music/600.ogg", library);
|
|
tagdb :: add_track("Music/666.ogg", library);
|
|
test_track_size(7, __LINE__);
|
|
|
|
test_results(tagdb :: lookup(0) == NULL, __LINE__);
|
|
test_results(tagdb :: lookup(1)->id == 1, __LINE__);
|
|
test_results(tagdb :: lookup(2)->id == 2, __LINE__);
|
|
test_results(tagdb :: lookup(3)->id == 3, __LINE__);
|
|
test_results(tagdb :: lookup(4)->id == 4, __LINE__);
|
|
test_results(tagdb :: lookup(5)->id == 5, __LINE__);
|
|
test_results(tagdb :: lookup(6)->id == 6, __LINE__);
|
|
test_results(tagdb :: lookup(7)->id == 7, __LINE__);
|
|
test_results(tagdb :: lookup(8) == NULL, __LINE__);
|
|
|
|
|
|
tagdb :: remove_library(library->id);
|
|
test_track_size(0, __LINE__);
|
|
|
|
return 0;
|
|
}
|