public S3ObjectStoreTest() { _mockS3Client = new Mock <IAmazonS3>(); _settings = new S3ObjectStoreSettings { BucketName = "mybucket", KeyPrefix = "keyprefix" }; _mockKeyConverter = new Mock <IKeyConverter <int> >(); _store = new S3ObjectStore <TestObject, int>(_mockS3Client.Object, _settings, _mockKeyConverter.Object); _mockKeyConverter.Setup(x => x.ToString(It.IsAny <int>())).Returns <int>(x => x.ToString()); _mockKeyConverter.Setup(x => x.FromString(It.IsAny <string>())).Returns <string>(x => int.Parse(x)); }
public static IServiceCollection AddS3ObjectStores(this IServiceCollection services, S3Settings settings) { services.AddSingleton <GuidKeyConverter>(_ => new GuidKeyConverter()); services.AddSingleton <StringKeyConverter>(_ => new StringKeyConverter()); services.AddSingleton <IAmazonS3>( _ => S3ClientFactory.CreateClient(settings.Key, settings.Secret, settings.Url)); services.AddSingleton <IS3ObjectStore <Message, Guid> >( provider => { var s3Client = provider.GetService <IAmazonS3>(); var keyConverter = provider.GetService <GuidKeyConverter>(); var storeSettings = new S3ObjectStoreSettings { BucketName = settings.BucketName, KeyPrefix = nameof(Message) }; return(new S3ObjectStore <Message, Guid>(s3Client, storeSettings, keyConverter)); }); services.AddSingleton <IS3ObjectStore <MessageStatusContainer, string> >( provider => { var s3Client = provider.GetService <IAmazonS3>(); var keyConverter = provider.GetService <StringKeyConverter>(); var storeSettings = new S3ObjectStoreSettings { BucketName = settings.BucketName, KeyPrefix = nameof(MessageStatusContainer) }; return(new S3ObjectStore <MessageStatusContainer, string>(s3Client, storeSettings, keyConverter)); }); return(services); }