public void TestSplitShareNameAndSubPath() { String subPath; Assert.AreEqual(null, NfsPath.SplitShareNameAndSubPath(null, out subPath)); Assert.AreEqual(null, subPath); Assert.AreEqual(null, NfsPath.SplitShareNameAndSubPath("", out subPath)); Assert.AreEqual(null, subPath); Assert.AreEqual(null, NfsPath.SplitShareNameAndSubPath("/", out subPath)); Assert.AreEqual(null, subPath); Assert.AreEqual("a", NfsPath.SplitShareNameAndSubPath("a", out subPath)); Assert.AreEqual(null, subPath); Assert.AreEqual("a", NfsPath.SplitShareNameAndSubPath("/a", out subPath)); Assert.AreEqual(null, subPath); Assert.AreEqual("a", NfsPath.SplitShareNameAndSubPath("a/", out subPath)); Assert.AreEqual(null, subPath); Assert.AreEqual("a", NfsPath.SplitShareNameAndSubPath("/a/", out subPath)); Assert.AreEqual(null, subPath); Assert.AreEqual("sharename", NfsPath.SplitShareNameAndSubPath("sharename", out subPath)); Assert.AreEqual(null, subPath); Assert.AreEqual("sharename", NfsPath.SplitShareNameAndSubPath("/sharename", out subPath)); Assert.AreEqual(null, subPath); Assert.AreEqual("sharename", NfsPath.SplitShareNameAndSubPath("sharename/", out subPath)); Assert.AreEqual(null, subPath); Assert.AreEqual("sharename", NfsPath.SplitShareNameAndSubPath("/sharename/", out subPath)); Assert.AreEqual(null, subPath); Assert.AreEqual("sharename", NfsPath.SplitShareNameAndSubPath("sharename/a", out subPath)); Assert.AreEqual("a", subPath); Assert.AreEqual("sharename", NfsPath.SplitShareNameAndSubPath("sharename/a/", out subPath)); Assert.AreEqual("a", subPath); Assert.AreEqual("sharename", NfsPath.SplitShareNameAndSubPath("sharename/a", out subPath)); Assert.AreEqual("a", subPath); Assert.AreEqual("sharename", NfsPath.SplitShareNameAndSubPath("/sharename/a/", out subPath)); Assert.AreEqual("a", subPath); Assert.AreEqual("sharename", NfsPath.SplitShareNameAndSubPath("/sharename/a/b", out subPath)); Assert.AreEqual("a/b", subPath); Assert.AreEqual("sharename", NfsPath.SplitShareNameAndSubPath("/sharename/a/b/", out subPath)); Assert.AreEqual("a/b", subPath); }
void SetShareLeafName(String shareLeafName) { if (PlatformPath.IsValidUnixFileName(shareLeafName)) { this.shareLeafName = shareLeafName; } else { String newShareLeafName = NfsPath.LeafName(shareLeafName); if (!PlatformPath.IsValidUnixFileName(newShareLeafName)) { throw new InvalidOperationException(String.Format("The file you supplied '{0}' is not a valid unix file name", shareLeafName)); } this.shareLeafName = newShareLeafName; } }
public Nfs3Procedure.Status TryGetDirectory(String shareDirectoryName, out RootShareDirectory rootShareDirectory, out ShareObject shareDirectoryObject) { String subPath; String rootShareName = NfsPath.SplitShareNameAndSubPath(shareDirectoryName, out subPath); if (rootShareName == null) { rootShareDirectory = null; shareDirectoryObject = null; return(Nfs3Procedure.Status.ErrorInvalidArgument); } Nfs3Procedure.Status status = TryGetRootSharedDirectory(rootShareName, out rootShareDirectory); if (status != Nfs3Procedure.Status.Ok) { shareDirectoryObject = null; return(status); } if (rootShareDirectory == null) { shareDirectoryObject = null; return(Nfs3Procedure.Status.ErrorNoSuchFileOrDirectory); } if (subPath == null) { shareDirectoryObject = rootShareDirectory.shareObject; } else { String localPathAndName = PlatformPath.LocalCombine(rootShareDirectory.localShareDirectory, subPath); status = TryGetSharedObject(localPathAndName, subPath, out shareDirectoryObject); if (status != Nfs3Procedure.Status.Ok) { return(status); } if (shareDirectoryObject == null) { return(Nfs3Procedure.Status.ErrorNoSuchFileOrDirectory); } shareDirectoryObject.RefreshFileAttributes(permissions); } return(Nfs3Procedure.Status.Ok); }
public void TestLeafName() { Assert.AreEqual(null, NfsPath.LeafName(null)); Assert.AreEqual(null, NfsPath.LeafName("")); Assert.AreEqual(null, NfsPath.LeafName("/")); Assert.AreEqual("a", NfsPath.LeafName("a")); Assert.AreEqual("a", NfsPath.LeafName("/a")); Assert.AreEqual("a", NfsPath.LeafName("a/")); Assert.AreEqual("a", NfsPath.LeafName("/a/")); Assert.AreEqual("leafname", NfsPath.LeafName("leafname")); Assert.AreEqual("leafname", NfsPath.LeafName("/leafname")); Assert.AreEqual("leafname", NfsPath.LeafName("leafname/")); Assert.AreEqual("leafname", NfsPath.LeafName("/leafname/")); Assert.AreEqual("a", NfsPath.LeafName("leafname/a")); Assert.AreEqual("a", NfsPath.LeafName("leafname/a/")); Assert.AreEqual("a", NfsPath.LeafName("/leafname/a")); Assert.AreEqual("a", NfsPath.LeafName("/leafname/a/")); }
public Nfs3Procedure.Status TryGetSharedObject(String localPathAndName, out ShareObject shareObject) { return(TryGetSharedObject(localPathAndName, NfsPath.LeafName(localPathAndName), out shareObject)); }