Add time Manager to handle property changes callback
1. Implement time::Manager who registers property change signal for time
mode and owner;
2. Add PropertyChangeListner interface to handle the callback;
3. Make EpochBase to implement the interface.
Change-Id: I185580ae37353e1ed82a47e4905fb22e269ac09d
Signed-off-by: Lei YU <mine260309@gmail.com>
diff --git a/test/TestEpochBase.cpp b/test/TestEpochBase.cpp
index c3ca7e1..e4a2b68 100644
--- a/test/TestEpochBase.cpp
+++ b/test/TestEpochBase.cpp
@@ -1,6 +1,7 @@
#include <sdbusplus/bus.hpp>
#include <gtest/gtest.h>
+#include "types.hpp"
#include "epoch_base.hpp"
namespace phosphor
@@ -11,9 +12,6 @@
class TestEpochBase : public testing::Test
{
public:
- using Mode = EpochBase::Mode;
- using Owner = EpochBase::Owner;
-
sdbusplus::bus::bus bus;
EpochBase epochBase;
@@ -24,40 +22,38 @@
// Empty
}
- // Proxies for EpochBase's private members and functions
- Mode convertToMode(const std::string& mode)
+ Mode getMode()
{
- return EpochBase::convertToMode(mode);
+ return epochBase.timeMode;
}
- Owner convertToOwner(const std::string& owner)
+ Owner getOwner()
{
- return EpochBase::convertToOwner(owner);
+ return epochBase.timeOwner;
}
};
-TEST_F(TestEpochBase, convertToMode)
+TEST_F(TestEpochBase, onModeChange)
{
- EXPECT_EQ(Mode::NTP, convertToMode("NTP"));
- EXPECT_EQ(Mode::MANUAL, convertToMode("MANUAL"));
+ epochBase.onModeChanged(Mode::NTP);
+ EXPECT_EQ(Mode::NTP, getMode());
- // All unrecognized strings are mapped to Ntp
- EXPECT_EQ(Mode::NTP, convertToMode(""));
- EXPECT_EQ(Mode::NTP, convertToMode("Manual"));
- EXPECT_EQ(Mode::NTP, convertToMode("whatever"));
+ epochBase.onModeChanged(Mode::MANUAL);
+ EXPECT_EQ(Mode::MANUAL, getMode());
}
-
-TEST_F(TestEpochBase, convertToOwner)
+TEST_F(TestEpochBase, onOwnerChange)
{
- EXPECT_EQ(Owner::BMC, convertToOwner("BMC"));
- EXPECT_EQ(Owner::HOST, convertToOwner("HOST"));
- EXPECT_EQ(Owner::SPLIT, convertToOwner("SPLIT"));
- EXPECT_EQ(Owner::BOTH, convertToOwner("BOTH"));
+ epochBase.onOwnerChanged(Owner::BMC);
+ EXPECT_EQ(Owner::BMC, getOwner());
- // All unrecognized strings are mapped to Bmc
- EXPECT_EQ(Owner::BMC, convertToOwner(""));
- EXPECT_EQ(Owner::BMC, convertToOwner("Split"));
- EXPECT_EQ(Owner::BMC, convertToOwner("xyz"));
+ epochBase.onOwnerChanged(Owner::HOST);
+ EXPECT_EQ(Owner::HOST, getOwner());
+
+ epochBase.onOwnerChanged(Owner::SPLIT);
+ EXPECT_EQ(Owner::SPLIT, getOwner());
+
+ epochBase.onOwnerChanged(Owner::BOTH);
+ EXPECT_EQ(Owner::BOTH, getOwner());
}
}