diff options
| -rw-r--r-- | gentoobrowse-api/api/Jamfile.jam | 8 | ||||
| -rw-r--r-- | gentoobrowse-api/api/portage.ice | 13 | ||||
| -rw-r--r-- | gentoobrowse-api/service/portageimpl.cpp | 4 | ||||
| -rw-r--r-- | gentoobrowse-api/service/portageimpl.h | 2 | ||||
| -rw-r--r-- | gentoobrowse-api/unittests/testPortage.cpp | 28 | 
5 files changed, 39 insertions, 16 deletions
| diff --git a/gentoobrowse-api/api/Jamfile.jam b/gentoobrowse-api/api/Jamfile.jam index 1f6b931..6cd2480 100644 --- a/gentoobrowse-api/api/Jamfile.jam +++ b/gentoobrowse-api/api/Jamfile.jam @@ -1,12 +1,20 @@ +lib slicer-db : : : : +	<include>/usr/include/slicer/db +	<include>/usr/include/slicer/slicer +	; +  lib gentoobrowse-api :  	[ glob *.cpp *.ice ]  	:  	<library>..//adhocutil  	<library>..//dbppcore  	<library>../domain//gentoobrowse-domain +	<include>/usr/share/slicer/ice +	<library>slicer-db  	<implicit-dependency>../domain//gentoobrowse-domain  	: :  	<include>. +	<library>slicer-db  	<library>../domain//gentoobrowse-domain  	<implicit-dependency>../domain//gentoobrowse-domain  	; diff --git a/gentoobrowse-api/api/portage.ice b/gentoobrowse-api/api/portage.ice index 56d066b..584aee5 100644 --- a/gentoobrowse-api/api/portage.ice +++ b/gentoobrowse-api/api/portage.ice @@ -1,17 +1,18 @@  #include <portage-models.ice>  #include <extended-models.ice> +#include <sqlExceptions.ice>  module Gentoo {  	interface Portage { -		idempotent Category getCategory(int id); -		idempotent Category findCategory(string name); +		idempotent Category getCategory(int id) throws Slicer::NoRowsReturned; +		idempotent Category findCategory(string name) throws Slicer::NoRowsReturned;  		idempotent Categories getAllCategories();  		idempotent Categories getCategoriesInSuper(string super);  		idempotent OverviewCategoriesBySuper getAllOverviewCategories();  		idempotent OverviewCategories getOverviewCategoriesInSuper(string super); -		idempotent Package getPackage(int id); -		idempotent optional(0) Package findPackage(string category, string package); +		idempotent Package getPackage(int id) throws Slicer::NoRowsReturned; +		idempotent Package findPackage(string category, string package) throws Slicer::NoRowsReturned;  		idempotent Packages getAllPackages();  		idempotent Packages getPackagesInCategory(int id);  		idempotent SearchResultPackages getPackagesSearch(string query); @@ -23,11 +24,11 @@ module Gentoo {  		idempotent Categories getCategoriesWithRecentAdditions(int syncs);  		idempotent Packages getTopTrackedPackages(int n); -		idempotent Bug getBug(int id); +		idempotent Bug getBug(int id) throws Slicer::NoRowsReturned;  		idempotent Bugs getPackageBugs(int packageId);  		idempotent SearchResultBugs getBugsSearch(string query); -		idempotent NewsItem getNewsItem(string newsid); +		idempotent NewsItem getNewsItem(string newsid) throws Slicer::NoRowsReturned;  		idempotent News getNewsSearch(string query);  		idempotent News getNewsRecent(int items);  	}; diff --git a/gentoobrowse-api/service/portageimpl.cpp b/gentoobrowse-api/service/portageimpl.cpp index cf03f23..2147307 100644 --- a/gentoobrowse-api/service/portageimpl.cpp +++ b/gentoobrowse-api/service/portageimpl.cpp @@ -79,10 +79,10 @@ Portage::getPackage(Ice::Int id, const Ice::Current &)  	return fetchCache<Gentoo::PackagePtr>(sql::portage::getPackage, 30, id);  } -IceUtil::Optional<Gentoo::PackagePtr> +Gentoo::PackagePtr  Portage::findPackage(const std::string & cat, const std::string & pkg, const Ice::Current &)  { -	return fetchCache<IceUtil::Optional<Gentoo::PackagePtr>>(sql::portage::findPackage, 30, cat, pkg); +	return fetchCache<Gentoo::PackagePtr>(sql::portage::findPackage, 30, cat, pkg);  }  Gentoo::Packages diff --git a/gentoobrowse-api/service/portageimpl.h b/gentoobrowse-api/service/portageimpl.h index 273fbed..17c30af 100644 --- a/gentoobrowse-api/service/portageimpl.h +++ b/gentoobrowse-api/service/portageimpl.h @@ -19,7 +19,7 @@ class DLL_PUBLIC Portage : public Gentoo::Portage, IceTray::AbstractCachingDatab  		Gentoo::OverviewCategories getOverviewCategoriesInSuper(const std::string &, const Ice::Current &) override;  		Gentoo::PackagePtr getPackage(Ice::Int id, const Ice::Current &) override; -		IceUtil::Optional<Gentoo::PackagePtr> findPackage(const std::string &, const std::string &, const Ice::Current &) override; +		Gentoo::PackagePtr findPackage(const std::string &, const std::string &, const Ice::Current &) override;  		Gentoo::Packages getPackagesInCategory(Ice::Int id, const Ice::Current &) override;  		Gentoo::Packages getAllPackages(const Ice::Current &) override;  		Gentoo::SearchResultPackages getPackagesSearch(const std::string & query, const Ice::Current &) override; diff --git a/gentoobrowse-api/unittests/testPortage.cpp b/gentoobrowse-api/unittests/testPortage.cpp index 14fe16b..9cdbd1f 100644 --- a/gentoobrowse-api/unittests/testPortage.cpp +++ b/gentoobrowse-api/unittests/testPortage.cpp @@ -9,7 +9,7 @@ BOOST_FIXTURE_TEST_SUITE(tp, TestClient)  BOOST_AUTO_TEST_CASE( getCategoryMissing )  { -	BOOST_REQUIRE_THROW(p->getCategory(0), std::exception); +	BOOST_REQUIRE_THROW(p->getCategory(0), Slicer::NoRowsReturned);  }  BOOST_AUTO_TEST_CASE( getCategory ) @@ -22,6 +22,11 @@ BOOST_AUTO_TEST_CASE( getCategory )  	BOOST_REQUIRE_EQUAL(169, cat->summary->length());  } +BOOST_AUTO_TEST_CASE( findCategoryMissing ) +{ +	BOOST_REQUIRE_THROW(p->findCategory("missing"), Slicer::NoRowsReturned); +} +  BOOST_AUTO_TEST_CASE( findCategory )  {  	auto cat = p->findCategory("app-backup"); @@ -103,7 +108,7 @@ BOOST_AUTO_TEST_CASE( getOverviewCategoriesInSuper )  BOOST_AUTO_TEST_CASE( getPackageMissing )  { -	BOOST_REQUIRE_THROW(p->getPackage(0), std::exception); +	BOOST_REQUIRE_THROW(p->getPackage(0), Slicer::NoRowsReturned);  }  BOOST_AUTO_TEST_CASE( getPackage ) @@ -120,17 +125,16 @@ BOOST_AUTO_TEST_CASE( getPackage )  	BOOST_REQUIRE_EQUAL("Default assignee for orphaned packages", pkg->maintainername);  } -BOOST_AUTO_TEST_CASE( findPackage ) +BOOST_AUTO_TEST_CASE( findPackageMissing )  { -	auto cat = p->findPackage("not", "here"); -	BOOST_REQUIRE(!cat); +	BOOST_REQUIRE_THROW(p->findPackage("not", "here"), Slicer::NoRowsReturned);  } -BOOST_AUTO_TEST_CASE( findPackageMissing ) +BOOST_AUTO_TEST_CASE( findPackage )  {  	auto pkg = p->findPackage("dev-vcs", "archway");  	BOOST_REQUIRE(pkg); -	BOOST_REQUIRE_EQUAL(53258, (*pkg)->packageid); +	BOOST_REQUIRE_EQUAL(53258, pkg->packageid);  }  BOOST_AUTO_TEST_CASE( getAllPackages ) @@ -232,6 +236,11 @@ BOOST_AUTO_TEST_CASE( getRecentAdditions )  	BOOST_REQUIRE_EQUAL("GPL-2", es.front()->license);  } +BOOST_AUTO_TEST_CASE( getBugMissing ) +{ +	BOOST_REQUIRE_THROW(p->getBug(10), Slicer::NoRowsReturned); +} +  BOOST_AUTO_TEST_CASE( getBug )  {  	auto b = p->getBug(567064); @@ -262,6 +271,11 @@ BOOST_AUTO_TEST_CASE( getBugsSearch )  	BOOST_REQUIRE_EQUAL(567682, bs[2]->bugid);  } +BOOST_AUTO_TEST_CASE( getNewsItemMissing ) +{ +	BOOST_REQUIRE_THROW(p->getNewsItem("2015-02-02-use-libav"), Slicer::NoRowsReturned); +} +  BOOST_AUTO_TEST_CASE( getNewsItem )  {  	auto n = p->getNewsItem("2015-02-01-use-libav"); | 
