public void DoesNotResolveQualifiedPathNotInRoot() { var builder = new StorageHierarchiesBuilder(new StubFileSystemApi()); var root = builder.CreateNode(@"C:\Root", FileSystemCasing.CasePreservingInsensitive); builder.AddNamedRoot("SimpleRoot", root); var storage = builder.BuildHierarchies(); Assert.That(storage.TryResolveQualifiedPath(@"C:\Outside\some\filepath.txt", out _), Is.False); }
public void DoesNotResolveQualifiedPathInRoot_UnderGraftPoint() { var builder = new StorageHierarchiesBuilder(new StubFileSystemApi()); var root = builder.CreateNode(@"C:\Root", FileSystemCasing.CasePreservingInsensitive); builder.AddNamedRoot("Root", root); builder.AddGraftPoint(root, "Graft", builder.CreateNode(@"C:\Other", FileSystemCasing.CasePreservingInsensitive)); var storage = builder.BuildHierarchies(); Assert.That(storage.TryResolveQualifiedPath(@"C:\root\Graft\some\filepath.txt", out _), Is.False); }
private static void ValidateStorageConfiguration(XElement storageElement) { var element = new TestConfigurationProvider <StorageElementCollection>() .GetAsElement(CreateDummyElementFromInnerXml(storageElement)); var builder = new StorageHierarchiesBuilder(new StubFileSystemApi(FileSystemCasing.CasePreservingInsensitive)); var reader = new StorageConfigurationReader(); reader.Read(element, builder); builder.BuildHierarchies(); Assert.That(reader.Errors, Is.Empty); Assert.That(builder.Errors, Is.Empty); }
public void RoundtripsQualifiedPathInRootWithNoGrafts() { var builder = new StorageHierarchiesBuilder(new StubFileSystemApi()); var root = builder.CreateNode(@"C:\Root", FileSystemCasing.CasePreservingInsensitive); builder.AddNamedRoot("SimpleRoot", root); var storage = builder.BuildHierarchies(); Assert.That(storage.TryResolveQualifiedPath(@"C:\root\some\filepath.txt", out var qualifiedPath), Is.True); Assert.That(qualifiedPath, Is.EqualTo(new QualifiedPath(root, RelativePath.CreateFromSegments("some", "filepath.txt"))) .Using(default(QualifiedPath.DefaultEqualityComparer))); Assert.That(storage.ResolveToFile(qualifiedPath)?.FullName, Is.EqualTo(@"C:\Root\some\filepath.txt")); }
public void DoesNotMapExcludedPath() { var builder = new StorageHierarchiesBuilder(new StubFileSystemApi()); var root = builder.CreateNode(@"C:\Root", FileSystemCasing.CasePreservingInsensitive); builder.AddNamedRoot("Root", root); var regex = new GlobToRegexCompiler().CompileRegex("**/.caber/**", FileSystemCasing.CaseSensitive); builder.AddFilter(root, new RelativePathMatcher(regex, FilterRule.Exclude)); var storage = builder.BuildHierarchies(); var qualifiedPath = new QualifiedPath(root, RelativePath.CreateFromSegments(".caber", "tempfile")); Assert.That(storage.MapToAbstractPath(qualifiedPath), Is.Null); }
public void RoundtripsAbstractPathInRootWithNoGrafts() { var builder = new StorageHierarchiesBuilder(new StubFileSystemApi()); var root = builder.CreateNode(@"C:\Root", FileSystemCasing.CasePreservingInsensitive); builder.AddNamedRoot("SimpleRoot", root); var storage = builder.BuildHierarchies(); var qualifiedPath = new QualifiedPath(root, RelativePath.CreateFromSegments("some", "filepath.txt")); var expectedAbstractPath = new AbstractPath(storage.NamedRoots.Single(), RelativePath.CreateFromSegments("some", "filepath.txt")); var abstractPath = storage.MapToAbstractPath(qualifiedPath); Assert.That(abstractPath, Is.EqualTo(expectedAbstractPath).Using(default(AbstractPath.DefaultEqualityComparer))); Assert.That(storage.MapFromAbstractPath(abstractPath), Is.EqualTo(qualifiedPath) .Using(default(QualifiedPath.DefaultEqualityComparer))); }