diff --git a/src/access_api_handler_unittest.cc b/src/access_api_handler_unittest.cc
index 3c22eaa..cec680c 100644
--- a/src/access_api_handler_unittest.cc
+++ b/src/access_api_handler_unittest.cc
@@ -9,9 +9,10 @@
 #include <weave/test/mock_device.h>
 #include <weave/test/unittest_utils.h>
 
-#include "src/component_manager_impl.h"
 #include "src/access_black_list_manager.h"
+#include "src/component_manager_impl.h"
 #include "src/data_encoding.h"
+#include "src/test/mock_black_list_manager.h"
 
 using testing::_;
 using testing::AnyOf;
@@ -22,26 +23,6 @@
 
 namespace weave {
 
-class MockAccessBlackListManager : public AccessBlackListManager {
- public:
-  MOCK_METHOD1(AddEntryAddedCallback, void(const base::Closure&));
-  MOCK_METHOD4(Block,
-               void(const std::vector<uint8_t>&,
-                    const std::vector<uint8_t>&,
-                    const base::Time&,
-                    const DoneCallback&));
-  MOCK_METHOD3(Unblock,
-               void(const std::vector<uint8_t>&,
-                    const std::vector<uint8_t>&,
-                    const DoneCallback&));
-  MOCK_CONST_METHOD2(IsBlocked,
-                     bool(const std::vector<uint8_t>&,
-                          const std::vector<uint8_t>&));
-  MOCK_CONST_METHOD0(GetEntries, std::vector<Entry>());
-  MOCK_CONST_METHOD0(GetSize, size_t());
-  MOCK_CONST_METHOD0(GetCapacity, size_t());
-};
-
 class AccessApiHandlerTest : public ::testing::Test {
  protected:
   void SetUp() override {
@@ -104,7 +85,7 @@
   StrictMock<provider::test::FakeTaskRunner> task_runner_;
   ComponentManagerImpl component_manager_{&task_runner_};
   StrictMock<test::MockDevice> device_;
-  StrictMock<MockAccessBlackListManager> access_manager_;
+  StrictMock<test::MockAccessBlackListManager> access_manager_;
   std::unique_ptr<AccessApiHandler> handler_;
 };
 
diff --git a/src/test/mock_black_list_manager.h b/src/test/mock_black_list_manager.h
new file mode 100644
index 0000000..f028953
--- /dev/null
+++ b/src/test/mock_black_list_manager.h
@@ -0,0 +1,40 @@
+// Copyright 2016 The Weave Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef LIBWEAVE_SRC_MOCK_BLACK_LIST_MANAGER_H_
+#define LIBWEAVE_SRC_MOCK_BLACK_LIST_MANAGER_H_
+
+#include <gmock/gmock.h>
+
+#include "src/access_black_list_manager.h"
+
+namespace weave {
+
+namespace test {
+
+class MockAccessBlackListManager : public AccessBlackListManager {
+ public:
+  MOCK_METHOD1(AddEntryAddedCallback, void(const base::Closure&));
+  MOCK_METHOD4(Block,
+               void(const std::vector<uint8_t>&,
+                    const std::vector<uint8_t>&,
+                    const base::Time&,
+                    const DoneCallback&));
+  MOCK_METHOD3(Unblock,
+               void(const std::vector<uint8_t>&,
+                    const std::vector<uint8_t>&,
+                    const DoneCallback&));
+  MOCK_CONST_METHOD2(IsBlocked,
+                     bool(const std::vector<uint8_t>&,
+                          const std::vector<uint8_t>&));
+  MOCK_CONST_METHOD0(GetEntries, std::vector<Entry>());
+  MOCK_CONST_METHOD0(GetSize, size_t());
+  MOCK_CONST_METHOD0(GetCapacity, size_t());
+};
+
+}  // namespace test
+
+}  // namespace weave
+
+#endif  // LIBWEAVE_SRC_MOCK_BLACK_LIST_MANAGER_H_
