public async void GetAllAsync_ShouldOpenFileAndReadFromIt_ForeachFilePathInImportedLibraries() { var fileServiceMock = new Mock <IFileService>(); var settingsProviderMock = new Mock <ISettingsProviderService>(); var libraryFileServiceMock = new Mock <ILibraryFileService>(); var settings = new Settings() { ImportedLibraries = new List <string>() { "Tests\\path1.plib", "Tests\\path2.plib", "Tests\\path3.plib" } }; settingsProviderMock.Setup(x => x.Settings) .Returns(settings); int openFileCallCounter = 0; int readLibraryCallCounter = 0; fileServiceMock.Setup(x => x.OpenFile(It.IsAny <string>(), It.IsAny <FileMode>(), It.IsAny <FileAccess>(), It.IsAny <FileShare>())) .Callback(() => { openFileCallCounter++; }); libraryFileServiceMock.Setup(x => x.ReadLibraryFromStreamAsync(It.IsAny <Stream>(), It.IsAny <Origin>())) .Callback(() => { readLibraryCallCounter++; }); var repository = new LocalLibraryRepositoryStrategy(fileServiceMock.Object, settingsProviderMock.Object, libraryFileServiceMock.Object); var libraries = await repository.GetAllAsync(); Assert.True(openFileCallCounter == settings.ImportedLibraries.Count && readLibraryCallCounter == settings.ImportedLibraries.Count); }
public async void GetAllAsync_ShouldReturnListOfLibraries_WithAsManyElementsAsImportedLibrariesList() { var fileServiceMock = new Mock <IFileService>(); var settingsProviderMock = new Mock <ISettingsProviderService>(); var libraryFileServiceMock = new Mock <ILibraryFileService>(); var settings = new Settings() { ImportedLibraries = new List <string>() { "Tests\\path1.plib", "Tests\\path2.plib", "Tests\\path3.plib" } }; settingsProviderMock.Setup(x => x.Settings) .Returns(settings); libraryFileServiceMock.Setup(x => x.ReadLibraryFromStreamAsync(It.IsAny <Stream>(), It.IsAny <Origin>())) .Returns(Task.FromResult(GetLibrary())); var repository = new LocalLibraryRepositoryStrategy(fileServiceMock.Object, settingsProviderMock.Object, libraryFileServiceMock.Object); var libraries = await repository.GetAllAsync(); Assert.True(libraries.ToList().Count == settings.ImportedLibraries.Count); }
public async void GetAllAsync_ShouldReturnEmptyList_WhenImportedLibrariesListIsNull() { var fileServiceMock = new Mock <IFileService>(); var settingsProviderMock = new Mock <ISettingsProviderService>(); var libraryFileServiceMock = new Mock <ILibraryFileService>(); var settings = new Settings() { ImportedLibraries = null }; settingsProviderMock.Setup(x => x.Settings) .Returns(settings); var repository = new LocalLibraryRepositoryStrategy(fileServiceMock.Object, settingsProviderMock.Object, libraryFileServiceMock.Object); var libraries = await repository.GetAllAsync(); Assert.Empty(libraries); }