diff --git a/cinder_tempest_plugin/api/volume/test_volume_dependency.py b/cinder_tempest_plugin/api/volume/test_volume_dependency.py
index 96a3c83..b204e84 100644
--- a/cinder_tempest_plugin/api/volume/test_volume_dependency.py
+++ b/cinder_tempest_plugin/api/volume/test_volume_dependency.py
@@ -63,3 +63,59 @@
             snapshot_source_volume['id'])
         self.volumes_client.delete_volume(source_volume['id'])
         self.volumes_client.wait_for_resource_deletion(source_volume['id'])
+
+    def _delete_vol_and_wait(self, vol_id):
+        self.volumes_client.delete_volume(vol_id)
+
+        self.volumes_client.wait_for_resource_deletion(vol_id)
+
+    def _delete_snap_and_wait(self, snap_id):
+        self.snapshots_client.delete_snapshot(snap_id)
+
+        self.snapshots_client.wait_for_resource_deletion(snap_id)
+
+    @decorators.idempotent_id('f8278e5c-50ff-4a1d-8670-3ca0866d411a')
+    def test_delete_dep_chain(self):
+        """Test a complex chain of volume and snapshot dependency deletion."""
+        volume_1 = self.create_volume()['id']
+        snapshot_of_vol_1 = self.create_snapshot(volume_1)['id']
+
+        volume_2_args = {'snapshot_id': snapshot_of_vol_1}
+        volume_2 = self.create_volume(**volume_2_args)['id']
+
+        snapshot_of_vol_2 = self.create_snapshot(volume_2)['id']
+
+        volume_3_args = {'snapshot_id': snapshot_of_vol_2}
+        volume_3 = self.create_volume(**volume_3_args)['id']
+
+        volume_4_args = {'source_volid': volume_3}
+        volume_4 = self.create_volume(**volume_4_args)['id']
+
+        self._delete_snap_and_wait(snapshot_of_vol_1)
+        self._delete_snap_and_wait(snapshot_of_vol_2)
+
+        self._delete_vol_and_wait(volume_3)
+        self._delete_vol_and_wait(volume_1)
+        self._delete_vol_and_wait(volume_2)
+        self._delete_vol_and_wait(volume_4)
+
+    @decorators.idempotent_id('63447ef8-e667-4796-ba66-1b9b883af1f1')
+    def test_delete_dep_chain_2(self):
+        """Test a different chain of volume/snapshot dependency deletion."""
+        volume_1 = self.create_volume()['id']
+        snapshot_of_vol_1 = self.create_snapshot(volume_1)['id']
+
+        volume_2_args = {'snapshot_id': snapshot_of_vol_1}
+        volume_2 = self.create_volume(**volume_2_args)['id']
+
+        snapshot_of_vol_2 = self.create_snapshot(volume_2)['id']
+
+        volume_3_args = {'snapshot_id': snapshot_of_vol_2}
+        volume_3 = self.create_volume(**volume_3_args)['id']
+
+        self._delete_snap_and_wait(snapshot_of_vol_1)
+        self._delete_snap_and_wait(snapshot_of_vol_2)
+
+        self._delete_vol_and_wait(volume_1)
+        self._delete_vol_and_wait(volume_2)
+        self._delete_vol_and_wait(volume_3)
