/// <summary> /// <see cref="IImagesService{ImageContentType}.GetImages(string)"/> /// </summary> public IEnumerable <Image <ImageContentType> > GetImages(string pathToDirectory) { var rootDirectory = _subdirectoriesPathProvider.ContainsSubFolders(pathToDirectory) ? (Directory <ImageContentType>) CompositiveDirectory <ImageContentType> .New(_imageContentProvider, _fileNameProvider, pathToDirectory) : SimpleDirectory <ImageContentType> .New(_imageContentProvider, _fileNameProvider, pathToDirectory); BuildDirectoriesTree(rootDirectory); return(rootDirectory.GetImages(_imageContentProvider.GetSupportedImageFormats())); }
public void Constructor_Throws_WhenPathIsNull() { //arrange var imageContentProvider = new Mock <IImageContentProvider <string> >(); var fileNameProvider = new Mock <IFileNameProvider>(); //act var sut = new CompositiveDirectory <string>(imageContentProvider.Object, fileNameProvider.Object, null); }
public void Constructor_Throws_WhenFileNameProviderIsNull() { //arrange var imageContentProvider = new Mock <IImageContentProvider <string> >(); var path = string.Empty; //act var sut = new CompositiveDirectory <string>(imageContentProvider.Object, null, path); }
public void Construct_NoExceptions_WhenAllIsOk() { //arrange var imageContentProvider = new Mock <IImageContentProvider <string> >(); var fileNameProvider = new Mock <IFileNameProvider>(); var path = string.Empty; //act var sut = new CompositiveDirectory <string>(imageContentProvider.Object, fileNameProvider.Object, path); }
public void AddSubdirectory_Throws_WhenSubDirectoryIsNull() { //arrange CompositiveDirectory <string> subDirectory = null; //act var sut = MockedItemsFactory.ProvideDefaultDirectory((x, y, z) => new CompositiveDirectory <string>(x, y, z)); sut.AddSubdirectory(subDirectory); }
private void BuildDirectoriesTree(Directory <ImageContentType> directory) { IEnumerable <Directory <ImageContentType> > subDirectories = _subdirectoriesPathProvider.GetSubDirectoriesPath(directory.Path)?.Select(x => _subdirectoriesPathProvider.ContainsSubFolders(x) ? (Directory <ImageContentType>)CompositiveDirectory <ImageContentType> .New(_imageContentProvider, _fileNameProvider, x) : SimpleDirectory <ImageContentType> .New(_imageContentProvider, _fileNameProvider, x) ); if (subDirectories != null) { var root = directory as CompositiveDirectory <ImageContentType> ?? throw new InvalidOperationException($"Simple directory cannot contain sub folders; Path to directory {directory.Path}"); ((CompositiveDirectory <ImageContentType>)directory).AddRangeOfSubdirectories(subDirectories); foreach (var subDirectory in subDirectories) { BuildDirectoriesTree(subDirectory); } } }