public void GetHandleTypeBasic() { string tempPath = FileMethods.GetTempPath(); using (var directory = DirectoryMethods.CreateDirectoryHandle(tempPath)) { string name = HandleMethods.GetObjectType(directory); name.Should().Be("File"); } }
public void GetPipeObjectInfo() { var fileHandle = FileMethods.CreateFileSystemIo( @"\\.\pipe\", 0, // We don't care about read or write, we're just getting metadata with this handle System.IO.FileShare.ReadWrite, System.IO.FileMode.Open, 0, FileFlags.OpenReparsePoint // To avoid traversing links | FileFlags.BackupSemantics); // To open directories string name = HandleMethods.GetObjectName(fileHandle); name.Should().Be(@"\Device\NamedPipe\"); string typeName = HandleMethods.GetObjectType(fileHandle); typeName.Should().Be(@"File"); string fileName = FileMethods.GetFileName(fileHandle); fileName.Should().Be(@"\"); }
public void GetPipeObjectInfoNoTrailingSlash() { var fileHandle = FileMethods.CreateFileSystemIo( @"\\.\pipe", 0, // We don't care about read or write, we're just getting metadata with this handle System.IO.FileShare.ReadWrite, System.IO.FileMode.Open, 0, FileFlags.OpenReparsePoint // To avoid traversing links | FileFlags.BackupSemantics); // To open directories string name = HandleMethods.GetObjectName(fileHandle); name.Should().Be(@"\Device\NamedPipe"); string typeName = HandleMethods.GetObjectType(fileHandle); typeName.Should().Be(@"File"); // Not sure why this is- probably the source of why so many other things go wrong Action action = () => FileMethods.GetFileName(fileHandle); action.ShouldThrow <ArgumentException>().And.HResult.Should().Be(unchecked ((int)0x80070057)); }