reapack

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

commit c6118d58bf553306c723253ff474cbf5e7c39cc7
parent 5fca55c56bc1affb669f7cbd2867ce508341842b
Author: cfillion <cfillion@users.noreply.github.com>
Date:   Sun,  6 Dec 2015 00:41:13 -0500

fix package updates not being remembered

Diffstat:
Msrc/registry.cpp | 2+-
Atest/registry.cpp | 49+++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 50 insertions(+), 1 deletion(-)

diff --git a/src/registry.cpp b/src/registry.cpp @@ -17,7 +17,7 @@ void Registry::push(Package *pkg) void Registry::push(const std::string &key, const std::string &value) { - m_map.insert({key, value}); + m_map[key] = value; } string Registry::versionOf(Package *pkg) const diff --git a/test/registry.cpp b/test/registry.cpp @@ -0,0 +1,49 @@ +#include <catch.hpp> + +#include <database.hpp> +#include <package.hpp> +#include <registry.hpp> + +using namespace std; + +static const char *M = "[registry]"; + +#define MAKE_PACKAGE \ + Database db; \ + db.setName("Hello"); \ + Category cat("Hello"); \ + cat.setDatabase(&db); \ + Package pkg(Package::ScriptType, "Hello"); \ + pkg.setCategory(&cat); \ + Version *ver = new Version("1.0"); \ + Source *src = new Source(Source::GenericPlatform, "https://..."); \ + ver->addSource(src); \ + pkg.addVersion(ver); + +TEST_CASE("version of uninstalled", M) { + MAKE_PACKAGE + + Registry reg; + REQUIRE(reg.versionOf(&pkg) == string()); +} + +TEST_CASE("version of installed", M) { + MAKE_PACKAGE + + Registry reg; + reg.push(&pkg); + REQUIRE(reg.versionOf(&pkg) == "1.0"); +} + +TEST_CASE("bump version", M) { + MAKE_PACKAGE + + Version *ver2 = new Version("2.0"); + ver2->addSource(new Source(Source::GenericPlatform, "https://...")); + + Registry reg; + reg.push(&pkg); + pkg.addVersion(ver2); + reg.push(&pkg); + REQUIRE(reg.versionOf(&pkg) == "2.0"); +}