コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }