mirror of
https://github.com/sshnet/SSH.NET.git
synced 2026-09-10 17:25:51 +00:00
c0a353a4de
* Preparation to enforce formatting and style in CI - enabled IDE0055 to enforce formatting on build - disabled SA1137 and SA1025 because they are already covered by IDE0055 - disabled SA1021 because it conflicts with csharp_space_after_cast * Cleanup formatting and style on codebase This commit has no manual changes, it is the result of running "dotnet format whitespace" and "dotnet format style" * new formatting fixes after merge * appveyor: set git autocrlf as suggested by sharwell to hopefully fix Windows CI. * use autocrlf input to hopefully fix Linux tests * fix formatting * use autocrlf input for Linux only * set csharp_space_after_cast to false * Revert SA1021 suppression --------- Co-authored-by: Robert Hague <rh@johnstreetcapital.com>
181 lines
4.9 KiB
C#
181 lines
4.9 KiB
C#
using System;
|
|
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
|
|
using Renci.SshNet.Common;
|
|
using Renci.SshNet.Tests.Common;
|
|
|
|
namespace Renci.SshNet.Tests.Classes.Common
|
|
{
|
|
[TestClass]
|
|
public class PosixPathTest_CreateAbsoluteOrRelativeFilePath
|
|
{
|
|
[TestMethod]
|
|
public void Path_Null()
|
|
{
|
|
const string path = null;
|
|
|
|
try
|
|
{
|
|
_ = PosixPath.CreateAbsoluteOrRelativeFilePath(path);
|
|
Assert.Fail();
|
|
}
|
|
catch (ArgumentNullException ex)
|
|
{
|
|
Assert.IsNull(ex.InnerException);
|
|
Assert.AreEqual("path", ex.ParamName);
|
|
}
|
|
}
|
|
|
|
[TestMethod]
|
|
public void Path_Empty()
|
|
{
|
|
var path = string.Empty;
|
|
|
|
try
|
|
{
|
|
_ = PosixPath.CreateAbsoluteOrRelativeFilePath(path);
|
|
Assert.Fail();
|
|
}
|
|
catch (ArgumentException ex)
|
|
{
|
|
Assert.IsNull(ex.InnerException);
|
|
ArgumentExceptionAssert.MessageEquals("The path is a zero-length string.", ex);
|
|
Assert.AreEqual("path", ex.ParamName);
|
|
}
|
|
}
|
|
|
|
[TestMethod]
|
|
public void Path_TrailingForwardSlash()
|
|
{
|
|
var path = "/abc/";
|
|
|
|
var actual = PosixPath.CreateAbsoluteOrRelativeFilePath(path);
|
|
|
|
Assert.IsNotNull(actual);
|
|
Assert.AreEqual("/abc", actual.Directory);
|
|
Assert.IsNull(actual.File);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void Path_FileWithoutNoDirectory()
|
|
{
|
|
var path = "abc.log";
|
|
|
|
var actual = PosixPath.CreateAbsoluteOrRelativeFilePath(path);
|
|
|
|
Assert.IsNotNull(actual);
|
|
Assert.AreEqual(".", actual.Directory);
|
|
Assert.AreSame(path, actual.File);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void Path_FileInRootDirectory()
|
|
{
|
|
var path = "/abc.log";
|
|
|
|
var actual = PosixPath.CreateAbsoluteOrRelativeFilePath(path);
|
|
|
|
Assert.IsNotNull(actual);
|
|
Assert.AreEqual("/", actual.Directory);
|
|
Assert.AreEqual("abc.log", actual.File);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void Path_RootDirectoryOnly()
|
|
{
|
|
var path = "/";
|
|
|
|
var actual = PosixPath.CreateAbsoluteOrRelativeFilePath(path);
|
|
|
|
Assert.IsNotNull(actual);
|
|
Assert.AreEqual("/", actual.Directory);
|
|
Assert.IsNull(actual.File);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void Path_FileInNonRootDirectory()
|
|
{
|
|
var path = "/home/sshnet/xyz";
|
|
|
|
var actual = PosixPath.CreateAbsoluteOrRelativeFilePath(path);
|
|
|
|
Assert.IsNotNull(actual);
|
|
Assert.AreEqual("/home/sshnet", actual.Directory);
|
|
Assert.AreEqual("xyz", actual.File);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void Path_BackslashIsNotConsideredDirectorySeparator()
|
|
{
|
|
var path = "/home\\abc.log";
|
|
|
|
var actual = PosixPath.CreateAbsoluteOrRelativeFilePath(path);
|
|
|
|
Assert.IsNotNull(actual);
|
|
Assert.AreEqual("/", actual.Directory);
|
|
Assert.AreEqual("home\\abc.log", actual.File);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void Path_ColonIsNotConsideredPathSeparator()
|
|
{
|
|
var path = "/home:abc.log";
|
|
|
|
var actual = PosixPath.CreateAbsoluteOrRelativeFilePath(path);
|
|
|
|
Assert.IsNotNull(actual);
|
|
Assert.AreEqual("/", actual.Directory);
|
|
Assert.AreEqual("home:abc.log", actual.File);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void Path_LeadingWhitespace()
|
|
{
|
|
var path = " / \tabc";
|
|
|
|
var actual = PosixPath.CreateAbsoluteOrRelativeFilePath(path);
|
|
|
|
Assert.IsNotNull(actual);
|
|
Assert.AreEqual(" ", actual.Directory);
|
|
Assert.AreEqual(" \tabc", actual.File);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void Path_TrailingWhitespace()
|
|
{
|
|
var path = "/abc \t ";
|
|
|
|
var actual = PosixPath.CreateAbsoluteOrRelativeFilePath(path);
|
|
|
|
Assert.IsNotNull(actual);
|
|
Assert.AreEqual("/", actual.Directory);
|
|
Assert.AreEqual("abc \t ", actual.File);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void Path_OnlyWhitespace()
|
|
{
|
|
var path = " ";
|
|
|
|
var actual = PosixPath.CreateAbsoluteOrRelativeFilePath(path);
|
|
|
|
Assert.IsNotNull(actual);
|
|
Assert.AreEqual(".", actual.Directory);
|
|
Assert.AreSame(path, actual.File);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void Path_FileNameOnlyWhitespace()
|
|
{
|
|
var path = "/home/\t ";
|
|
|
|
var actual = PosixPath.CreateAbsoluteOrRelativeFilePath(path);
|
|
|
|
Assert.IsNotNull(actual);
|
|
Assert.AreEqual("/home", actual.Directory);
|
|
Assert.AreEqual("\t ", actual.File);
|
|
}
|
|
}
|
|
}
|