diff --git a/tests/unit/access-manager.t.cpp b/tests/unit/access-manager.t.cpp
index dbbae40..f8b110b 100644
--- a/tests/unit/access-manager.t.cpp
+++ b/tests/unit/access-manager.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2022, Regents of the University of California
+ * Copyright (c) 2014-2023, Regents of the University of California
  *
  * NAC library is free software: you can redistribute it and/or modify it under the
  * terms of the GNU Lesser General Public License as published by the Free Software
@@ -26,9 +26,7 @@
 #include <ndn-cxx/util/dummy-client-face.hpp>
 #include <ndn-cxx/util/string-helper.hpp>
 
-namespace ndn {
-namespace nac {
-namespace tests {
+namespace ndn::nac::tests {
 
 class AccessManagerFixture : public IoKeyChainFixture
 {
@@ -50,7 +48,7 @@
   }
 
 public:
-  util::DummyClientFace face;
+  DummyClientFace face;
   Identity accessIdentity;
   Identity nacIdentity;
   std::vector<Identity> userIdentities;
@@ -135,6 +133,4 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
-} // namespace tests
-} // namespace nac
-} // namespace ndn
+} // namespace ndn::nac::tests
diff --git a/tests/unit/decryptor.t.cpp b/tests/unit/decryptor.t.cpp
index 7b79855..6cb52f6 100644
--- a/tests/unit/decryptor.t.cpp
+++ b/tests/unit/decryptor.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2022, Regents of the University of California
+ * Copyright (c) 2014-2023, Regents of the University of California
  *
  * NAC library is free software: you can redistribute it and/or modify it under the
  * terms of the GNU Lesser General Public License as published by the Free Software
@@ -31,9 +31,7 @@
 #include <ndn-cxx/security/validator-null.hpp>
 #include <ndn-cxx/util/dummy-client-face.hpp>
 
-namespace ndn {
-namespace nac {
-namespace tests {
+namespace ndn::nac::tests {
 
 class DecryptorStaticDataEnvironment : public IoKeyChainFixture
 {
@@ -65,7 +63,7 @@
   }
 
 protected:
-  util::DummyClientFace m_imsFace{m_io, m_keyChain, {false, true}};
+  DummyClientFace m_imsFace{m_io, m_keyChain, {false, true}};
 
 private:
   InMemoryStoragePersistent m_ims;
@@ -84,7 +82,7 @@
   }
 
 public:
-  util::DummyClientFace face;
+  DummyClientFace face;
   security::ValidatorNull validator;
   Decryptor decryptor;
 };
@@ -130,6 +128,4 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
-} // namespace tests
-} // namespace nac
-} // namespace ndn
+} // namespace ndn::nac::tests
diff --git a/tests/unit/encrypted-content.t.cpp b/tests/unit/encrypted-content.t.cpp
index 71ebbb1..9c1f631 100644
--- a/tests/unit/encrypted-content.t.cpp
+++ b/tests/unit/encrypted-content.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2020, Regents of the University of California
+ * Copyright (c) 2014-2023, Regents of the University of California
  *
  * This file is part of NAC (Name-Based Access Control for NDN).
  * See AUTHORS.md for complete list of NAC authors and contributors.
@@ -21,9 +21,7 @@
 
 #include "tests/boost-test.hpp"
 
-namespace ndn {
-namespace nac {
-namespace tests {
+namespace ndn::nac::tests {
 
 class EncryptedContentFixture
 {
@@ -158,6 +156,4 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
-} // namespace tests
-} // namespace nac
-} // namespace ndn
+} // namespace ndn::nac::tests
diff --git a/tests/unit/encryptor.t.cpp b/tests/unit/encryptor.t.cpp
index ebfb89c..4a2e0a9 100644
--- a/tests/unit/encryptor.t.cpp
+++ b/tests/unit/encryptor.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2022, Regents of the University of California
+ * Copyright (c) 2014-2023, Regents of the University of California
  *
  * NAC library is free software: you can redistribute it and/or modify it under the
  * terms of the GNU Lesser General Public License as published by the Free Software
@@ -30,9 +30,7 @@
 
 #include <iostream>
 
-namespace ndn {
-namespace nac {
-namespace tests {
+namespace ndn::nac::tests {
 
 class EncryptorStaticDataEnvironment : public IoKeyChainFixture
 {
@@ -67,7 +65,7 @@
   }
 
 protected:
-  util::DummyClientFace m_imsFace{m_io, m_keyChain, {true, true}};
+  DummyClientFace m_imsFace{m_io, m_keyChain, {true, true}};
 
 private:
   InMemoryStoragePersistent m_ims;
@@ -91,10 +89,10 @@
   }
 
 public:
-  util::DummyClientFace face;
+  DummyClientFace face;
   security::ValidatorNull validator;
   Encryptor encryptor;
-  util::Signal<EncryptorFixture, ErrorCode, std::string> onFailure;
+  signal::Signal<EncryptorFixture, ErrorCode, std::string> onFailure;
 };
 
 BOOST_FIXTURE_TEST_SUITE(TestEncryptor, EncryptorFixture<>)
@@ -227,6 +225,4 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
-} // namespace tests
-} // namespace nac
-} // namespace ndn
+} // namespace ndn::nac::tests
diff --git a/tests/unit/static-data.hpp b/tests/unit/static-data.hpp
index 0df6540..7bee43d 100644
--- a/tests/unit/static-data.hpp
+++ b/tests/unit/static-data.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2020, Regents of the University of California
+ * Copyright (c) 2014-2023, Regents of the University of California
  *
  * NAC library is free software: you can redistribute it and/or modify it under the
  * terms of the GNU Lesser General Public License as published by the Free Software
@@ -22,9 +22,7 @@
 
 #include "common.hpp"
 
-namespace ndn {
-namespace nac {
-namespace tests {
+namespace ndn::nac::tests {
 
 struct StaticData
 {
@@ -53,8 +51,6 @@
   };
 };
 
-} // namespace tests
-} // namespace nac
-} // namespace ndn
+} // namespace ndn::nac::tests
 
 #endif // NAC_TESTS_UNIT_STATIC_DATA_HPP
