diff --git a/tests/face/ethernet.cpp b/tests/face/ethernet.cpp
index f03cb68..f2e7134 100644
--- a/tests/face/ethernet.cpp
+++ b/tests/face/ethernet.cpp
@@ -4,7 +4,7 @@
  * See COPYING for copyright and distribution information.
  */
 
-#include "face/ethernet-channel-factory.hpp"
+#include "face/ethernet-factory.hpp"
 #include <ndn-cpp-dev/security/key-chain.hpp>
 
 #include "tests/test-common.hpp"
@@ -16,9 +16,9 @@
 
 BOOST_AUTO_TEST_CASE(MulticastFacesMap)
 {
-  EthernetChannelFactory factory;
+  EthernetFactory factory;
 
-  std::vector<ethernet::Endpoint> interfaces = EthernetChannelFactory::findAllInterfaces();
+  std::vector<ethernet::Endpoint> interfaces = EthernetFactory::findAllInterfaces();
   if (interfaces.size() > 0)
     {
       shared_ptr<EthernetFace> face1;
@@ -56,9 +56,9 @@
 
 BOOST_AUTO_TEST_CASE(SendPacket)
 {
-  EthernetChannelFactory factory;
+  EthernetFactory factory;
 
-  std::vector<ethernet::Endpoint> interfaces = EthernetChannelFactory::findAllInterfaces();
+  std::vector<ethernet::Endpoint> interfaces = EthernetFactory::findAllInterfaces();
   if (interfaces.empty())
     {
       BOOST_WARN_MESSAGE(interfaces.empty(),
diff --git a/tests/face/tcp.cpp b/tests/face/tcp.cpp
index cba8796..bc65c8b 100644
--- a/tests/face/tcp.cpp
+++ b/tests/face/tcp.cpp
@@ -4,7 +4,7 @@
  * See COPYING for copyright and distribution information.
  */
 
-#include "face/tcp-channel-factory.hpp"
+#include "face/tcp-factory.hpp"
 #include "core/scheduler.hpp"
 #include <ndn-cpp-dev/security/key-chain.hpp>
 
@@ -17,7 +17,7 @@
 
 BOOST_AUTO_TEST_CASE(ChannelMap)
 {
-  TcpChannelFactory factory;
+  TcpFactory factory;
   
   shared_ptr<TcpChannel> channel1 = factory.create("127.0.0.1", "20070");
   shared_ptr<TcpChannel> channel1a = factory.create("127.0.0.1", "20070");
@@ -174,7 +174,7 @@
 
 BOOST_FIXTURE_TEST_CASE(EndToEnd, EndToEndFixture)
 {
-  TcpChannelFactory factory;
+  TcpFactory factory;
 
   EventId abortEvent =
     scheduler::schedule(time::seconds(10),
@@ -250,7 +250,7 @@
 
 BOOST_FIXTURE_TEST_CASE(MultipleAccepts, EndToEndFixture)
 {
-  TcpChannelFactory factory;
+  TcpFactory factory;
 
   EventId abortEvent =
     scheduler::schedule(time::seconds(10),
@@ -317,7 +317,7 @@
 
 BOOST_FIXTURE_TEST_CASE(FaceClosing, EndToEndFixture)
 {
-  TcpChannelFactory factory;
+  TcpFactory factory;
 
   EventId abortEvent =
     scheduler::schedule(time::seconds(10),
diff --git a/tests/face/unix-stream.cpp b/tests/face/unix-stream.cpp
index 85bac65..c7cec87 100644
--- a/tests/face/unix-stream.cpp
+++ b/tests/face/unix-stream.cpp
@@ -4,7 +4,7 @@
  * See COPYING for copyright and distribution information.
  */
 
-#include "face/unix-stream-channel-factory.hpp"
+#include "face/unix-stream-factory.hpp"
 #include "core/scheduler.hpp"
 #include <ndn-cpp-dev/security/key-chain.hpp>
 
@@ -19,7 +19,7 @@
 
 BOOST_AUTO_TEST_CASE(ChannelMap)
 {
-  UnixStreamChannelFactory factory;
+  UnixStreamFactory factory;
 
   shared_ptr<UnixStreamChannel> channel1 = factory.create("foo");
   shared_ptr<UnixStreamChannel> channel1a = factory.create("foo");
@@ -140,7 +140,7 @@
 
 BOOST_FIXTURE_TEST_CASE(EndToEnd, EndToEndFixture)
 {
-  UnixStreamChannelFactory factory;
+  UnixStreamFactory factory;
 
   EventId abortEvent =
     scheduler::schedule(time::seconds(1),
@@ -210,7 +210,7 @@
 
 BOOST_FIXTURE_TEST_CASE(MultipleAccepts, EndToEndFixture)
 {
-  UnixStreamChannelFactory factory;
+  UnixStreamFactory factory;
 
   EventId abortEvent =
     scheduler::schedule(time::seconds(1),
@@ -312,7 +312,7 @@
 
 BOOST_FIXTURE_TEST_CASE(UnixStreamFaceLocalControlHeader, EndToEndFixture)
 {
-  UnixStreamChannelFactory factory;
+  UnixStreamFactory factory;
 
   EventId abortEvent =
     scheduler::schedule(time::seconds(1),
