/** * Copyright 2014 (c) Anna Schumaker. */ #include #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 genre_db; struct genre *genre; genre_db_init(); 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); genre_db_deinit(); } DECLARE_UNIT_TESTS( UNIT_TEST("Genre Tag", test_genre), UNIT_TEST("Genre Compare", test_genre_compare), UNIT_TEST("Genre Database", test_genere_db), );