Ejemplo n.º 1
0
        /// <summary>
        /// Storages the eval.
        /// </summary>
        /// <param name="validations">The validations.</param>
        /// <param name="progressReporter">The progress reporter.</param>
        /// <param name="cmdlet">The cmdlet.</param>
        /// <param name="outputWriters">The output writers.</param>
        /// <returns>INamespaceInfo.</returns>
        private INamespaceInfo StorageEval(IList <INamespaceValidation> validations, IProgressReporter progressReporter, ICmdlet cmdlet, IList <IOutputWriter> outputWriters)
        {
            IDirectoryInfo root = new AfsDirectoryInfo(Path);

            NamespaceValidationsProcessor validationsProcessor = new NamespaceValidationsProcessor(validations, outputWriters, progressReporter);

            List <INamespaceEnumeratorListener> namespaceEnumeratorListeners = new List <INamespaceEnumeratorListener>
            {
                validationsProcessor,
            };

            NamespaceEnumerator namespaceEnumerator = new NamespaceEnumerator(namespaceEnumeratorListeners);

            var namespaceInfo = namespaceEnumerator.Run(root);

            return(namespaceInfo);
        }
        private INamespaceInfo StorageEval(IList <INamespaceValidation> validations, IProgressReporter progressReporter, ICmdlet cmdlet, TextSummaryOutputWriter summaryWriter, PsObjectsOutputWriter psObjectsWriter)
        {
            IDirectoryInfo root = new AfsDirectoryInfo(this.Path);

            var outputWriters = new List <IOutputWriter>
            {
                psObjectsWriter,
                summaryWriter
            };

            NamespaceValidationsProcessor validationsProcessor = new NamespaceValidationsProcessor(validations, outputWriters, progressReporter);

            List <INamespaceEnumeratorListener> namespaceEnumeratorListeners = new List <INamespaceEnumeratorListener>
            {
                validationsProcessor,
            };

            NamespaceEnumerator namespaceEnumerator = new NamespaceEnumerator(namespaceEnumeratorListeners);

            var namespaceInfo = namespaceEnumerator.Run(root);

            return(namespaceInfo);
        }
        public void EnumerationTotals()
        {
            var           nsEnumerator              = new NamespaceEnumerator();
            int           depth                     = 3;
            int           numberOfSubdirs           = 5;
            int           numberOfFilesPerDirectory = 3;
            int           totalBytes                = 1024 * 1024;
            NamespaceInfo nsInfo                    = nsEnumerator.Run(MockFactory.DirectoryWithGivenParameters(
                                                                           root: "c:",
                                                                           depth: depth,
                                                                           numberOfDirectories: numberOfSubdirs,
                                                                           numberOfFilesPerDirectory: numberOfFilesPerDirectory,
                                                                           totalSize: totalBytes));

            Assert.True(nsInfo != null, "namespace information was returned");
            Assert.True(nsInfo.IsComplete, "namespace scan is complete");

            int totalDirs  = ((int)Math.Pow(numberOfSubdirs, depth + 1) - 1) / (numberOfSubdirs - 1);
            int totalFiles = totalDirs * numberOfFilesPerDirectory;

            Assert.True(nsInfo.NumberOfDirectories == totalDirs, "number of directories is as expected");
            Assert.True(nsInfo.NumberOfFiles == totalFiles, "number of files is as expected");
            Assert.True(nsInfo.TotalFileSizeInBytes == totalBytes, "size is as expected");
        }