diff --git a/test/certs_manager_test.cpp b/test/certs_manager_test.cpp
index 7b318d7..9fd7110 100644
--- a/test/certs_manager_test.cpp
+++ b/test/certs_manager_test.cpp
@@ -114,7 +114,7 @@
     UnitsToRestart verifyUnit(unit);
     auto objPath = std::string(OBJPATH) + '/' + type + '/' + endpoint;
     Certificate certificate(bus, objPath, type, unit, installPath,
-                            certificateFile);
+                            certificateFile, false);
     EXPECT_TRUE(fs::exists(verifyPath));
 }
 
@@ -130,7 +130,7 @@
     UnitsToRestart verifyUnit(unit);
     auto objPath = std::string(OBJPATH) + '/' + type + '/' + endpoint;
     Certificate certificate(bus, objPath, type, unit, installPath,
-                            certificateFile);
+                            certificateFile, false);
     EXPECT_TRUE(fs::exists(verifyPath));
 }
 
@@ -146,7 +146,7 @@
     UnitsToRestart verifyUnit(unit);
     auto objPath = std::string(OBJPATH) + '/' + type + '/' + endpoint;
     Certificate certificate(bus, objPath, type, unit, installPath,
-                            certificateFile);
+                            certificateFile, false);
     EXPECT_TRUE(fs::exists(verifyPath));
 }
 
@@ -162,7 +162,7 @@
     UnitsToRestart verifyUnit(unit);
     auto objPath = std::string(OBJPATH) + '/' + type + '/' + endpoint;
     Certificate certificate(bus, objPath, type, unit, installPath,
-                            certificateFile);
+                            certificateFile, false);
     EXPECT_TRUE(fs::exists(verifyPath));
     EXPECT_TRUE(compareFiles(verifyPath, certificateFile));
 }
@@ -184,7 +184,7 @@
             try
             {
                 Certificate certificate(bus, objPath, type, unit, installPath,
-                                        uploadFile);
+                                        uploadFile, false);
             }
             catch (const InternalFailure& e)
             {
@@ -215,7 +215,7 @@
             try
             {
                 Certificate certificate(bus, objPath, type, unit, installPath,
-                                        emptyFile);
+                                        emptyFile, false);
             }
             catch (const InvalidCertificate& e)
             {
@@ -251,7 +251,7 @@
             try
             {
                 Certificate certificate(bus, objPath, type, unit, installPath,
-                                        certificateFile);
+                                        certificateFile, false);
             }
             catch (const InvalidCertificate& e)
             {
@@ -361,7 +361,7 @@
             try
             {
                 Certificate certificate(bus, objPath, type, unit, installPath,
-                                        certificateFile);
+                                        certificateFile, false);
             }
             catch (const InvalidCertificate& e)
             {
@@ -389,7 +389,7 @@
             try
             {
                 Certificate certificate(bus, objPath, type, unit, installPath,
-                                        keyFile);
+                                        keyFile, false);
             }
             catch (const InvalidCertificate& e)
             {
