commit 5ddaf9a0c8c29c49ae97d5a41f04200894b68d1c
parent ce381e3f57ffd801e50868bd280d5a736cecb2e3
Author: cfillion <cfillion@users.noreply.github.com>
Date: Sun, 10 Apr 2016 13:31:07 -0400
refactor testing of whether registry entries exists
Diffstat:
5 files changed, 13 insertions(+), 9 deletions(-)
diff --git a/src/browser.cpp b/src/browser.cpp
@@ -444,7 +444,7 @@ auto Browser::makeEntry(const Package *pkg, const Registry::Entry ®Entry)
int flags = 0;
- if(regEntry.id) {
+ if(regEntry) {
flags |= InstalledFlag;
if(regEntry.version < *latest)
diff --git a/src/registry.cpp b/src/registry.cpp
@@ -243,7 +243,7 @@ auto Registry::getEntries(const string &remoteName) const -> vector<Entry>
set<Path> Registry::getFiles(const Entry &entry) const
{
- if(!entry.id) // skip processing for new packages
+ if(!entry) // skip processing for new packages
return {};
set<Path> list;
@@ -259,7 +259,7 @@ set<Path> Registry::getFiles(const Entry &entry) const
string Registry::getMainFile(const Entry &entry) const
{
- if(!entry.id)
+ if(!entry)
return {};
string mainFile;
diff --git a/src/registry.hpp b/src/registry.hpp
@@ -39,9 +39,11 @@ public:
std::string package;
Package::Type type;
Version version;
+
+ operator bool() const { return id != 0; }
};
- Registry(const Path &path = Path());
+ Registry(const Path &path = {});
Entry getEntry(const Package *) const;
std::vector<Entry> getEntries(const std::string &) const;
diff --git a/src/transaction.cpp b/src/transaction.cpp
@@ -90,7 +90,7 @@ void Transaction::synchronize(const Package *pkg, const bool autoInstall)
{
const auto ®Entry = m_registry->getEntry(pkg);
- if(!regEntry.id && !autoInstall)
+ if(!regEntry && !autoInstall)
return;
const Version *latest = pkg->lastVersion();
@@ -147,7 +147,7 @@ void Transaction::install(const Version *ver,
InstallTicket::Type type;
- if(regEntry.id && regEntry.version < *ver)
+ if(regEntry && regEntry.version < *ver)
type = InstallTicket::Upgrade;
else
type = InstallTicket::Install;
diff --git a/test/registry.cpp b/test/registry.cpp
@@ -28,9 +28,10 @@ TEST_CASE("query uninstalled package", M) {
Registry reg;
- const Registry::Entry &res = reg.getEntry(&pkg);
- REQUIRE(res.id == 0);
- REQUIRE(res.version == Version());
+ const Registry::Entry &entry = reg.getEntry(&pkg);
+ REQUIRE_FALSE(entry);
+ REQUIRE(entry.id == 0);
+ REQUIRE(entry.version == Version());
}
TEST_CASE("query installed package", M) {
@@ -39,6 +40,7 @@ TEST_CASE("query installed package", M) {
Registry reg;
const Registry::Entry &entry = reg.push(ver);
+ REQUIRE(entry);
REQUIRE(entry.id == 1);
REQUIRE(entry.remote == "Remote Name");
REQUIRE(entry.category == "Category Name");