diff --git a/.clang-tidy b/.clang-tidy
index 07ab870..1f35090 100644
--- a/.clang-tidy
+++ b/.clang-tidy
@@ -202,7 +202,8 @@
 cppcoreguidelines-pro-type-cstyle-cast,
 cppcoreguidelines-pro-type-static-cast-downcast,
 cppcoreguidelines-pro-type-union-access,
-cppcoreguidelines-slicing'
+cppcoreguidelines-slicing,
+cppcoreguidelines-special-member-functions'
 
 WarningsAsErrors: '*'
 HeaderFilterRegex: '.*'
diff --git a/src/activation.hpp b/src/activation.hpp
index b7f9cbc..dc708e9 100644
--- a/src/activation.hpp
+++ b/src/activation.hpp
@@ -40,6 +40,14 @@
 class ActivationBlocksTransition : public ActivationBlocksTransitionInherit
 {
   public:
+    ActivationBlocksTransition() = delete;
+    ActivationBlocksTransition(const ActivationBlocksTransition&) = delete;
+    ActivationBlocksTransition&
+        operator=(const ActivationBlocksTransition&) = delete;
+    ActivationBlocksTransition(ActivationBlocksTransition&&) = delete;
+    ActivationBlocksTransition&
+        operator=(ActivationBlocksTransition&&) = delete;
+
     /** @brief Constructs ActivationBlocksTransition.
      *
      * @param[in] bus    - The Dbus bus object
diff --git a/src/activation_listener.hpp b/src/activation_listener.hpp
index 5437232..e5de981 100644
--- a/src/activation_listener.hpp
+++ b/src/activation_listener.hpp
@@ -5,6 +5,12 @@
 class ActivationListener
 {
   public:
+    ActivationListener() = default;
+    ActivationListener(const ActivationListener&) = delete;
+    ActivationListener& operator=(const ActivationListener&) = delete;
+    ActivationListener(ActivationListener&&) = delete;
+    ActivationListener& operator=(ActivationListener&&) = delete;
+
     virtual ~ActivationListener() = default;
 
     /** @brief Notify a PSU is updated
diff --git a/src/association_interface.hpp b/src/association_interface.hpp
index 2969719..9d25b9b 100644
--- a/src/association_interface.hpp
+++ b/src/association_interface.hpp
@@ -5,6 +5,12 @@
 class AssociationInterface
 {
   public:
+    AssociationInterface() = default;
+    AssociationInterface(const AssociationInterface&) = delete;
+    AssociationInterface& operator=(const AssociationInterface&) = delete;
+    AssociationInterface(AssociationInterface&&) = delete;
+    AssociationInterface& operator=(AssociationInterface&&) = delete;
+
     virtual ~AssociationInterface() = default;
 
     /** @brief Create an active association to the
diff --git a/src/utils.hpp b/src/utils.hpp
index 2e73d87..be85494 100644
--- a/src/utils.hpp
+++ b/src/utils.hpp
@@ -108,6 +108,12 @@
 class UtilsInterface
 {
   public:
+    UtilsInterface() = default;
+    UtilsInterface(const UtilsInterface&) = delete;
+    UtilsInterface& operator=(const UtilsInterface&) = delete;
+    UtilsInterface(UtilsInterface&&) = delete;
+    UtilsInterface& operator=(UtilsInterface&&) = delete;
+
     // For now the code needs to get property for Present and Version
     using PropertyType = std::variant<std::string, bool>;
 
diff --git a/test/mocked_activation_listener.hpp b/test/mocked_activation_listener.hpp
index cb8c939..092ab86 100644
--- a/test/mocked_activation_listener.hpp
+++ b/test/mocked_activation_listener.hpp
@@ -7,6 +7,13 @@
 class MockedActivationListener : public ActivationListener
 {
   public:
+    MockedActivationListener() = default;
+    MockedActivationListener(const MockedActivationListener&) = delete;
+    MockedActivationListener&
+        operator=(const MockedActivationListener&) = delete;
+    MockedActivationListener(MockedActivationListener&&) = delete;
+    MockedActivationListener& operator=(MockedActivationListener&&) = delete;
+
     ~MockedActivationListener() override = default;
 
     MOCK_METHOD2(onUpdateDone, void(const std::string& versionId,
diff --git a/test/mocked_association_interface.hpp b/test/mocked_association_interface.hpp
index ff25861..70e6d01 100644
--- a/test/mocked_association_interface.hpp
+++ b/test/mocked_association_interface.hpp
@@ -7,6 +7,14 @@
 class MockedAssociationInterface : public AssociationInterface
 {
   public:
+    MockedAssociationInterface() = default;
+    MockedAssociationInterface(const MockedAssociationInterface&) = delete;
+    MockedAssociationInterface&
+        operator=(const MockedAssociationInterface&) = delete;
+    MockedAssociationInterface(MockedAssociationInterface&&) = delete;
+    MockedAssociationInterface&
+        operator=(MockedAssociationInterface&&) = delete;
+
     ~MockedAssociationInterface() override = default;
 
     MOCK_METHOD1(createActiveAssociation, void(const std::string& path));
diff --git a/test/mocked_utils.hpp b/test/mocked_utils.hpp
index 219e25f..ef4baa5 100644
--- a/test/mocked_utils.hpp
+++ b/test/mocked_utils.hpp
@@ -8,6 +8,12 @@
 class MockedUtils : public UtilsInterface
 {
   public:
+    MockedUtils() = default;
+    MockedUtils(const MockedUtils&) = delete;
+    MockedUtils& operator=(const MockedUtils&) = delete;
+    MockedUtils(MockedUtils&&) = delete;
+    MockedUtils& operator=(MockedUtils&&) = delete;
+
     ~MockedUtils() override = default;
 
     MOCK_CONST_METHOD1(getPSUInventoryPath,
diff --git a/test/test_activation.cpp b/test/test_activation.cpp
index 97b8ff3..f63ee11 100644
--- a/test/test_activation.cpp
+++ b/test/test_activation.cpp
@@ -22,6 +22,12 @@
     using PropertyType = utils::UtilsInterface::PropertyType;
     using Status = Activation::Status;
     using RequestedStatus = Activation::RequestedActivations;
+
+    TestActivation(const TestActivation&) = delete;
+    TestActivation& operator=(const TestActivation&) = delete;
+    TestActivation(TestActivation&&) = delete;
+    TestActivation& operator=(TestActivation&&) = delete;
+
     TestActivation() :
         mockedUtils(
             reinterpret_cast<const utils::MockedUtils&>(utils::getUtils()))
diff --git a/test/test_item_updater.cpp b/test/test_item_updater.cpp
index db1db8e..c231654 100644
--- a/test/test_item_updater.cpp
+++ b/test/test_item_updater.cpp
@@ -22,6 +22,11 @@
     using Properties = ItemUpdater::Properties;
     using PropertyType = utils::UtilsInterface::PropertyType;
 
+    TestItemUpdater(const TestItemUpdater&) = delete;
+    TestItemUpdater& operator=(const TestItemUpdater&) = delete;
+    TestItemUpdater(TestItemUpdater&&) = delete;
+    TestItemUpdater& operator=(TestItemUpdater&&) = delete;
+
     TestItemUpdater() :
         mockedUtils(
             reinterpret_cast<const utils::MockedUtils&>(utils::getUtils()))
diff --git a/test/test_version.cpp b/test/test_version.cpp
index ad3a88f..7da0352 100644
--- a/test/test_version.cpp
+++ b/test/test_version.cpp
@@ -26,6 +26,11 @@
 class TestVersion : public ::testing::Test
 {
   public:
+    TestVersion(const TestVersion&) = delete;
+    TestVersion& operator=(const TestVersion&) = delete;
+    TestVersion(TestVersion&&) = delete;
+    TestVersion& operator=(TestVersion&&) = delete;
+
     TestVersion()
     {
         auto tmpPath = fs::temp_directory_path();
