'Setup a test case environment.
Creates fake volume and snapshot objects and sets up the required
API responses.'

def setUp(self):

    super(TestCreateVolumeFromSnapShot, self).setUp()
    ctx = context.RequestContext('fake', 'fake', auth_token=True)
    self.snapshot = fake_snapshot.fake_snapshot_obj(ctx)
    self.snapshot_name_2x_enc = urllib.parse.quote(urllib.parse.quote(self.driver._id_to_base64(self.snapshot.id)))
    self.volume = fake_volume.fake_volume_obj(ctx)
    self.volume_name_2x_enc = urllib.parse.quote(urllib.parse.quote(self.driver._id_to_base64(self.volume.id)))
    self.snapshot_reply = json.dumps({'volumeIdList': [self.volume.id], 'snapshotGroupId': 'snap_group'})
    self.HTTPS_MOCK_RESPONSES = {self.RESPONSE_MODE.Valid: {('types/Volume/instances/getByName::' + self.snapshot_name_2x_enc): self.snapshot.id, 'instances/System/action/snapshotVolumes': self.snapshot_reply}, self.RESPONSE_MODE.BadStatus: {'instances/System/action/snapshotVolumes': self.BAD_STATUS_RESPONSE, ('types/Volume/instances/getByName::' + self.snapshot_name_2x_enc): self.BAD_STATUS_RESPONSE}, self.RESPONSE_MODE.Invalid: {'instances/System/action/snapshotVolumes': mocks.MockHTTPSResponse({'errorCode': self.OLD_VOLUME_NOT_FOUND_ERROR, 'message': 'BadStatus    Volume    Test'}, 400), ('types/Volume/instances/getByName::' + self.snapshot_name_2x_enc): None}}
