diff --git a/test/meson.build b/test/meson.build
index 4ec6c0e..0b7b217 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -37,12 +37,13 @@
     ssl,
   ])
 
-test_item_updater = executable(
-  'test_item_updater',
+test_phosphor_psu_manager = executable(
+  'test_phosphor_psu_manager',
   '../src/activation.cpp',
   '../src/item_updater.cpp',
   '../src/version.cpp',
   'test_item_updater.cpp',
+  'test_activation.cpp',
   include_directories: [psu_inc, test_inc],
   link_args: dynamic_linker,
   build_rpath: oe_sdk.enabled() ? rpath : '',
@@ -56,4 +57,4 @@
   ])
 
 test('util', test_util)
-test('item_updater', test_item_updater)
+test('phosphor_psu_manager', test_phosphor_psu_manager)
diff --git a/test/test_activation.cpp b/test/test_activation.cpp
new file mode 100644
index 0000000..0ea3640
--- /dev/null
+++ b/test/test_activation.cpp
@@ -0,0 +1,53 @@
+#include "activation.hpp"
+
+#include <sdbusplus/test/sdbus_mock.hpp>
+
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+
+using namespace phosphor::software::updater;
+
+class TestActivation : public ::testing::Test
+{
+  public:
+    using ActivationStatus = sdbusplus::xyz::openbmc_project::Software::server::
+        Activation::Activations;
+    TestActivation()
+    {
+    }
+    ~TestActivation()
+    {
+    }
+    static constexpr auto dBusPath = SOFTWARE_OBJPATH;
+    sdbusplus::SdBusMock sdbusMock;
+    sdbusplus::bus::bus mockedBus = sdbusplus::get_mocked_new(&sdbusMock);
+    std::unique_ptr<Activation> activation;
+    std::string versionId = "abcdefgh";
+    std::string extVersion = "Some Ext Version";
+    ActivationStatus status = ActivationStatus::Active;
+    AssociationList associations;
+};
+
+TEST_F(TestActivation, ctordtor)
+{
+    activation = std::make_unique<Activation>(mockedBus, dBusPath, versionId,
+                                              extVersion, status, associations);
+}
+
+namespace phosphor::software::updater::internal
+{
+extern std::string getUpdateService(const std::string& psuInventoryPath,
+                                    const std::string& versionId);
+}
+
+TEST_F(TestActivation, getUpdateService)
+{
+    std::string psuInventoryPath = "/com/example/inventory/powersupply1";
+    std::string versionId = "12345678";
+    std::string toCompare = "psu-update@-com-example-inventory-"
+                            "powersupply1\\x20-tmp-images-12345678.service";
+
+    auto service = phosphor::software::updater::internal::getUpdateService(
+        psuInventoryPath, versionId);
+    EXPECT_EQ(toCompare, service);
+}
