text: #   Copyright 2013 Nebula Inc.
  #
  #   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 cinderclient.v1 import volume_snapshots
  from cinderclient.v1 import volumes
  
  from openstackclient.common import exceptions
  from openstackclient.common import utils
  from openstackclient.tests import utils as test_utils
  from openstackclient.volume import client  # noqa
  
  
  ID = '1after909'
  NAME = 'PhilSpector'
  
  
  class TestFindResourceVolumes(test_utils.TestCase):
  
      def setUp(self):
          super(TestFindResourceVolumes, self).setUp()
          api = mock.Mock()
          api.client = mock.Mock()
          api.client.get = mock.Mock()
          resp = mock.Mock()
          body = {"volumes": [{"id": ID, 'display_name': NAME}]}
          api.client.get.side_effect = [Exception("Not found"), (resp, body)]
          self.manager = volumes.VolumeManager(api)
  
      def test_find(self):
          result = utils.find_resource(self.manager, NAME)
          self.assertEqual(ID, result.id)
          self.assertEqual(NAME, result.display_name)
  
      def test_not_find(self):
          self.assertRaises(exceptions.CommandError, utils.find_resource,
                            self.manager, 'GeorgeMartin')
  
  
  class TestFindResourceVolumeSnapshots(test_utils.TestCase):
  
      def setUp(self):
          super(TestFindResourceVolumeSnapshots, self).setUp()
          api = mock.Mock()
          api.client = mock.Mock()
          api.client.get = mock.Mock()
          resp = mock.Mock()
          body = {"snapshots": [{"id": ID, 'display_name': NAME}]}
          api.client.get.side_effect = [Exception("Not found"), (resp, body)]
          self.manager = volume_snapshots.SnapshotManager(api)
  
      def test_find(self):
          result = utils.find_resource(self.manager, NAME)
          self.assertEqual(ID, result.id)
          self.assertEqual(NAME, result.display_name)
  
      def test_not_find(self):
          self.assertRaises(exceptions.CommandError, utils.find_resource,
                            self.manager, 'GeorgeMartin')
  