summaryrefslogtreecommitdiff
path: root/src/components/application_manager/test/request_controller/request_controller_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/application_manager/test/request_controller/request_controller_test.cc')
-rw-r--r--src/components/application_manager/test/request_controller/request_controller_test.cc81
1 files changed, 46 insertions, 35 deletions
diff --git a/src/components/application_manager/test/request_controller/request_controller_test.cc b/src/components/application_manager/test/request_controller/request_controller_test.cc
index 2de2a69cf7..796df0810f 100644
--- a/src/components/application_manager/test/request_controller/request_controller_test.cc
+++ b/src/components/application_manager/test/request_controller/request_controller_test.cc
@@ -45,7 +45,6 @@
#include "application_manager/event_engine/event_dispatcher.h"
#include "application_manager/mock_application_manager.h"
-#include "application_manager/mock_application_manager.h"
#include "application_manager/mock_request_controller_settings.h"
#include "application_manager/mock_request_timeout_handler.h"
#include "application_manager/policies/policy_handler.h"
@@ -62,10 +61,12 @@ namespace request_controller_test {
using ::application_manager::request_controller::RequestController;
using ::application_manager::request_controller::RequestControllerImpl;
using ::application_manager::request_controller::RequestInfo;
+using ::test::components::application_manager_test::MockApplicationManager;
using test::components::application_manager_test::MockRequestTimeoutHandler;
using ::test::components::event_engine_test::MockEventDispatcher;
using ::testing::_;
+using ::testing::DoAll;
using ::testing::NiceMock;
using ::testing::Return;
using ::testing::ReturnRef;
@@ -168,6 +169,7 @@ class RequestControllerTestClass : public ::testing::Test {
RequestControllerSPtr request_ctrl_;
RequestPtr empty_mock_request_;
const TestSettings default_settings_;
+ NiceMock<MockApplicationManager> app_mngr_;
};
TEST_F(RequestControllerTestClass,
@@ -179,13 +181,20 @@ TEST_F(RequestControllerTestClass,
EXPECT_CALL(*request_valid, Run())
.Times(1)
.WillRepeatedly(NotifyTestAsyncWaiter(waiter_valid));
+ EXPECT_CALL(*request_valid, GetApplicationManager())
+ .Times(1)
+ .WillRepeatedly(ReturnRef(app_mngr_));
+ EXPECT_CALL(app_mngr_, IsStopping())
+ .Times(1)
+ .WillRepeatedly(
+ DoAll(NotifyTestAsyncWaiter(waiter_valid), Return(false)));
EXPECT_EQ(RequestController::TResult::SUCCESS,
AddRequest(default_settings_,
request_valid,
RequestInfo::RequestType::MobileRequest,
mobile_apis::HMILevel::HMI_NONE));
- EXPECT_TRUE(waiter_valid->WaitFor(1, 1000));
+ EXPECT_TRUE(waiter_valid->WaitFor(2, 1000));
// The command should not be run if another command with the same
// correlation_id is waiting for a response
@@ -206,43 +215,25 @@ TEST_F(RequestControllerTestClass,
TEST_F(RequestControllerTestClass,
CheckPosibilitytoAdd_ZeroValueLimiters_SUCCESS) {
+ auto waiter_valid = TestAsyncWaiter::createInstance();
// Test case than pending_requests_amount,
// app_time_scale_max_requests_ and
// app_hmi_level_none_time_scale_max_requests_ equals 0
// (in the default settings they setted to 0)
for (size_t i = 0; i < kMaxRequestAmount; ++i) {
+ RequestPtr request_valid = GetMockRequest(i);
+ EXPECT_CALL(*request_valid, GetApplicationManager())
+ .WillRepeatedly(ReturnRef(app_mngr_));
+ EXPECT_CALL(app_mngr_, IsStopping())
+ .WillRepeatedly(
+ DoAll(NotifyTestAsyncWaiter(waiter_valid), Return(false)));
EXPECT_EQ(RequestController::TResult::SUCCESS,
AddRequest(default_settings_,
- GetMockRequest(i),
- RequestInfo::RequestType::MobileRequest,
- mobile_apis::HMILevel::HMI_FULL));
- }
-}
-
-TEST_F(
- RequestControllerTestClass,
- CheckPosibilitytoAdd_ExcessPendingRequestsAmount_TooManyPendingRequests) {
- TestSettings settings;
- settings.pending_requests_amount_ = kNumberOfRequests;
-
- request_ctrl_->DestroyThreadpool();
-
- // Adding requests to fit in pending_requests_amount_
- for (size_t i = 0; i < kNumberOfRequests; ++i) {
- EXPECT_EQ(RequestController::TResult::SUCCESS,
- AddRequest(settings,
- GetMockRequest(),
+ request_valid,
RequestInfo::RequestType::MobileRequest,
mobile_apis::HMILevel::HMI_FULL));
}
-
- // Trying to add one more extra request
- // Expect overflow and TOO_MANY_PENDING_REQUESTS result
- EXPECT_EQ(RequestController::TResult::TOO_MANY_PENDING_REQUESTS,
- AddRequest(settings,
- GetMockRequest(),
- RequestInfo::RequestType::MobileRequest,
- mobile_apis::HMILevel::HMI_FULL));
+ EXPECT_TRUE(waiter_valid->WaitFor(kMaxRequestAmount, 1000));
}
TEST_F(RequestControllerTestClass, IsLowVoltage_SetOnLowVoltage_TRUE) {
@@ -258,11 +249,26 @@ TEST_F(RequestControllerTestClass, IsLowVoltage_SetOnWakeUp_FALSE) {
}
TEST_F(RequestControllerTestClass, AddMobileRequest_SetValidData_SUCCESS) {
+ RequestPtr request_valid = GetMockRequest();
+ auto waiter_valid = TestAsyncWaiter::createInstance();
+ ON_CALL(*request_valid, default_timeout()).WillByDefault(Return(0));
+ EXPECT_CALL(*request_valid, Init()).WillOnce(Return(true));
+ EXPECT_CALL(*request_valid, Run())
+ .Times(1)
+ .WillRepeatedly(NotifyTestAsyncWaiter(waiter_valid));
+ EXPECT_CALL(*request_valid, GetApplicationManager())
+ .Times(1)
+ .WillRepeatedly(ReturnRef(app_mngr_));
+ EXPECT_CALL(app_mngr_, IsStopping())
+ .Times(1)
+ .WillRepeatedly(
+ DoAll(NotifyTestAsyncWaiter(waiter_valid), Return(false)));
EXPECT_EQ(RequestController::TResult::SUCCESS,
AddRequest(default_settings_,
- GetMockRequest(),
+ request_valid,
RequestInfo::RequestType::MobileRequest,
mobile_apis::HMILevel::HMI_FULL));
+ EXPECT_TRUE(waiter_valid->WaitFor(2, 1000));
}
TEST_F(RequestControllerTestClass,
@@ -292,18 +298,23 @@ TEST_F(RequestControllerTestClass, OnTimer_SUCCESS) {
const uint32_t request_timeout = 1u;
RequestPtr mock_request = GetMockRequest(
kDefaultCorrelationID, kDefaultConnectionKey, request_timeout);
-
auto waiter = TestAsyncWaiter::createInstance();
+ EXPECT_CALL(*mock_request, GetApplicationManager())
+ .Times(1)
+ .WillRepeatedly(ReturnRef(app_mngr_));
+ EXPECT_CALL(app_mngr_, IsStopping())
+ .Times(1)
+ .WillRepeatedly(DoAll(NotifyTestAsyncWaiter(waiter), Return(false)));
+ EXPECT_CALL(*mock_request, HandleTimeOut())
+ .WillOnce(NotifyTestAsyncWaiter(waiter));
+
EXPECT_EQ(RequestController::TResult::SUCCESS,
AddRequest(default_settings_,
mock_request,
RequestInfo::RequestType::MobileRequest));
- EXPECT_CALL(*mock_request, HandleTimeOut())
- .WillOnce(NotifyTestAsyncWaiter(waiter));
-
// Waiting for call of `onTimeOut` for `kTimeScale` seconds
- EXPECT_TRUE(waiter->WaitFor(1, kTimeScale));
+ EXPECT_TRUE(waiter->WaitFor(2, kTimeScale));
}
} // namespace request_controller_test