summaryrefslogtreecommitdiff
path: root/src/components/policy/test/policy_manager_impl_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/policy/test/policy_manager_impl_test.cc')
-rw-r--r--src/components/policy/test/policy_manager_impl_test.cc80
1 files changed, 66 insertions, 14 deletions
diff --git a/src/components/policy/test/policy_manager_impl_test.cc b/src/components/policy/test/policy_manager_impl_test.cc
index 7a992179b3..6930c28320 100644
--- a/src/components/policy/test/policy_manager_impl_test.cc
+++ b/src/components/policy/test/policy_manager_impl_test.cc
@@ -40,7 +40,7 @@
#include "mock_cache_manager.h"
#include "mock_update_status_manager.h"
#include "policy/policy_manager_impl.h"
-#include "policy/update_status_manager.h"
+#include "policy/update_status_manager_interface.h"
#include "policy/cache_manager_interface.h"
#include "json/value.h"
#include "utils/shared_ptr.h"
@@ -56,11 +56,12 @@ using ::policy::MockPolicyListener;
using ::policy::MockPTRepresentation;
using ::policy::MockPTExtRepresentation;
using ::policy::MockCacheManagerInterface;
-using ::policy::MockUpdateStatusManager;
+using ::policy::MockUpdateStatusManagerInterface;
using ::policy::PolicyManagerImpl;
using ::policy::PolicyTable;
using ::policy::EndpointUrls;
using ::policy::CacheManagerInterfaceSPtr;
+using ::policy::UpdateStatusManagerInterfaceSPtr;
namespace policy_table = rpc::policy_table_interface_base;
@@ -72,7 +73,7 @@ class PolicyManagerImplTest : public ::testing::Test {
protected:
PolicyManagerImpl* manager;
MockCacheManagerInterface* cache_manager;
- MockUpdateStatusManager update_manager;
+ MockUpdateStatusManagerInterface* update_manager;
MockPolicyListener* listener;
void SetUp() {
@@ -81,11 +82,19 @@ class PolicyManagerImplTest : public ::testing::Test {
cache_manager = new MockCacheManagerInterface();
manager->set_cache_manager(cache_manager);
+ update_manager = new MockUpdateStatusManagerInterface();
+ manager->set_update_status_manager(update_manager);
+
listener = new MockPolicyListener();
+ EXPECT_CALL(*update_manager, set_listener(listener)).Times(1);
manager->set_listener(listener);
}
void TearDown() {
+ EXPECT_CALL(*update_manager, GetUpdateStatus()).Times(1)
+ .WillOnce(Return(::policy::StatusUpToDate));
+ EXPECT_CALL(*cache_manager, Backup()).Times(1);
+ EXPECT_CALL(*cache_manager, SaveUpdateRequired(_)).Times(1);
delete manager;
delete listener;
}
@@ -101,7 +110,33 @@ class PolicyManagerImplTest : public ::testing::Test {
}
};
-TEST_F(PolicyManagerImplTest, DISABLED_RefreshRetrySequence) {
+TEST_F(PolicyManagerImplTest, ExceededIgnitionCycles) {
+ EXPECT_CALL(*cache_manager, IgnitionCyclesBeforeExchange()).Times(2).WillOnce(
+ Return(5)).WillOnce(Return(0));
+ EXPECT_CALL(*cache_manager, IncrementIgnitionCycles()).Times(1);
+
+ EXPECT_FALSE(manager->ExceededIgnitionCycles());
+ manager->IncrementIgnitionCycles();
+ EXPECT_TRUE(manager->ExceededIgnitionCycles());
+}
+
+TEST_F(PolicyManagerImplTest, ExceededDays) {
+ EXPECT_CALL(*cache_manager, DaysBeforeExchange(_)).Times(2).WillOnce(
+ Return(5)).WillOnce(Return(0));
+
+ EXPECT_FALSE(manager->ExceededDays(5));
+ EXPECT_TRUE(manager->ExceededDays(15));
+}
+
+TEST_F(PolicyManagerImplTest, ExceededKilometers) {
+ EXPECT_CALL(*cache_manager, KilometersBeforeExchange(_)).Times(2).WillOnce(
+ Return(50)).WillOnce(Return(0));
+
+ EXPECT_FALSE(manager->ExceededKilometers(50));
+ EXPECT_TRUE(manager->ExceededKilometers(150));
+}
+
+TEST_F(PolicyManagerImplTest, RefreshRetrySequence) {
std::vector<int> seconds;
seconds.push_back(50);
seconds.push_back(100);
@@ -118,14 +153,26 @@ TEST_F(PolicyManagerImplTest, DISABLED_RefreshRetrySequence) {
EXPECT_EQ(0, manager->NextRetryTimeout());
}
-TEST_F(PolicyManagerImplTest, DISABLED_GetUpdateUrl) {
-
- EXPECT_CALL(*cache_manager, GetUpdateUrls(7,_)).Times(1);
- EXPECT_CALL(*cache_manager, GetUpdateUrls(4,_)).Times(1);
+TEST_F(PolicyManagerImplTest, RefreshRetrySequence) {
+ ::testing::NiceMock<MockPTRepresentation> mock_pt;
+ std::vector<int> seconds, seconds_empty;
+ seconds.push_back(50);
+ seconds.push_back(100);
+ seconds.push_back(200);
- EXPECT_EQ("http://policies.telematics.ford.com/api/policies", manager->GetUpdateUrl(7));
- EXPECT_EQ("http://policies.ford.com/api/policies", manager->GetUpdateUrl(4));
+ EXPECT_CALL(mock_pt, TimeoutResponse()).Times(2).WillOnce(Return(0)).WillOnce(
+ Return(60));
+ EXPECT_CALL(mock_pt, SecondsBetweenRetries(_)).Times(2).WillOnce(
+ DoAll(SetArgPointee<0>(seconds_empty), Return(true))).WillOnce(
+ DoAll(SetArgPointee<0>(seconds), Return(true)));
+ PolicyManagerImpl* manager = new PolicyManagerImpl();
+ manager->ResetDefaultPT(::policy::PolicyTable(&mock_pt));
+ manager->RefreshRetrySequence();
+ EXPECT_EQ(60, manager->TimeoutExchange());
+ EXPECT_EQ(50, manager->NextRetryTimeout());
+ EXPECT_EQ(100, manager->NextRetryTimeout());
+ EXPECT_EQ(200, manager->NextRetryTimeout());
}
@@ -139,6 +186,7 @@ TEST_F(PolicyManagerImplTest, ResetPT) {
EXPECT_FALSE(manager->ResetPT("filename"));
}
+// EXTENDED_POLICY
TEST_F(PolicyManagerImplTest, CheckPermissions) {
::policy::CheckPermissionResult expected;
expected.hmi_level_permitted = ::policy::kRpcAllowed;
@@ -248,14 +296,13 @@ TEST_F(PolicyManagerImplTest, LoadPT) {
utils::SharedPtr<policy_table::Table> snapshot =
new policy_table::Table(update.policy_table);
+ EXPECT_CALL(*update_manager, OnValidUpdateReceived()).Times(1);
EXPECT_CALL(*cache_manager, GenerateSnapshot()).Times(1).WillOnce(Return(snapshot));
EXPECT_CALL(*cache_manager, ApplyUpdate(_)).Times(1).WillOnce(Return(true));
EXPECT_CALL(*listener, GetAppName("1234")).Times(1).WillOnce(Return(""));
- EXPECT_CALL(*listener, OnUpdateStatusChanged(_)).Times(1);
- EXPECT_CALL(*cache_manager, SaveUpdateRequired(false)).Times(1);
EXPECT_CALL(*cache_manager, TimeoutResponse()).Times(1);
EXPECT_CALL(*cache_manager, SecondsBetweenRetries(_)).Times(1);
-
+ EXPECT_CALL(*listener, OnUserRequestedUpdateCheckRequired()).Times(1);
EXPECT_TRUE(manager->LoadPT("file_pt_update.json", msg));
}
@@ -263,9 +310,14 @@ TEST_F(PolicyManagerImplTest, LoadPT) {
TEST_F(PolicyManagerImplTest, RequestPTUpdate) {
::utils::SharedPtr< ::policy_table::Table> p_table =
new ::policy_table::Table();
+ std::string json = p_table->ToJsonValue().toStyledString();
+ ::policy::BinaryMessageSptr expect = new ::policy::BinaryMessage(json.begin(),
+ json.end());
EXPECT_CALL(*cache_manager, GenerateSnapshot()).WillOnce(Return(p_table));
- manager->RequestPTUpdate();
+
+ ::policy::BinaryMessageSptr output = manager->RequestPTUpdate();
+ EXPECT_EQ(*expect, *output);
}