// /* ============================================================================ // Copyright 2014 Hewlett Packard // // 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. // ============================================================================ */ using System; using System.Collections.Generic; using System.IO; using System.Threading.Tasks; using OpenStack.Storage; namespace OpenStack.Test.Storage { public class TestStorageServiceClient : IStorageServiceClient { public long LargeObjectThreshold { get; set; } public int LargeObjectSegments { get; set; } public string LargeObjectSegmentContainer { get; set; } public Func, Task> CreateStorageContainerDelegate { get; set; } public Func> GetStorageContainerDelegate { get; set; } public Func DeleteContainerDelegate { get; set; } public Func UpdateStorageContainerDelegate { get; set; } public Func>> ListStorageObjectsDelegate { get; set; } public Func>> ListStorageContainersDelegate { get; set; } public Func> GetStorageAccountDelegate { get; set; } public Func, Stream, Task> CreateStorageObjectDelegate { get; set; } public Func, Stream, int, Task> CreateLargeStorageObjectDelegate { get; set; } public Func> GetStorageObjectDelegate { get; set; } public Func> DownloadStorageObjectDelegate { get; set; } public Func DeleteStorageObjectDelegate { get; set; } public Func UpdateStorageObjectDelegate { get; set; } public Func, IEnumerable, Task> CreateStaticStorageManifestDelegate { get; set; } public Func, string, Task> CreateDynamicStorageManifestDelegate { get; set; } public Func> GetStorageManifestDelegate { get; set; } public Func> GetStorageFolderDelegate { get; set; } public Func CreateStorageFolderDelegate { get; set; } public Func DeleteStorageFolderDelegate { get; set; } public Func GetPublicEndpointDelegate { get; set; } public Uri GetPublicEndpoint() { return GetPublicEndpointDelegate(); } public async Task CreateStorageContainer(string containerName, IDictionary metadata) { await CreateStorageContainerDelegate(containerName, metadata); } public async Task GetStorageContainer(string containerName) { return await GetStorageContainerDelegate(containerName); } public async Task DeleteStorageContainer(string containerName) { await DeleteContainerDelegate(containerName); } public async Task UpdateStorageContainer(StorageContainer container) { await UpdateStorageContainerDelegate(container); } public async Task> ListStorageObjects(string containerName) { return await ListStorageObjectsDelegate(containerName); } public async Task> ListStorageContainers() { return await ListStorageContainersDelegate(); } public async Task GetStorageAccount() { return await GetStorageAccountDelegate(); } public async Task CreateStorageObject(string containerName, string objectName, IDictionary metadata, Stream content) { return await CreateStorageObjectDelegate(containerName, objectName, metadata, content); } public async Task CreateLargeStorageObject(string containerName, string objectName, IDictionary metadata, Stream content, int numberOfsegments) { return await CreateLargeStorageObjectDelegate(containerName, objectName, metadata, content, numberOfsegments); } public async Task GetStorageObject(string containerName, string objectName) { return await GetStorageObjectDelegate(containerName, objectName); } public async Task DownloadStorageObject(string containerName, string objectName, Stream outputStream) { return await DownloadStorageObjectDelegate(containerName, objectName, outputStream); } public async Task DeleteStorageObject(string containerName, string objectName) { await DeleteStorageObjectDelegate(containerName, objectName); } public async Task UpdateStorageObject(StorageObject obj) { await UpdateStorageObject(obj); } public async Task CreateStorageManifest(string containerName, string manifestName, IDictionary metadata, IEnumerable objects) { return await CreateStaticStorageManifestDelegate(containerName, manifestName, metadata, objects); } public async Task CreateStorageManifest(string containerName, string manifestName, IDictionary metadata, string segmentsPath) { return await CreateDynamicStorageManifestDelegate(containerName, manifestName, metadata, segmentsPath); } public async Task GetStorageManifest(string containerName, string objectName) { return await GetStorageManifestDelegate(containerName, objectName); } public async Task GetStorageFolder(string containerName, string folderName) { return await GetStorageFolderDelegate(containerName, folderName); } public async Task CreateStorageFolder(string containerName, string folderName) { await this.CreateStorageFolderDelegate(containerName, folderName); } public async Task DeleteStorageFolder(string containerName, string folderName) { await DeleteStorageFolderDelegate(containerName, folderName); } } }