public void ResourceLoadProvider_GetResourceContents_Given_ResourceFilePathIsExist_ExpectNonEmptyResourceContents() { CustomContainer.Register(new Mock <IWarewolfPerformanceCounterLocater>().Object); var workspaceResources = new ConcurrentDictionary <Guid, List <IResource> >(); var id = GlobalConstants.ServerWorkspaceID; var filePath = "test/new/file-path"; var data = "test data message"; var dataBytes = Encoding.UTF8.GetBytes(data); var frMemoryStream = new MemoryStream(); var srMemoryStream = new MemoryStream(dataBytes); var srStreamReader = new StreamReader(srMemoryStream); var fileStreamArgs = new FileStreamArgs { FileAccess = FileAccess.Read, FileShare = FileShare.Read, FileMode = FileMode.Open, FilePath = filePath, IsAsync = true, }; var mockFileStreamFactory = new Mock <IFileStreamFactory>(); mockFileStreamFactory.Setup(o => o.New(fileStreamArgs)) .Returns(frMemoryStream); var mockStreamReaderWrapper = new Mock <IStreamReaderWrapper>(); mockStreamReaderWrapper.Setup(o => o.GetStream(It.IsAny <Stream>())) .Returns(srStreamReader); var mockStreamReaderFactory = new Mock <IStreamReaderFactory>(); mockStreamReaderFactory.Setup(o => o.New()) .Returns(mockStreamReaderWrapper.Object); var mockDev2FileWrapper = new Mock <IFile>(); mockDev2FileWrapper.Setup(o => o.Exists(filePath)) .Returns(true); var mockResource = new Mock <IResource>(); mockResource.Setup(o => o.FilePath) .Returns(filePath); var expectedResource = mockResource.Object; workspaceResources.GetOrAdd(id, (newId) => new List <IResource> { expectedResource }); var serverVersionRepository = new Mock <IServerVersionRepository>().Object; var sut = new ResourceLoadProvider(workspaceResources, serverVersionRepository, dev2FileWrapper: mockDev2FileWrapper.Object, fileStreamFactory: mockFileStreamFactory.Object, streamReaderFactory: mockStreamReaderFactory.Object); var result = sut.GetResourceContents(expectedResource); StringAssert.Contains(result.ToString(), data); }
public Stream New(FileStreamArgs fileStreamArgs) => new FileStream(fileStreamArgs.FilePath, fileStreamArgs.FileMode, fileStreamArgs.FileAccess, fileStreamArgs.FileShare, fileStreamArgs.BufferSize, fileStreamArgs.IsAsync);