diff --git a/designateclient/tests/test_v1/test_diagnostics.py b/designateclient/tests/test_v1/test_diagnostics.py
new file mode 100644
index 0000000..09487f1
--- /dev/null
+++ b/designateclient/tests/test_v1/test_diagnostics.py
@@ -0,0 +1,30 @@
+# Copyright 2015 NEC Corporation.  All rights reserved.
+#
+#    Licensed under the Apache License, Version 2.0 (the "License"); you may
+#    not use this file except in compliance with the License. You may obtain
+#    a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+#    License for the specific language governing permissions and limitations
+#    under the License.
+
+import mock
+from mock import patch
+
+from designateclient.tests import test_v1
+from designateclient.v1 import diagnostics
+
+
+class TestDiagnostics(test_v1.APIV1TestCase, test_v1.CrudMixin):
+
+    @patch.object(diagnostics.DiagnosticsController, "ping")
+    def test_ping(self, ping):
+        args = mock.MagicMock()
+        args.service = "foo"
+        args.host = "host1"
+        self.client.diagnostics.ping(args.host, args.service)
+        self.client.diagnostics.ping.assert_called_with("host1", "foo")
diff --git a/designateclient/tests/test_v1/test_sync.py b/designateclient/tests/test_v1/test_sync.py
new file mode 100644
index 0000000..88ad5d1
--- /dev/null
+++ b/designateclient/tests/test_v1/test_sync.py
@@ -0,0 +1,42 @@
+# Copyright 2015 NEC Corporation.  All rights reserved.
+#
+#    Licensed under the Apache License, Version 2.0 (the "License"); you may
+#    not use this file except in compliance with the License. You may obtain
+#    a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+#    License for the specific language governing permissions and limitations
+#    under the License.
+
+import mock
+from mock import patch
+
+from designateclient.tests import test_v1
+from designateclient.v1 import sync
+
+
+class TestSync(test_v1.APIV1TestCase, test_v1.CrudMixin):
+
+    @patch.object(sync.SyncController, "sync_all")
+    def test_sync_all(self, sync_all):
+        self.client.sync.sync_all()
+        self.client.sync.sync_all.assert_called_with()
+
+    @patch.object(sync.SyncController, "sync_domain")
+    def test_sync_domain(self, sync_domain):
+        args = mock.MagicMock()
+        args.tenant_id = "1234"
+        self.client.sync.sync_domain(args.tenant_id)
+        self.client.sync.sync_domain.assert_called_with("1234")
+
+    @patch.object(sync.SyncController, "sync_record")
+    def test_sync_record(self, sync_record):
+        args = mock.MagicMock()
+        args.tenant_id = "1234"
+        args.record_id = "uuid"
+        self.client.sync.sync_record(args.tenant_id, args.record_id)
+        self.client.sync.sync_record.assert_called_with("1234", "uuid")
diff --git a/designateclient/tests/test_v1/test_touch.py b/designateclient/tests/test_v1/test_touch.py
new file mode 100644
index 0000000..5c944b0
--- /dev/null
+++ b/designateclient/tests/test_v1/test_touch.py
@@ -0,0 +1,29 @@
+# Copyright 2015 NEC Corporation.  All rights reserved.
+#
+#    Licensed under the Apache License, Version 2.0 (the "License"); you may
+#    not use this file except in compliance with the License. You may obtain
+#    a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+#    License for the specific language governing permissions and limitations
+#    under the License.
+
+import mock
+from mock import patch
+
+from designateclient.tests import test_v1
+from designateclient.v1 import touch
+
+
+class TestTouch(test_v1.APIV1TestCase, test_v1.CrudMixin):
+
+    @patch.object(touch.TouchController, "domain")
+    def test_domain(self, domain):
+        args = mock.MagicMock()
+        args.domain_id = "1234"
+        self.client.touch.domain(args.domain_id)
+        self.client.touch.domain.assert_called_with("1234")