using System; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace Renci.SshNet.Tests.Classes { [TestClass] public class RemotePathDoubleQuoteTransformationTest { private IRemotePathTransformation _transformation; [TestInitialize] public void SetUp() { _transformation = new RemotePathDoubleQuoteTransformation(); } /// /// Test cases from triple-slash comments /// [TestMethod] public void Mixed() { Assert.AreEqual("\"/var/log/auth.log\"", _transformation.Transform("/var/log/auth.log")); Assert.AreEqual("\"/var/mp3/Guns N' Roses\"", _transformation.Transform("/var/mp3/Guns N' Roses")); Assert.AreEqual("\"/var/garbage!/temp\"", _transformation.Transform("/var/garbage!/temp")); Assert.AreEqual("\"/var/would be 'kewl'!, not?\"", _transformation.Transform("/var/would be 'kewl'!, not?")); Assert.AreEqual("\"\"", _transformation.Transform(string.Empty)); Assert.AreEqual("\"Hello \\\"World\\\"\"", _transformation.Transform("Hello \"World\"")); } [TestMethod] public void Null() { const string path = null; try { _transformation.Transform(path); Assert.Fail(); } catch (ArgumentNullException ex) { Assert.IsNull(ex.InnerException); Assert.AreEqual("path", ex.ParamName); } } [TestMethod] public void Ampersand_Embedded() { const string path = "You&Me"; var actual = _transformation.Transform(path); Assert.AreEqual("\"You&Me\"", actual); } [TestMethod] public void Ampersand_Leading() { const string path = "&Or"; var actual = _transformation.Transform(path); Assert.AreEqual("\"&Or\"", actual); } [TestMethod] public void Ampersand_LeadingAndTrailing() { const string path = "&Or&"; var actual = _transformation.Transform(path); Assert.AreEqual("\"&Or&\"", actual); } [TestMethod] public void Ampersand_Trailing() { const string path = "And&"; var actual = _transformation.Transform(path); Assert.AreEqual("\"And&\"", actual); } [TestMethod] public void Asterisk_Embedded() { const string path = "Love*Hate"; var actual = _transformation.Transform(path); Assert.AreEqual("\"Love*Hate\"", actual); } [TestMethod] public void Asterisk_Leading() { const string path = "*Times"; var actual = _transformation.Transform(path); Assert.AreEqual("\"*Times\"", actual); } [TestMethod] public void Asterisk_LeadingAndTrailing() { const string path = "*WAR*"; var actual = _transformation.Transform(path); Assert.AreEqual("\"*WAR*\"", actual); } [TestMethod] public void Asterisk_Trailing() { const string path = "Censor*"; var actual = _transformation.Transform(path); Assert.AreEqual("\"Censor*\"", actual); } [TestMethod] public void Backslash_Embedded() { const string path = "Hello\\World"; var actual = _transformation.Transform(path); Assert.AreEqual("\"Hello\\World\"", actual); } [TestMethod] public void Backslash_Leading() { const string path = "\\Hello"; var actual = _transformation.Transform(path); Assert.AreEqual("\"\\Hello\"", actual); } [TestMethod] public void Backslash_LeadingAndTrailing() { const string path = "\\Hello\\"; var actual = _transformation.Transform(path); Assert.AreEqual("\"\\Hello\\\"", actual); } [TestMethod] public void Backslash_Trailing() { const string path = "HelloWorld\\"; var actual = _transformation.Transform(path); Assert.AreEqual("\"HelloWorld\\\"", actual); } [TestMethod] public void Backtick_Embedded() { const string path = "back`tick"; var actual = _transformation.Transform(path); Assert.AreEqual("\"back`tick\"", actual); } [TestMethod] public void Backtick_Leading() { const string path = "`front"; var actual = _transformation.Transform(path); Assert.AreEqual("\"`front\"", actual); } [TestMethod] public void Backtick_LeadingAndTrailing() { const string path = "`FrontAndBack`"; var actual = _transformation.Transform(path); Assert.AreEqual("\"`FrontAndBack`\"", actual); } [TestMethod] public void Backtick_Trailing() { const string path = "back`"; var actual = _transformation.Transform(path); Assert.AreEqual("\"back`\"", actual); } [TestMethod] public void Circumflex_Embedded() { const string path = "You^Me"; var actual = _transformation.Transform(path); Assert.AreEqual("\"You^Me\"", actual); } [TestMethod] public void Circumflex_Leading() { const string path = "^Or"; var actual = _transformation.Transform(path); Assert.AreEqual("\"^Or\"", actual); } [TestMethod] public void Circumflex_LeadingAndTrailing() { const string path = "^Or^"; var actual = _transformation.Transform(path); Assert.AreEqual("\"^Or^\"", actual); } [TestMethod] public void Circumflex_Trailing() { const string path = "And^"; var actual = _transformation.Transform(path); Assert.AreEqual("\"And^\"", actual); } [TestMethod] public void CurlyBrackets_Close_Embedded() { const string path = "Halo}Devine"; var actual = _transformation.Transform(path); Assert.AreEqual("\"Halo}Devine\"", actual); } [TestMethod] public void CurlyBrackets_Close_Leading() { const string path = "}Open"; var actual = _transformation.Transform(path); Assert.AreEqual("\"}Open\"", actual); } [TestMethod] public void CurlyBrackets_Close_LeadingAndTrailing() { const string path = "}Closed}"; var actual = _transformation.Transform(path); Assert.AreEqual("\"}Closed}\"", actual); } [TestMethod] public void CurlyBrackets_Close_Trailing() { const string path = "Finish}"; var actual = _transformation.Transform(path); Assert.AreEqual("\"Finish}\"", actual); } [TestMethod] public void CurlyBrackets_Open_Embedded() { const string path = "Halo{Devine"; var actual = _transformation.Transform(path); Assert.AreEqual("\"Halo{Devine\"", actual); } [TestMethod] public void CurlyBrackets_Open_Leading() { const string path = "{Open"; var actual = _transformation.Transform(path); Assert.AreEqual("\"{Open\"", actual); } [TestMethod] public void CurlyBrackets_Open_LeadingAndTrailing() { const string path = "{Closed{"; var actual = _transformation.Transform(path); Assert.AreEqual("\"{Closed{\"", actual); } [TestMethod] public void CurlyBrackets_Open_Trailing() { const string path = "Finish{"; var actual = _transformation.Transform(path); Assert.AreEqual("\"Finish{\"", actual); } [TestMethod] public void Dollar_Embedded() { const string path = "IGiveYouOne$ForYourThoughts"; var actual = _transformation.Transform(path); Assert.AreEqual("\"IGiveYouOne$ForYourThoughts\"", actual); } [TestMethod] public void Dollar_Leading() { const string path = "$Blues"; var actual = _transformation.Transform(path); Assert.AreEqual("\"$Blues\"", actual); } [TestMethod] public void Dollar_LeadingAndTrailing() { const string path = "$SUM$"; var actual = _transformation.Transform(path); Assert.AreEqual("\"$SUM$\"", actual); } [TestMethod] public void Dollar_Trailing() { const string path = "NotCravingForMore$"; var actual = _transformation.Transform(path); Assert.AreEqual("\"NotCravingForMore$\"", actual); } [TestMethod] public void DoubleQuote_Embedded() { const string path = "DoNot\"MeOnThis"; var actual = _transformation.Transform(path); Assert.AreEqual("\"DoNot\\\"MeOnThis\"", actual); } [TestMethod] public void DoubleQuote_Leading() { const string path = "\"OrNotToQuote"; var actual = _transformation.Transform(path); Assert.AreEqual("\"\\\"OrNotToQuote\"", actual); } [TestMethod] public void DoubleQuote_Trailing() { const string path = "Famous\""; var actual = _transformation.Transform(path); Assert.AreEqual("\"Famous\\\"\"", actual); } [TestMethod] public void DoubleQuote_LeadingAndTrailing() { const string path = "\"OrNotTo\""; var actual = _transformation.Transform(path); Assert.AreEqual("\"\\\"OrNotTo\\\"\"", actual); } [TestMethod] public void Equals_Embedded() { const string path = "You=Me"; var actual = _transformation.Transform(path); Assert.AreEqual("\"You=Me\"", actual); } [TestMethod] public void Equals_Leading() { const string path = "=Or"; var actual = _transformation.Transform(path); Assert.AreEqual("\"=Or\"", actual); } [TestMethod] public void Equals_LeadingAndTrailing() { const string path = "=Or="; var actual = _transformation.Transform(path); Assert.AreEqual("\"=Or=\"", actual); } [TestMethod] public void Equals_Trailing() { const string path = "And="; var actual = _transformation.Transform(path); Assert.AreEqual("\"And=\"", actual); } [TestMethod] public void ExclamationMark_Embedded_Single() { const string path = "/var/garbage!/temp"; var actual = _transformation.Transform(path); Assert.AreEqual("\"/var/garbage!/temp\"", actual); } [TestMethod] public void ExclamationMark_Embedded_Sequence() { const string path = "/var/garbage!!/temp"; var actual = _transformation.Transform(path); Assert.AreEqual("\"/var/garbage!!/temp\"", actual); } [TestMethod] public void ExclamationMark_Leading() { const string path = "!Error"; var actual = _transformation.Transform(path); Assert.AreEqual("\"!Error\"", actual); } [TestMethod] public void ExclamationMark_LeadingAndTrailing() { const string path = "!ignore!"; var actual = _transformation.Transform(path); Assert.AreEqual("\"!ignore!\"", actual); } [TestMethod] public void ExclamationMark_Trailing() { const string path = "Done!"; var actual = _transformation.Transform(path); Assert.AreEqual("\"Done!\"", actual); } [TestMethod] public void GreaterThan_Embedded() { const string path = "You>Me"; var actual = _transformation.Transform(path); Assert.AreEqual("\"You>Me\"", actual); } [TestMethod] public void GreaterThan_Leading() { const string path = ">Or"; var actual = _transformation.Transform(path); Assert.AreEqual("\">Or\"", actual); } [TestMethod] public void GreaterThan_LeadingAndTrailing() { const string path = ">Or>"; var actual = _transformation.Transform(path); Assert.AreEqual("\">Or>\"", actual); } [TestMethod] public void GreaterThan_Trailing() { const string path = "And>"; var actual = _transformation.Transform(path); Assert.AreEqual("\"And>\"", actual); } [TestMethod] public void Hash_Embedded() { const string path = "Smoke#EveryDay"; var actual = _transformation.Transform(path); Assert.AreEqual("\"Smoke#EveryDay\"", actual); } [TestMethod] public void Hash_Leading() { const string path = "#4Ever"; var actual = _transformation.Transform(path); Assert.AreEqual("\"#4Ever\"", actual); } [TestMethod] public void Hash_LeadingAndTrailing() { const string path = "#4Ever#"; var actual = _transformation.Transform(path); Assert.AreEqual("\"#4Ever#\"", actual); } [TestMethod] public void Hash_Trailing() { const string path = "Legalize#"; var actual = _transformation.Transform(path); Assert.AreEqual("\"Legalize#\"", actual); } [TestMethod] public void LessThan_Embedded() { const string path = "You