public async Task Should_Scan_Directory()
        {
            var resultExpected = new DirectoriesScanResult();

            resultExpected.AddRegistryScanResult(@"D:\Teste", true, true, true);
            resultExpected.AddRegistryScanResult(@"D:\Teste\A", true, false, true);
            resultExpected.AddRegistryScanResult(@"D:\Teste\B", true, true, false);
            resultExpected.AddRegistryScanResult(@"D:\NotFound", false, false, false);

            var result = (DirectoriesScanResult)await _scan.ScanAsync();

            result.Should().BeEquivalentTo(resultExpected);
        }
        public Task <IScanResult> ScanAsync()
        {
            foreach (var directory in _directories)
            {
                if (ExisteDirectory(directory))
                {
                    _directoriesScanResult.AddRegistryScanResult(directory, true, CanReadDirectory(directory), CanWriteDirectory(directory));
                }
                else
                {
                    _directoriesScanResult.AddRegistryScanResult(directory, false, false, false);
                }
            }

            return(Task.FromResult <IScanResult>(_directoriesScanResult));
        }