555
557
EXPECT_CALL(q, push_result(_, HasAttributes(true)));
556
558
q.wrap_add_available_apps(reply, no_installed_packages, FAKE_CATEGORY_TEMPLATE);
561
MATCHER_P(HasPrice, price, "") { return arg["price"].get_double() == price; }
563
TEST(QueryTest, testPushPackagePushesPriceUSD)
565
ASSERT_EQ(unsetenv(Configuration::CURRENCY_ENVVAR), 0);
566
ASSERT_EQ(setenv(Configuration::PURCHASES_ENVVAR, "1", 1), 0);
569
Json::Reader().parse(FAKE_JSON_SEARCH_RESULT_ONE, root);
570
auto const embedded = root[Package::JsonKeys::embedded];
571
auto const ci_package = embedded[Package::JsonKeys::ci_package];
573
Packages packages = package_list_from_json_node(ci_package);
575
MockIndex mock_index(packages);
576
scopes::SearchMetadata metadata("en_EN", "phone");
577
PackageSet no_installed_packages;
578
DepartmentLookup dept_lookup;
579
HighlightList highlights;
580
MockPayPackage pay_pkg;
581
const unity::scopes::CannedQuery query("foo.scope", "", "");
582
MockQuery q(query, mock_index, dept_lookup, nullptr, highlights, metadata, pay_pkg);
584
scopes::CategoryRenderer renderer("{}");
585
auto ptrCat = std::make_shared<FakeCategory>("id", "", "", renderer);
587
scopes::testing::MockSearchReply mock_reply;
588
scopes::SearchReplyProxy reply(&mock_reply, [](unity::scopes::SearchReply*){});
589
EXPECT_CALL(q, push_result(reply, HasPrice(1.99)));
590
q.push_package(reply, ptrCat, no_installed_packages, packages[0]);
592
ASSERT_EQ(unsetenv(Configuration::PURCHASES_ENVVAR), 0);
595
TEST(QueryTest, testPushPackagePushesPriceEUR)
597
ASSERT_EQ(setenv(Configuration::CURRENCY_ENVVAR, "EUR", 1), 0);
598
ASSERT_EQ(setenv(Configuration::PURCHASES_ENVVAR, "1", 1), 0);
601
Json::Reader().parse(FAKE_JSON_SEARCH_RESULT_ONE, root);
602
auto const embedded = root[Package::JsonKeys::embedded];
603
auto const ci_package = embedded[Package::JsonKeys::ci_package];
605
Packages packages = package_list_from_json_node(ci_package);
607
MockIndex mock_index(packages);
608
scopes::SearchMetadata metadata("en_EN", "phone");
609
PackageSet no_installed_packages;
610
DepartmentLookup dept_lookup;
611
HighlightList highlights;
612
MockPayPackage pay_pkg;
613
const unity::scopes::CannedQuery query("foo.scope", "", "");
614
MockQuery q(query, mock_index, dept_lookup, nullptr, highlights, metadata, pay_pkg);
616
scopes::CategoryRenderer renderer("{}");
617
auto ptrCat = std::make_shared<FakeCategory>("id", "", "", renderer);
619
scopes::testing::MockSearchReply mock_reply;
620
scopes::SearchReplyProxy reply(&mock_reply, [](unity::scopes::SearchReply*){});
621
EXPECT_CALL(q, push_result(reply, HasPrice(1.69)));
622
q.push_package(reply, ptrCat, no_installed_packages, packages[0]);
624
ASSERT_EQ(unsetenv(Configuration::CURRENCY_ENVVAR), 0);
625
ASSERT_EQ(unsetenv(Configuration::PURCHASES_ENVVAR), 0);