diff --git a/tests/test_kolla_docker.py b/tests/test_kolla_docker.py
index 8acba9a38dae9634d2aa07cc6bf03946f9168f29..583fe07d3baae4e7d61c4fd44ee624628ab0b720 100644
--- a/tests/test_kolla_docker.py
+++ b/tests/test_kolla_docker.py
@@ -147,6 +147,18 @@ FAKE_DATA = {
          'Names': '/my_container'}
     ],
 
+    'container_inspect': {
+        'Config': {
+            'Env': ['KOLLA_BASE_DISTRO=ubuntu',
+                    'KOLLA_INSTALL_TYPE=binary',
+                    'KOLLA_INSTALL_METATYPE=rdo'],
+            'Hostname': 'node2',
+            'Volumes': {'/var/lib/kolla/config_files/': {}}},
+        'Mounts': {},
+        'NetworkSettings': {},
+        'State': {}
+    }
+
 }
 
 
@@ -238,4 +250,51 @@ class TestContainer(base.BaseTestCase):
         self.dw.start_container()
         self.assertTrue(self.dw.changed)
         self.dw.dc.start.assert_called_once_with(
-            container=self.fake_data["params"].get('name'))
+            container=self.fake_data['params'].get('name'))
+
+    def test_stop_container(self):
+        self.dw = get_DockerWorker({'name': 'my_container',
+                                    'action': 'stop_container'})
+        self.dw.dc.containers.return_value = self.fake_data['containers']
+        self.dw.stop_container()
+
+        self.assertTrue(self.dw.changed)
+        self.dw.dc.containers.assert_called_once_with(all=True)
+        self.dw.dc.stop.assert_called_once_with('my_container')
+
+    def test_stop_container_not_exists(self):
+        self.dw = get_DockerWorker({'name': 'fake_container',
+                                    'action': 'stop_container'})
+        self.dw.dc.containers.return_value = self.fake_data['containers']
+        self.dw.stop_container()
+
+        self.assertFalse(self.dw.changed)
+        self.dw.dc.containers.assert_called_once_with(all=True)
+        self.dw.module.fail_json.assert_called_once_with(
+            msg="No such container: fake_container to stop")
+
+    def test_restart_container(self):
+        self.dw = get_DockerWorker({'name': 'my_container',
+                                    'action': 'restart_container'})
+        self.dw.dc.containers.return_value = self.fake_data['containers']
+        self.fake_data['container_inspect'].update(
+            self.fake_data['containers'][0])
+        self.dw.dc.inspect_container.return_value = (
+            self.fake_data['container_inspect'])
+        self.dw.restart_container()
+
+        self.assertTrue(self.dw.changed)
+        self.dw.dc.containers.assert_called_once_with(all=True)
+        self.dw.dc.inspect_container.assert_called_once_with('my_container')
+        self.dw.dc.restart.assert_called_once_with('my_container')
+
+    def test_restart_container_not_exists(self):
+        self.dw = get_DockerWorker({'name': 'fake-container',
+                                    'action': 'restart_container'})
+        self.dw.dc.containers.return_value = self.fake_data['containers']
+        self.dw.restart_container()
+
+        self.assertFalse(self.dw.changed)
+        self.dw.dc.containers.assert_called_once_with(all=True)
+        self.dw.module.fail_json.assert_called_once_with(
+            msg="No such container: fake-container")