reapack

Package manager for REAPER
Log | Files | Refs | Submodules | README | LICENSE

commit 56c4f1373d5060364ad23ce75b15460e78d5ec91
parent df042faf9e377f0943705d18ccd54130dab9e00f
Author: cfillion <cfillion@users.noreply.github.com>
Date:   Thu, 26 Nov 2015 23:35:15 -0500

ignore packages unavailable for the current operating system

Diffstat:
Msrc/database.cpp | 7+++++--
Mtest/database.cpp | 55+++++++++++++++++++++++++++++++++----------------------
Mtest/database_v1.cpp | 20++++++--------------
3 files changed, 44 insertions(+), 38 deletions(-)

diff --git a/src/database.cpp b/src/database.cpp @@ -34,7 +34,7 @@ DatabasePtr Database::load(const char *file) void Database::addCategory(CategoryPtr cat) { if(cat->packages().empty()) - throw reapack_error("empty category"); + return; m_categories.push_back(cat); } @@ -51,7 +51,7 @@ void Category::addPackage(PackagePtr pack) if(pack->type() == Package::UnknownType) return; // silently discard unknown package types else if(pack->versions().empty()) - throw reapack_error("empty package"); + return; pack->setCategory(this); m_packages.push_back(pack); @@ -78,6 +78,9 @@ Package::Package(const Type type, void Package::addVersion(VersionPtr ver) { + if(ver->sources().empty()) + return; + m_versions.insert(ver); } diff --git a/test/database.cpp b/test/database.cpp @@ -62,8 +62,11 @@ TEST_CASE("future version", M) { } TEST_CASE("add category", M) { + VersionPtr ver = make_shared<Version>("1"); + ver->addSource(make_shared<Source>(Source::GenericPlatform, "google.com")); + PackagePtr pack = make_shared<Package>(Package::ScriptType, "a", "b"); - pack->addVersion(make_shared<Version>("1")); + pack->addVersion(ver); CategoryPtr cat = make_shared<Category>("a"); cat->addPackage(pack); @@ -76,21 +79,19 @@ TEST_CASE("add category", M) { REQUIRE(db.categories().size() == 1); } -TEST_CASE("add empty category", M) { +TEST_CASE("drop empty category", M) { Database db; + db.addCategory(make_shared<Category>("a")); - try { - db.addCategory(make_shared<Category>("a")); - FAIL(); - } - catch(const reapack_error &e) { - REQUIRE(string(e.what()) == "empty category"); - } + REQUIRE(db.categories().empty()); } TEST_CASE("add a package", M) { + VersionPtr ver = make_shared<Version>("1"); + ver->addSource(make_shared<Source>(Source::GenericPlatform, "google.com")); + PackagePtr pack = make_shared<Package>(Package::ScriptType, "a", "b"); - pack->addVersion(make_shared<Version>("1")); + pack->addVersion(ver); Category cat("a"); CHECK(cat.packages().size() == 0); @@ -102,16 +103,11 @@ TEST_CASE("add a package", M) { REQUIRE(pack->category() == &cat); } -TEST_CASE("add empty package", M) { +TEST_CASE("drop empty package", M) { Category cat("a"); + cat.addPackage(make_shared<Package>(Package::ScriptType, "a", "b")); - try { - cat.addPackage(make_shared<Package>(Package::ScriptType, "a", "b")); - FAIL(); - } - catch(const reapack_error &e) { - REQUIRE(string(e.what()) == "empty package"); - } + REQUIRE(cat.packages().empty()); } TEST_CASE("drop unknown package", M) { @@ -165,12 +161,27 @@ TEST_CASE("package versions are sorted", M) { Package pack(Package::ScriptType, "a", "b"); CHECK(pack.versions().size() == 0); - pack.addVersion(make_shared<Version>("1")); + SourcePtr source = make_shared<Source>(Source::GenericPlatform, "google.com"); + + VersionPtr final = make_shared<Version>("1"); + final->addSource(source); + + VersionPtr alpha = make_shared<Version>("0.1"); + alpha->addSource(source); + + pack.addVersion(final); CHECK(pack.versions().size() == 1); - pack.addVersion(make_shared<Version>("0.1")); + pack.addVersion(alpha); CHECK(pack.versions().size() == 2); - REQUIRE(pack.version(0)->name() == "0.1"); - REQUIRE(pack.version(1)->name() == "1"); + REQUIRE(pack.version(0) == alpha); + REQUIRE(pack.version(1) == final); +} + +TEST_CASE("drop empty version", M) { + Package pack(Package::ScriptType, "a", "b"); + pack.addVersion(make_shared<Version>("1")); + + REQUIRE(pack.versions().empty()); } diff --git a/test/database_v1.cpp b/test/database_v1.cpp @@ -27,13 +27,9 @@ TEST_CASE("invalid category tag", M) { } TEST_CASE("invalid package tag", M) { - try { - Database::load(DBPATH "wrong_package_tag.xml"); - FAIL(); - } - catch(const reapack_error &e) { - REQUIRE(string(e.what()) == "empty category"); - } + DatabasePtr db = Database::load(DBPATH "wrong_package_tag.xml"); + REQUIRE(db->categories().empty()); + } TEST_CASE("null package name", M) { @@ -66,13 +62,9 @@ TEST_CASE("null author", M) { } TEST_CASE("invalid version tag", M) { - try { - Database::load(DBPATH "wrong_version_tag.xml"); - FAIL(); - } - catch(const reapack_error &e) { - REQUIRE(string(e.what()) == "empty package"); - } + DatabasePtr db = Database::load(DBPATH "wrong_version_tag.xml"); + + REQUIRE(db->categories().empty()); } TEST_CASE("null package version", M) {