summaryrefslogtreecommitdiff
path: root/src/components/application_manager/test/request_info_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/application_manager/test/request_info_test.cc')
-rw-r--r--src/components/application_manager/test/request_info_test.cc537
1 files changed, 391 insertions, 146 deletions
diff --git a/src/components/application_manager/test/request_info_test.cc b/src/components/application_manager/test/request_info_test.cc
index 86103e7998..886736fa97 100644
--- a/src/components/application_manager/test/request_info_test.cc
+++ b/src/components/application_manager/test/request_info_test.cc
@@ -1,242 +1,487 @@
-#include "gtest/gtest.h"
-#include "gmock/gmock.h"
+/*
+ * Copyright (c) 2015, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
#include "application_manager/request_info.h"
-#include "application_manager/message_helper.h"
#include <iostream>
+#include <vector>
+#include <limits>
+#include "gmock/gmock.h"
+#include "utils/shared_ptr.h"
+#include "utils/make_shared.h"
namespace request_info = application_manager::request_controller;
-class MockRequest: public application_manager::commands::Command {
- public:
- MockRequest(uint32_t connection_key,
- uint32_t correlation_id):
- connection_key_(connection_key),
- correlation_id_(correlation_id) {
-
- }
- MOCK_METHOD0(CheckPermissions, bool ());
- MOCK_METHOD0(Init, bool ());
- MOCK_METHOD0(Run, void ());
- MOCK_METHOD0(CleanUp, bool ());
- MOCK_CONST_METHOD0(default_timeout, uint32_t ());
- MOCK_CONST_METHOD0(function_id, int32_t ());
- MOCK_METHOD0(onTimeOut, void ());
- MOCK_METHOD0(AllowedToTerminate, bool ());
- MOCK_METHOD1(SetAllowedToTerminate, void (bool));
-
- uint32_t connection_key_;
- uint32_t correlation_id_;
- virtual uint32_t connection_key() const;
- virtual uint32_t correlation_id() const;
-};
+namespace test {
+namespace components {
+namespace application_manager_test {
+
+class MockRequest : public application_manager::commands::Command {
+ public:
+ MockRequest(uint32_t connection_key, uint32_t correlation_id)
+ : connection_key_(connection_key), correlation_id_(correlation_id) {}
+ MOCK_METHOD0(CheckPermissions, bool());
+ MOCK_METHOD0(Init, bool());
+ MOCK_METHOD0(Run, void());
+ MOCK_METHOD0(CleanUp, bool());
+ MOCK_CONST_METHOD0(default_timeout, uint32_t());
+ MOCK_CONST_METHOD0(function_id, int32_t());
+ MOCK_METHOD0(onTimeOut, void());
+ MOCK_METHOD0(AllowedToTerminate, bool());
+ MOCK_METHOD1(SetAllowedToTerminate, void(bool));
-class TestRequestInfo: public request_info::RequestInfo {
- public:
- TestRequestInfo(request_info::RequestPtr request,
- const RequestType requst_type,
- const TimevalStruct& start_time,
- const uint64_t timeout_sec):
- RequestInfo(request, requst_type, start_time,timeout_sec) {
+ uint32_t connection_key_;
+ uint32_t correlation_id_;
+ virtual uint32_t connection_key() const {
+ return connection_key_;
+ }
+ virtual uint32_t correlation_id() const {
+ return correlation_id_;
+ }
+};
- }
- void SetEndTime(const TimevalStruct& end_time);
+class TestRequestInfo : public request_info::RequestInfo {
+ public:
+ TestRequestInfo(request_info::RequestPtr request,
+ const RequestType requst_type,
+ const TimevalStruct& start_time,
+ const uint64_t timeout_msec)
+ : RequestInfo(request, requst_type, start_time, timeout_msec) {}
+ void SetEndTime(const TimevalStruct& end_time) {
+ end_time_ = end_time;
+ }
};
+
class RequestInfoTest : public ::testing::Test {
- protected:
- virtual void SetUp() {
- //INIT_LOGGER("log4cxx.properties");
- count_of_requests_for_test_ = 1000;
- hmi_connection_key_ = 0;
- mobile_connection_key1_ = 65431;
- mobile_connection_key2_ = 65123;
- default_timeout_ = 10;
- srand(42);
- }
- virtual void TearDown() {
- //DEINIT_LOGGER();
- }
-
- request_info::RequestInfoSet request_info_set_;
- uint32_t count_of_requests_for_test_ ;
- uint32_t hmi_connection_key_;
- uint32_t mobile_connection_key1_;
- uint32_t mobile_connection_key2_;
- uint32_t default_timeout_;
-
- utils::SharedPtr<TestRequestInfo> create_test_info(uint32_t connection_key,
- uint32_t correlation_id,
- request_info::RequestInfo::RequestType requst_type,
- const TimevalStruct& start_time,
- uint64_t timeout_sec) {
- utils::SharedPtr<MockRequest> mock_request(new MockRequest(connection_key,correlation_id));
- TestRequestInfo* test_request_raw = new TestRequestInfo(mock_request,requst_type,
- start_time, timeout_sec);
- utils::SharedPtr<TestRequestInfo> request(test_request_raw);
- return request;
- }
+ protected:
+ virtual void SetUp() OVERRIDE {
+ count_of_requests_for_test_ = 1000;
+ hmi_connection_key_ = 0;
+ mobile_connection_key1_ = 65431;
+ mobile_connection_key2_ = 65123;
+ mobile_correlation_id = 111;
+ default_timeout_ = 10;
+ }
+
+ request_info::RequestInfoSet request_info_set_;
+ uint32_t count_of_requests_for_test_;
+ uint32_t hmi_connection_key_;
+ uint32_t mobile_connection_key1_;
+ uint32_t mobile_connection_key2_;
+ uint32_t default_timeout_;
+ uint32_t mobile_correlation_id;
+
+ utils::SharedPtr<TestRequestInfo> CreateTestInfo(
+ uint32_t connection_key,
+ uint32_t correlation_id,
+ request_info::RequestInfo::RequestType requst_type,
+ const TimevalStruct& start_time,
+ uint64_t timeout_msec) {
+ utils::SharedPtr<MockRequest> mock_request =
+ utils::MakeShared<MockRequest>(connection_key, correlation_id);
+ utils::SharedPtr<TestRequestInfo> request =
+ utils::MakeShared<TestRequestInfo>(
+ mock_request, requst_type, start_time, timeout_msec);
+ return request;
+ }
};
-TEST_F(RequestInfoTest, RequestInfoEqualEndTimeTest) {
- std::list<utils::SharedPtr<TestRequestInfo> > requests;
+TEST_F(RequestInfoTest, RequestInfoEqualEndTime) {
+ std::vector<utils::SharedPtr<TestRequestInfo>> requests;
const TimevalStruct& time = date_time::DateTime::getCurrentTime();
for (uint32_t i = 0; i < count_of_requests_for_test_; ++i) {
- utils::SharedPtr<TestRequestInfo> request =
- create_test_info(rand(), rand(), request_info::RequestInfo::MobileRequest,
- time, default_timeout_);
+ utils::SharedPtr<TestRequestInfo> request = CreateTestInfo(
+ i, i, request_info::RequestInfo::MobileRequest, time, default_timeout_);
request->SetEndTime(time);
EXPECT_TRUE(request_info_set_.Add(request));
}
EXPECT_EQ(count_of_requests_for_test_, request_info_set_.Size());
}
-TEST_F(RequestInfoTest, RequestInfoSetInsertErazeTest) {
+TEST_F(RequestInfoTest, AddRemoveHMIRequests) {
for (uint32_t i = 0; i < count_of_requests_for_test_; ++i) {
utils::SharedPtr<TestRequestInfo> request =
- create_test_info(hmi_connection_key_, i, request_info::RequestInfo::HMIRequest,
- date_time::DateTime::getCurrentTime(), default_timeout_);
- EXPECT_TRUE(request_info_set_.Add(request));
- EXPECT_EQ(1, request_info_set_.RemoveRequest(request));
+ CreateTestInfo(hmi_connection_key_,
+ i,
+ request_info::RequestInfo::HMIRequest,
+ date_time::DateTime::getCurrentTime(),
+ default_timeout_);
+ EXPECT_TRUE(request_info_set_.Add(request));
+ EXPECT_TRUE(request_info_set_.RemoveRequest(request));
}
EXPECT_EQ(0u, request_info_set_.Size());
- std::list<utils::SharedPtr<TestRequestInfo> > requests;
+}
+TEST_F(RequestInfoTest, AddHMIRequests_RemoveAllRequests) {
+ std::vector<utils::SharedPtr<TestRequestInfo>> requests;
+
+ // Add hmi requests
for (uint32_t i = 0; i < count_of_requests_for_test_; ++i) {
- utils::SharedPtr<TestRequestInfo> request =
- create_test_info(hmi_connection_key_, i, request_info::RequestInfo::HMIRequest,
- date_time::DateTime::getCurrentTime(), default_timeout_);
- requests.push_back(request);
- EXPECT_TRUE(request_info_set_.Add(request));
+ utils::SharedPtr<TestRequestInfo> request =
+ CreateTestInfo(hmi_connection_key_,
+ i,
+ request_info::RequestInfo::HMIRequest,
+ date_time::DateTime::getCurrentTime(),
+ default_timeout_);
+ requests.push_back(request);
+ EXPECT_TRUE(request_info_set_.Add(request));
}
+ EXPECT_EQ(count_of_requests_for_test_, request_info_set_.Size());
- std::list<utils::SharedPtr<TestRequestInfo> >::iterator it = requests.begin();
- std::list<utils::SharedPtr<TestRequestInfo> >::iterator end = requests.end();
+ // Delete every request
+ std::vector<utils::SharedPtr<TestRequestInfo>>::iterator req_it =
+ requests.begin();
- for (; it != end; ++it) {
- EXPECT_EQ(1,request_info_set_.RemoveRequest(*it));
+ for (; req_it != requests.end(); ++req_it) {
+ EXPECT_TRUE(request_info_set_.RemoveRequest(*req_it));
}
EXPECT_EQ(0u, request_info_set_.Size());
- it = requests.begin();
- for (; it != end; ++it) {
- EXPECT_TRUE(request_info_set_.Add(*it));
+
+ // Delete requests by connection key
+ req_it = requests.begin();
+ for (; req_it != requests.end(); ++req_it) {
+ EXPECT_TRUE(request_info_set_.Add(*req_it));
}
EXPECT_EQ(count_of_requests_for_test_, request_info_set_.Size());
- EXPECT_EQ(count_of_requests_for_test_, request_info_set_.RemoveByConnectionKey(hmi_connection_key_));
+ EXPECT_EQ(count_of_requests_for_test_,
+ request_info_set_.RemoveByConnectionKey(hmi_connection_key_));
EXPECT_EQ(0u, request_info_set_.Size());
- it = requests.begin();
- for (; it != end; ++it) {
- EXPECT_TRUE(request_info_set_.Add(*it));
+}
+
+TEST_F(RequestInfoTest, CheckRequestsMaxCount) {
+ const uint32_t app_hmi_level_time_scale = 100;
+ const uint32_t hmi_level_count = 1000;
+
+ // Count of added requests is less than max possible
+ std::vector<utils::SharedPtr<TestRequestInfo>> requests;
+ for (uint32_t i = 0; i < hmi_level_count - 1; ++i) {
+ utils::SharedPtr<TestRequestInfo> request =
+ CreateTestInfo(mobile_connection_key1_,
+ i,
+ request_info::RequestInfo::MobileRequest,
+ date_time::DateTime::getCurrentTime(),
+ default_timeout_);
+
+ request->set_hmi_level(mobile_apis::HMILevel::HMI_FULL);
+ requests.push_back(request);
+ EXPECT_TRUE(request_info_set_.Add(request));
}
- EXPECT_EQ(count_of_requests_for_test_, request_info_set_.Size());
+ EXPECT_EQ(hmi_level_count - 1, request_info_set_.Size());
+
+ EXPECT_TRUE(request_info_set_.CheckHMILevelTimeScaleMaxRequest(
+ mobile_apis::HMILevel::HMI_FULL,
+ mobile_connection_key1_,
+ app_hmi_level_time_scale,
+ hmi_level_count));
+
+ // Adding new request is correct
+ utils::SharedPtr<TestRequestInfo> new_request =
+ CreateTestInfo(mobile_connection_key1_,
+ hmi_level_count,
+ request_info::RequestInfo::MobileRequest,
+ date_time::DateTime::getCurrentTime(),
+ default_timeout_);
+ new_request->set_hmi_level(mobile_apis::HMILevel::HMI_FULL);
+ EXPECT_TRUE(request_info_set_.Add(new_request));
+ EXPECT_EQ(hmi_level_count, request_info_set_.Size());
+
+ // Count of added requests is max
+ EXPECT_FALSE(request_info_set_.CheckHMILevelTimeScaleMaxRequest(
+ mobile_apis::HMILevel::HMI_FULL,
+ mobile_connection_key1_,
+ app_hmi_level_time_scale,
+ hmi_level_count));
+
+ utils::SharedPtr<TestRequestInfo> new_request2 =
+ CreateTestInfo(mobile_connection_key1_,
+ hmi_level_count + 1,
+ request_info::RequestInfo::MobileRequest,
+ date_time::DateTime::getCurrentTime(),
+ default_timeout_);
+
+ EXPECT_TRUE(request_info_set_.Add(new_request2));
+}
+
+TEST_F(RequestInfoTest, CheckMaxCountOfRequest) {
+ const uint32_t app_hmi_level_time_scale = 100;
+ const uint32_t hmi_level_count = 1000;
+
+ // Count of added requests is less than max possible
+ std::vector<utils::SharedPtr<TestRequestInfo>> requests;
+ for (uint32_t i = 0; i < hmi_level_count - 1; ++i) {
+ utils::SharedPtr<TestRequestInfo> request =
+ CreateTestInfo(mobile_connection_key1_,
+ i,
+ request_info::RequestInfo::MobileRequest,
+ date_time::DateTime::getCurrentTime(),
+ default_timeout_);
+ request->set_hmi_level(mobile_apis::HMILevel::HMI_FULL);
+ requests.push_back(request);
+ EXPECT_TRUE(request_info_set_.Add(request));
+ }
+ EXPECT_EQ(hmi_level_count - 1, request_info_set_.Size());
+
+ EXPECT_TRUE(request_info_set_.CheckTimeScaleMaxRequest(
+ mobile_connection_key1_, app_hmi_level_time_scale, hmi_level_count));
+
+ // Adding new request is correct
+ utils::SharedPtr<TestRequestInfo> new_request =
+ CreateTestInfo(mobile_connection_key1_,
+ hmi_level_count,
+ request_info::RequestInfo::MobileRequest,
+ date_time::DateTime::getCurrentTime(),
+ default_timeout_);
+ new_request->set_hmi_level(mobile_apis::HMILevel::HMI_FULL);
+ EXPECT_TRUE(request_info_set_.Add(new_request));
+ EXPECT_EQ(hmi_level_count, request_info_set_.Size());
+
+ // Count of added requests is max
+ EXPECT_FALSE(request_info_set_.CheckTimeScaleMaxRequest(
+ mobile_connection_key1_, app_hmi_level_time_scale, hmi_level_count));
+
+ utils::SharedPtr<TestRequestInfo> new_request2 =
+ CreateTestInfo(mobile_connection_key1_,
+ hmi_level_count + 1,
+ request_info::RequestInfo::MobileRequest,
+ date_time::DateTime::getCurrentTime(),
+ default_timeout_);
+
+ EXPECT_TRUE(request_info_set_.Add(new_request2));
+}
+
+TEST_F(RequestInfoTest, AddMobileRequests_RemoveMobileRequests) {
utils::SharedPtr<TestRequestInfo> mobile_request1 =
- create_test_info(mobile_connection_key1_, 12345, request_info::RequestInfo::MobileRequest,
- date_time::DateTime::getCurrentTime(), default_timeout_);
+ CreateTestInfo(mobile_connection_key1_,
+ 12345,
+ request_info::RequestInfo::MobileRequest,
+ date_time::DateTime::getCurrentTime(),
+ default_timeout_);
EXPECT_TRUE(request_info_set_.Add(mobile_request1));
utils::SharedPtr<TestRequestInfo> mobile_request2 =
- create_test_info(mobile_connection_key2_, 54321, request_info::RequestInfo::MobileRequest,
- date_time::DateTime::getCurrentTime(), default_timeout_);
+ CreateTestInfo(mobile_connection_key2_,
+ 54321,
+ request_info::RequestInfo::MobileRequest,
+ date_time::DateTime::getCurrentTime(),
+ default_timeout_);
EXPECT_TRUE(request_info_set_.Add(mobile_request2));
- EXPECT_EQ(count_of_requests_for_test_ + 2, request_info_set_.Size());
+ EXPECT_EQ(2u, request_info_set_.Size());
EXPECT_EQ(2u, request_info_set_.RemoveMobileRequests());
- EXPECT_EQ(count_of_requests_for_test_, request_info_set_.Size());
- EXPECT_TRUE(request_info_set_.Add(mobile_request1));
- EXPECT_TRUE(request_info_set_.Add(mobile_request2));
- EXPECT_EQ(1u, request_info_set_.RemoveByConnectionKey(mobile_connection_key1_));
- EXPECT_EQ(count_of_requests_for_test_ + 1, request_info_set_.Size());
- EXPECT_EQ(count_of_requests_for_test_, request_info_set_.RemoveByConnectionKey(hmi_connection_key_));
- EXPECT_EQ(1u, request_info_set_.Size());
- EXPECT_EQ(1u, request_info_set_.RemoveMobileRequests());
EXPECT_EQ(0u, request_info_set_.Size());
}
-TEST_F(RequestInfoTest, RequestInfoSetFrontTest) {
+TEST_F(RequestInfoTest, AddMobileRequests_RemoveMobileRequestsByConnectionKey) {
+ std::vector<utils::SharedPtr<TestRequestInfo>> requests;
+ const uint32_t count_of_mobile_request1 = 200;
+ const uint32_t count_of_mobile_request2 = 100;
+ for (uint32_t i = 0; i < count_of_mobile_request1; ++i) {
+ utils::SharedPtr<TestRequestInfo> mobile_request1 =
+ CreateTestInfo(mobile_connection_key1_,
+ i,
+ request_info::RequestInfo::MobileRequest,
+ date_time::DateTime::getCurrentTime(),
+ default_timeout_);
+ requests.push_back(mobile_request1);
+ EXPECT_TRUE(request_info_set_.Add(mobile_request1));
+ }
+ EXPECT_EQ(count_of_mobile_request1, request_info_set_.Size());
+
+ for (uint32_t i = 0; i < count_of_mobile_request2; ++i) {
+ utils::SharedPtr<TestRequestInfo> mobile_request2 =
+ CreateTestInfo(mobile_connection_key2_,
+ i,
+ request_info::RequestInfo::MobileRequest,
+ date_time::DateTime::getCurrentTime(),
+ default_timeout_);
+
+ requests.push_back(mobile_request2);
+ EXPECT_TRUE(request_info_set_.Add(mobile_request2));
+ }
+ EXPECT_EQ(count_of_mobile_request1 + count_of_mobile_request2,
+ request_info_set_.Size());
+
+ EXPECT_EQ(count_of_mobile_request1,
+ request_info_set_.RemoveByConnectionKey(mobile_connection_key1_));
+ EXPECT_EQ(count_of_mobile_request2,
+ request_info_set_.RemoveByConnectionKey(mobile_connection_key2_));
+ EXPECT_EQ(0u, request_info_set_.Size());
+}
+
+TEST_F(RequestInfoTest, RequestInfoSetFront) {
for (uint32_t i = 0; i < count_of_requests_for_test_; ++i) {
- utils::SharedPtr<TestRequestInfo> request =
- create_test_info(mobile_connection_key1_, i, request_info::RequestInfo::HMIRequest,
- date_time::DateTime::getCurrentTime(), i);
- request_info_set_.Add(request);
+ utils::SharedPtr<TestRequestInfo> request =
+ CreateTestInfo(mobile_connection_key1_,
+ i,
+ request_info::RequestInfo::HMIRequest,
+ date_time::DateTime::getCurrentTime(),
+ i);
+ request_info_set_.Add(request);
}
for (uint32_t i = 1; i < count_of_requests_for_test_; ++i) {
request_info::RequestInfoPtr request_info = request_info_set_.Front();
EXPECT_TRUE(request_info.valid());
- EXPECT_EQ(0u, request_info->timeout_sec());
request_info = request_info_set_.FrontWithNotNullTimeout();
EXPECT_TRUE(request_info.valid());
- EXPECT_EQ(i, request_info->timeout_sec());
EXPECT_TRUE(request_info_set_.RemoveRequest(request_info));
}
EXPECT_EQ(1u, request_info_set_.Size());
- EXPECT_EQ(1u, request_info_set_.RemoveByConnectionKey(mobile_connection_key1_));
+ EXPECT_EQ(1u,
+ request_info_set_.RemoveByConnectionKey(mobile_connection_key1_));
EXPECT_EQ(0u, request_info_set_.Size());
}
-TEST_F(RequestInfoTest, RequestInfoSetFindTest) {
-
- std::list <std::pair<uint32_t, uint32_t> > appId_coorrId;
+TEST_F(RequestInfoTest, RequestInfoSetFind) {
+ std::vector<std::pair<uint32_t, uint32_t>> appid_connection_id;
for (uint32_t i = 0; i < count_of_requests_for_test_; ++i) {
- appId_coorrId.push_back(std::pair<uint32_t, uint32_t>(rand(),rand()));
+ appid_connection_id.push_back(
+ std::pair<uint32_t, uint32_t>(i, count_of_requests_for_test_ - i));
}
- std::list <std::pair<uint32_t, uint32_t> >::iterator it;
- std::list <std::pair<uint32_t, uint32_t> >::iterator end =
- appId_coorrId.end();;
+ std::vector<std::pair<uint32_t, uint32_t>>::iterator req_it =
+ appid_connection_id.begin();
+ const std::vector<std::pair<uint32_t, uint32_t>>::iterator end =
+ appid_connection_id.end();
- for (it = appId_coorrId.begin(); it != end; ++it) {
+ for (; req_it != end; ++req_it) {
utils::SharedPtr<TestRequestInfo> request =
- create_test_info(it->first, it->second, request_info::RequestInfo::HMIRequest,
- date_time::DateTime::getCurrentTime(), 10);
+ CreateTestInfo(req_it->first,
+ req_it->second,
+ request_info::RequestInfo::HMIRequest,
+ date_time::DateTime::getCurrentTime(),
+ 10);
EXPECT_TRUE(request_info_set_.Add(request));
}
- request_info::RequestInfoPtr request = request_info_set_.Find(rand(),rand());
+ request_info::RequestInfoPtr request = request_info_set_.Find(
+ count_of_requests_for_test_, count_of_requests_for_test_);
EXPECT_FALSE(request.valid());
- for (it = appId_coorrId.begin(); it != end; ++it) {
- request_info::RequestInfoPtr request = request_info_set_.Find(it->first, it->second);
+
+ req_it = appid_connection_id.begin();
+ for (; req_it != end; ++req_it) {
+ request_info::RequestInfoPtr request =
+ request_info_set_.Find(req_it->first, req_it->second);
EXPECT_TRUE(request.valid());
- EXPECT_EQ(1u, request_info_set_.RemoveRequest(request));
- request = request_info_set_.Find(it->first, it->second);
+ EXPECT_TRUE(request_info_set_.RemoveRequest(request));
+ request = request_info_set_.Find(req_it->first, req_it->second);
EXPECT_FALSE(request.valid());
}
EXPECT_EQ(0u, request_info_set_.Size());
}
-TEST_F(RequestInfoTest, RequestInfoSetEqualHashTest) {
+TEST_F(RequestInfoTest, RequestInfoSetEqualHash) {
request_info::RequestInfoSet request_info_set;
const uint32_t connection_key = 65483;
const uint32_t corr_id = 65483;
utils::SharedPtr<TestRequestInfo> request =
- create_test_info(connection_key, corr_id, request_info::RequestInfo::HMIRequest,
- date_time::DateTime::getCurrentTime(), 10);
+ CreateTestInfo(connection_key,
+ corr_id,
+ request_info::RequestInfo::HMIRequest,
+ date_time::DateTime::getCurrentTime(),
+ 10);
EXPECT_TRUE(request_info_set.Add(request));
EXPECT_FALSE(request_info_set.Add(request));
EXPECT_FALSE(request_info_set.Add(request));
EXPECT_EQ(1u, request_info_set.Size());
- request_info::RequestInfoPtr found = request_info_set.Find(connection_key, corr_id);
+ request_info::RequestInfoPtr found =
+ request_info_set.Find(connection_key, corr_id);
EXPECT_TRUE(found.valid());
- EXPECT_EQ(1u, request_info_set.RemoveRequest(found));
+ EXPECT_TRUE(request_info_set.RemoveRequest(found));
EXPECT_EQ(0u, request_info_set.Size());
EXPECT_TRUE(request_info_set.Add(request));
EXPECT_FALSE(request_info_set.Add(request));
- found = request_info_set.FrontWithNotNullTimeout();
+ found = request_info_set.FrontWithNotNullTimeout();
EXPECT_TRUE(found.valid());
- EXPECT_EQ(1u, request_info_set.RemoveRequest(found));
- found = request_info_set.FrontWithNotNullTimeout();
+ EXPECT_TRUE(request_info_set.RemoveRequest(found));
+ found = request_info_set.FrontWithNotNullTimeout();
+ EXPECT_FALSE(found.valid());
+ found = request_info_set.Front();
EXPECT_FALSE(found.valid());
EXPECT_EQ(0u, request_info_set.Size());
}
+TEST_F(RequestInfoTest, EndTimeisExpired) {
+ TimevalStruct time = date_time::DateTime::getCurrentTime();
-uint32_t MockRequest::correlation_id() const {
- return correlation_id_;
-}
+ TimevalStruct not_expired = date_time::DateTime::getCurrentTime();
+ not_expired.tv_usec = std::numeric_limits<time_t>::min();
-uint32_t MockRequest::connection_key() const {
- return connection_key_;
+ TimevalStruct expired = date_time::DateTime::getCurrentTime();
+ expired.tv_usec = std::numeric_limits<time_t>::max();
+
+ utils::SharedPtr<TestRequestInfo> request =
+ CreateTestInfo(mobile_connection_key1_,
+ mobile_correlation_id,
+ request_info::RequestInfo::MobileRequest,
+ time,
+ default_timeout_);
+
+ request->SetEndTime(expired);
+ EXPECT_FALSE(request->isExpired());
+
+ request->SetEndTime(not_expired);
+ EXPECT_TRUE(request->isExpired());
}
+TEST_F(RequestInfoTest, UpdateEndTime) {
+ TimevalStruct time = date_time::DateTime::getCurrentTime();
+ utils::SharedPtr<TestRequestInfo> request =
+ CreateTestInfo(mobile_connection_key1_,
+ mobile_correlation_id,
+ request_info::RequestInfo::MobileRequest,
+ time,
+ default_timeout_);
+ request->SetEndTime(time);
+ request->updateEndTime();
+ TimevalStruct last_time = request->end_time();
+ EXPECT_LE(time.tv_sec, last_time.tv_sec);
+}
+TEST_F(RequestInfoTest, UpdateTimeOut) {
+ TimevalStruct time = date_time::DateTime::getCurrentTime();
+ utils::SharedPtr<TestRequestInfo> request =
+ CreateTestInfo(mobile_connection_key1_,
+ mobile_correlation_id,
+ request_info::RequestInfo::MobileRequest,
+ time,
+ default_timeout_);
+ request->SetEndTime(time);
+ request->updateEndTime();
-void TestRequestInfo::SetEndTime(const TimevalStruct& end_time) {
- end_time_ = end_time;
+ request->updateTimeOut(100);
+ time = date_time::DateTime::getCurrentTime();
+ TimevalStruct last_time = request->end_time();
+ EXPECT_NEAR(time.tv_sec + 100, last_time.tv_sec, 500);
}
+
+} // namespace application_manager_test
+} // namespace components
+} // namespace test