4
#include <cppunit/extensions/HelperMacros.h>
5
#include <musicbrainz3/mbxmlparser.h>
6
#include <musicbrainz3/metadata.h>
7
#include <musicbrainz3/model.h>
10
using namespace MusicBrainz;
12
#include "read_file.h"
14
class ParseReleaseGroupTest : public CppUnit::TestFixture
16
CPPUNIT_TEST_SUITE(ParseReleaseGroupTest);
17
CPPUNIT_TEST(testReleaseGroupBasic);
18
CPPUNIT_TEST(testReleaseGroupSearch);
19
CPPUNIT_TEST_SUITE_END();
23
void testReleaseGroupBasic()
25
Metadata *md = MbXmlParser().parse(get_file_contents("../test-data/valid/release-group/The_Cure_1.xml"));
26
ReleaseGroup *releaseGroup = md->getReleaseGroup();
27
CPPUNIT_ASSERT(releaseGroup);
28
CPPUNIT_ASSERT_EQUAL(string("http://musicbrainz.org/release-group/c6a62b78-70f7-44f7-b159-064f6b7ba03a"), releaseGroup->getId());
29
CPPUNIT_ASSERT_EQUAL(string("The Cure"), releaseGroup->getTitle());
30
CPPUNIT_ASSERT_EQUAL(NS_MMD_1 + string("Album"), releaseGroup->getType());
31
CPPUNIT_ASSERT_EQUAL(4, releaseGroup->getNumReleases());
32
CPPUNIT_ASSERT_EQUAL(string("http://musicbrainz.org/release/d984e1a3-7281-46bb-ad8b-1478a00f2fbf"), releaseGroup->getRelease(0)->getId());
33
CPPUNIT_ASSERT_EQUAL(string("http://musicbrainz.org/release/61a4ec51-fa34-4757-85d7-83231776ed14"), releaseGroup->getRelease(3)->getId());
36
void testReleaseGroupSearch()
38
Metadata *md = MbXmlParser().parse(get_file_contents("../test-data/valid/release-group/search_result_1.xml"));
39
ReleaseGroupResultList r = md->getReleaseGroupResults();
41
CPPUNIT_ASSERT_EQUAL(3, int(r.size()));
42
CPPUNIT_ASSERT_EQUAL(100, r[0]->getScore());
43
CPPUNIT_ASSERT_EQUAL(98, r[1]->getScore());
44
CPPUNIT_ASSERT_EQUAL(90, r[2]->getScore());
45
CPPUNIT_ASSERT_EQUAL(string("http://musicbrainz.org/release-group/963eac15-e3da-3a92-aa5c-2ec23bfb6ec2"), r[0]->getReleaseGroup()->getId());
46
CPPUNIT_ASSERT_EQUAL(string("http://musicbrainz.org/release-group/0bd324a3-1c90-3bdb-8ca4-4101a580c62c"), r[1]->getReleaseGroup()->getId());
47
CPPUNIT_ASSERT_EQUAL(string("http://musicbrainz.org/release-group/ea7d8352-7751-30be-8490-bb6df737f47c"), r[2]->getReleaseGroup()->getId());
52
CPPUNIT_TEST_SUITE_REGISTRATION(ParseReleaseGroupTest);