Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorygorshenin <mipt.vi002@gmail.com>2016-12-07 19:10:17 +0300
committerGitHub <noreply@github.com>2016-12-07 19:10:17 +0300
commitdf6b188adc309a908463f21884d12b824420c4b0 (patch)
tree91fb27ad7d704b898f2277df1a744d0ec6b4f363
parent87771aaee4d53ad89bcd18c94cde0423d1d0b42c (diff)
parenta2a901c092787263c75b160093d69875ba0838ed (diff)
Merge pull request #4889 from milchakov/uber_testsbeta-517
Uber tests
-rw-r--r--partners_api/partners_api_tests/uber_tests.cpp30
-rw-r--r--partners_api/uber_api.cpp20
-rw-r--r--partners_api/uber_api.hpp1
3 files changed, 32 insertions, 19 deletions
diff --git a/partners_api/partners_api_tests/uber_tests.cpp b/partners_api/partners_api_tests/uber_tests.cpp
index 44c25554c5..25426ac0c1 100644
--- a/partners_api/partners_api_tests/uber_tests.cpp
+++ b/partners_api/partners_api_tests/uber_tests.cpp
@@ -4,6 +4,8 @@
#include "geometry/latlon.hpp"
+#include "base/scope_guard.hpp"
+
#include "std/algorithm.hpp"
#include "std/atomic.hpp"
#include "std/mutex.hpp"
@@ -177,6 +179,9 @@ UNIT_TEST(Uber_Smoke)
ms::LatLon const from(38.897724, -77.036531);
ms::LatLon const to(38.862416, -76.883316);
+ uber::SetUberUrlForTesting("http://localhost:34568/partners");
+ MY_SCOPE_GUARD(cleanup, []() { uber::SetUberUrlForTesting(""); });
+
auto const errorCallback = [](uber::ErrorCode const code, uint64_t const requestId)
{
TEST(false, ());
@@ -250,22 +255,13 @@ UNIT_TEST(Uber_Smoke)
testing::RunEventLoop();
- size_t countOfEqual = 0;
-
- for (auto const & product : synchronousProducts)
- {
- auto const it = find_if(
- productsContainer.begin(), productsContainer.end(),
- [&product, countOfEqual](uber::Product const & item)
- {
- return product.m_productId == item.m_productId && product.m_name == item.m_name &&
- product.m_price == item.m_price;
- });
-
- if (it != productsContainer.end())
- ++countOfEqual;
- }
+ TEST_EQUAL(synchronousProducts.size(), productsContainer.size(), ());
- // At least 75 percents of products should be equal.
- TEST_LESS_OR_EQUAL(static_cast<size_t>(synchronousProducts.size() * 0.75), countOfEqual, ());
+ auto const isEqual =
+ equal(synchronousProducts.begin(), synchronousProducts.end(), productsContainer.begin(),
+ [](uber::Product const & lhs, uber::Product const & rhs) {
+ return lhs.m_productId == rhs.m_productId && lhs.m_name == rhs.m_name &&
+ lhs.m_price == rhs.m_price;
+ });
+ TEST(isEqual, ());
}
diff --git a/partners_api/uber_api.cpp b/partners_api/uber_api.cpp
index 076f9d693e..52c96d1629 100644
--- a/partners_api/uber_api.cpp
+++ b/partners_api/uber_api.cpp
@@ -17,6 +17,9 @@ using namespace platform;
namespace
{
+string const kUberEstimatesUrl = "https://api.uber.com/v1/estimates";
+string g_uberUrlForTesting = "";
+
bool RunSimpleHttpRequest(string const & url, string & result)
{
HttpClient request(url);
@@ -111,6 +114,14 @@ void MakeFromJson(char const * times, char const * prices, vector<uber::Product>
products.clear();
}
}
+
+string GetUberURL()
+{
+ if (!g_uberUrlForTesting.empty())
+ return g_uberUrlForTesting;
+
+ return kUberEstimatesUrl;
+}
} // namespace
namespace uber
@@ -131,7 +142,7 @@ bool RawApi::GetEstimatedTime(ms::LatLon const & pos, string & result)
{
stringstream url;
url << fixed << setprecision(6)
- << "https://api.uber.com/v1/estimates/time?server_token=" << UBER_SERVER_TOKEN
+ << GetUberURL() << "/time?server_token=" << UBER_SERVER_TOKEN
<< "&start_latitude=" << pos.lat << "&start_longitude=" << pos.lon;
return RunSimpleHttpRequest(url.str(), result);
@@ -142,7 +153,7 @@ bool RawApi::GetEstimatedPrice(ms::LatLon const & from, ms::LatLon const & to, s
{
stringstream url;
url << fixed << setprecision(6)
- << "https://api.uber.com/v1/estimates/price?server_token=" << UBER_SERVER_TOKEN
+ << GetUberURL() << "/price?server_token=" << UBER_SERVER_TOKEN
<< "&start_latitude=" << from.lat << "&start_longitude=" << from.lon
<< "&end_latitude=" << to.lat << "&end_longitude=" << to.lon;
@@ -250,6 +261,11 @@ RideRequestLinks Api::GetRideRequestLinks(string const & productId, ms::LatLon c
return {"uber://" + url.str(), "https://m.uber.com/ul" + url.str()};
}
+void SetUberUrlForTesting(string const & url)
+{
+ g_uberUrlForTesting = url;
+}
+
string DebugPrint(ErrorCode error)
{
switch (error)
diff --git a/partners_api/uber_api.hpp b/partners_api/uber_api.hpp
index f25a0cbf62..34cf270fab 100644
--- a/partners_api/uber_api.hpp
+++ b/partners_api/uber_api.hpp
@@ -102,5 +102,6 @@ private:
uint64_t m_requestId = 0;
};
+void SetUberUrlForTesting(string const & url);
string DebugPrint(ErrorCode error);
} // namespace uber