Add volume dependency test coverage

These tests are handy for testing the current RBD
deletion work.

Change-Id: I281f881ad565e565839522ddf02057f7545c7146
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)