private static IStorageConnection CreateStorageConnection(byte[] storageBytes) { var logger = new LoggerConfiguration().CreateLogger(); var storageStreamProvider = StorageStreamProviderMockFactory.Create(storageBytes); return(new StorageConnection(storageStreamProvider, 4096, logger)); }
public void Update_ShouldReturnUpdatedDescriptor(int bufferSize, int fileDescriptorLength) { // Arrange var buffer = new byte[bufferSize]; var storageStreamProvider = StorageStreamProviderMockFactory.Create(buffer); var logger = new LoggerConfiguration().CreateLogger(); var storageConnection = new StorageConnection(storageStreamProvider, 4096, logger); var filesystemSerializer = new FilesystemDescriptorSerializer(logger); var expectedDescriptor = new FilesystemDescriptor(0, 0, fileDescriptorLength); var filesystemDescriptorBytes = filesystemSerializer.ToBytes(expectedDescriptor); var filesystemDescriptorCursor = new Cursor(-FilesystemDescriptor.BytesTotal, SeekOrigin.End); storageConnection.PerformWrite(filesystemDescriptorCursor, filesystemDescriptorBytes); var filesystemDescriptorAccessor = new FilesystemDescriptorAccessor(storageConnection, filesystemSerializer, logger); // Act filesystemDescriptorAccessor.Update(_ => 0, _ => 0, _ => fileDescriptorLength); // Assert var returnedDescriptorBytes = storageConnection.PerformRead(filesystemDescriptorCursor, FilesystemDescriptor.BytesTotal); var returnedDescriptor = filesystemSerializer.FromBytes(returnedDescriptorBytes); Assert.Equal(expectedDescriptor, returnedDescriptor); }
/// <summary> /// Adds FileFS data access layer dependencies with in memory stream provider. /// </summary> /// <param name="services"><see cref="IServiceCollection"/> instance.</param> /// <param name="storageBuffer">Storage buffer.</param> /// <returns>Configured <see cref="IServiceCollection"/> instance.</returns> public static IServiceCollection AddFileFsDataAccessInMemory(this IServiceCollection services, byte[] storageBuffer) { services.AddSingleton <IStorageStreamProvider>(provider => StorageStreamProviderMockFactory.Create(storageBuffer)); services.InjectCommonServices(); return(services); }