public Clean ( ICleanParameters parameters ) : void | ||
parameters | ICleanParameters | |
Результат | void |
public void Clean(ICleanParameters parameters)
{
if (parameters.KeepReferences)
{
var persistentReferenceBuilders = builderEnumerator.GetAllPersistentBuilders().ToList();
var persistentBuilderPrefixes = persistentReferenceBuilders.Select(b => b.FullName + "_").ToList();
foreach (var directory in cacheDir.Value.ChildDirectories)
{
foreach (var prefix in persistentBuilderPrefixes)
{
if (!directory.StartsWith(prefix))
{
DeleteDirectory(cacheDir.Value.GetChildDirectory(directory), parameters);
break;
}
else
{
log.InfoFormat("Keeping {0} because keep-references option is active", directory);
}
}
}
if (!cacheDir.Value.ChildDirectories.Any())
DeleteDirectory(cacheDir.Value, parameters);
}
else
{
DeleteDirectory(cacheDir.Value, parameters);
}
}
public void DeletesCacheDirectory() { var be = new Mock<IBuilderEnumerator>(); be.Setup(b => b.GetAllPersistentBuilders()).Returns(new Type[0]); var parameters = new Mock<ICleanParameters>(); var predicates = new SoftCleanPredicates(); var cdir = new TestFileSystemDirectory("cache"); var cleaner = new CacheCleaner(new Lazy<IFileSystemDirectory>(() => cdir), be.Object, () => predicates); cdir.IsDeleted.Should().BeFalse(); cleaner.Clean(parameters.Object); cdir.IsDeleted.Should().BeTrue(); }