2
0

RemotePathShellQuoteTransformationTest.cs 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188
  1. using System;
  2. using Microsoft.VisualStudio.TestTools.UnitTesting;
  3. namespace Renci.SshNet.Tests.Classes
  4. {
  5. [TestClass]
  6. public class RemotePathShellQuoteTransformationTest
  7. {
  8. private IRemotePathTransformation _transformation;
  9. [TestInitialize]
  10. public void SetUp()
  11. {
  12. _transformation = new RemotePathShellQuoteTransformation();
  13. }
  14. /// <summary>
  15. /// Test cases from triple-slash comments
  16. /// </summary>
  17. [TestMethod]
  18. public void Mixed()
  19. {
  20. Assert.AreEqual("'/var/log/auth.log'", _transformation.Transform("/var/log/auth.log"));
  21. Assert.AreEqual("'/var/mp3/Guns N'\"'\"' Roses'", _transformation.Transform("/var/mp3/Guns N' Roses"));
  22. Assert.AreEqual("'/var/garbage'\\!'/temp'", _transformation.Transform("/var/garbage!/temp"));
  23. Assert.AreEqual("'/var/would be '\"'\"'kewl'\"'\"\\!', not?'", _transformation.Transform("/var/would be 'kewl'!, not?"));
  24. Assert.AreEqual("''", _transformation.Transform(string.Empty));
  25. Assert.AreEqual("'Hello \"World\"'", _transformation.Transform("Hello \"World\""));
  26. }
  27. [TestMethod]
  28. public void Null()
  29. {
  30. const string path = null;
  31. try
  32. {
  33. _transformation.Transform(path);
  34. Assert.Fail();
  35. }
  36. catch (ArgumentNullException ex)
  37. {
  38. Assert.IsNull(ex.InnerException);
  39. Assert.AreEqual("path", ex.ParamName);
  40. }
  41. }
  42. [TestMethod]
  43. public void Ampersand_Embedded()
  44. {
  45. const string path = "You&Me";
  46. var actual = _transformation.Transform(path);
  47. Assert.AreEqual("'You&Me'", actual);
  48. }
  49. [TestMethod]
  50. public void Ampersand_Leading()
  51. {
  52. const string path = "&Or";
  53. var actual = _transformation.Transform(path);
  54. Assert.AreEqual("'&Or'", actual);
  55. }
  56. [TestMethod]
  57. public void Ampersand_LeadingAndTrailing()
  58. {
  59. const string path = "&Or&";
  60. var actual = _transformation.Transform(path);
  61. Assert.AreEqual("'&Or&'", actual);
  62. }
  63. [TestMethod]
  64. public void Ampersand_Trailing()
  65. {
  66. const string path = "And&";
  67. var actual = _transformation.Transform(path);
  68. Assert.AreEqual("'And&'", actual);
  69. }
  70. [TestMethod]
  71. public void Asterisk_Embedded()
  72. {
  73. const string path = "Love*Hate";
  74. var actual = _transformation.Transform(path);
  75. Assert.AreEqual("'Love*Hate'", actual);
  76. }
  77. [TestMethod]
  78. public void Asterisk_Leading()
  79. {
  80. const string path = "*Times";
  81. var actual = _transformation.Transform(path);
  82. Assert.AreEqual("'*Times'", actual);
  83. }
  84. [TestMethod]
  85. public void Asterisk_LeadingAndTrailing()
  86. {
  87. const string path = "*WAR*";
  88. var actual = _transformation.Transform(path);
  89. Assert.AreEqual("'*WAR*'", actual);
  90. }
  91. [TestMethod]
  92. public void Asterisk_Trailing()
  93. {
  94. const string path = "Censor*";
  95. var actual = _transformation.Transform(path);
  96. Assert.AreEqual("'Censor*'", actual);
  97. }
  98. [TestMethod]
  99. public void Backslash_Embedded()
  100. {
  101. const string path = "Hello\\World";
  102. var actual = _transformation.Transform(path);
  103. Assert.AreEqual("'Hello\\World'", actual);
  104. }
  105. [TestMethod]
  106. public void Backslash_Leading()
  107. {
  108. const string path = "\\Hello";
  109. var actual = _transformation.Transform(path);
  110. Assert.AreEqual("'\\Hello'", actual);
  111. }
  112. [TestMethod]
  113. public void Backslash_LeadingAndTrailing()
  114. {
  115. const string path = "\\Hello\\";
  116. var actual = _transformation.Transform(path);
  117. Assert.AreEqual("'\\Hello\\'", actual);
  118. }
  119. [TestMethod]
  120. public void Backslash_Trailing()
  121. {
  122. const string path = "HelloWorld\\";
  123. var actual = _transformation.Transform(path);
  124. Assert.AreEqual("'HelloWorld\\'", actual);
  125. }
  126. [TestMethod]
  127. public void Backtick_Embedded()
  128. {
  129. const string path = "back`tick";
  130. var actual = _transformation.Transform(path);
  131. Assert.AreEqual("'back`tick'", actual);
  132. }
  133. [TestMethod]
  134. public void Backtick_Leading()
  135. {
  136. const string path = "`front";
  137. var actual = _transformation.Transform(path);
  138. Assert.AreEqual("'`front'", actual);
  139. }
  140. [TestMethod]
  141. public void Backtick_LeadingAndTrailing()
  142. {
  143. const string path = "`FrontAndBack`";
  144. var actual = _transformation.Transform(path);
  145. Assert.AreEqual("'`FrontAndBack`'", actual);
  146. }
  147. [TestMethod]
  148. public void Backtick_Trailing()
  149. {
  150. const string path = "back`";
  151. var actual = _transformation.Transform(path);
  152. Assert.AreEqual("'back`'", actual);
  153. }
  154. [TestMethod]
  155. public void Circumflex_Embedded()
  156. {
  157. const string path = "You^Me";
  158. var actual = _transformation.Transform(path);
  159. Assert.AreEqual("'You^Me'", actual);
  160. }
  161. [TestMethod]
  162. public void Circumflex_Leading()
  163. {
  164. const string path = "^Or";
  165. var actual = _transformation.Transform(path);
  166. Assert.AreEqual("'^Or'", actual);
  167. }
  168. [TestMethod]
  169. public void Circumflex_LeadingAndTrailing()
  170. {
  171. const string path = "^Or^";
  172. var actual = _transformation.Transform(path);
  173. Assert.AreEqual("'^Or^'", actual);
  174. }
  175. [TestMethod]
  176. public void Circumflex_Trailing()
  177. {
  178. const string path = "And^";
  179. var actual = _transformation.Transform(path);
  180. Assert.AreEqual("'And^'", actual);
  181. }
  182. [TestMethod]
  183. public void CurlyBrackets_Close_Embedded()
  184. {
  185. const string path = "Halo}Devine";
  186. var actual = _transformation.Transform(path);
  187. Assert.AreEqual("'Halo}Devine'", actual);
  188. }
  189. [TestMethod]
  190. public void CurlyBrackets_Close_Leading()
  191. {
  192. const string path = "}Open";
  193. var actual = _transformation.Transform(path);
  194. Assert.AreEqual("'}Open'", actual);
  195. }
  196. [TestMethod]
  197. public void CurlyBrackets_Close_LeadingAndTrailing()
  198. {
  199. const string path = "}Closed}";
  200. var actual = _transformation.Transform(path);
  201. Assert.AreEqual("'}Closed}'", actual);
  202. }
  203. [TestMethod]
  204. public void CurlyBrackets_Close_Trailing()
  205. {
  206. const string path = "Finish}";
  207. var actual = _transformation.Transform(path);
  208. Assert.AreEqual("'Finish}'", actual);
  209. }
  210. [TestMethod]
  211. public void CurlyBrackets_Open_Embedded()
  212. {
  213. const string path = "Halo{Devine";
  214. var actual = _transformation.Transform(path);
  215. Assert.AreEqual("'Halo{Devine'", actual);
  216. }
  217. [TestMethod]
  218. public void CurlyBrackets_Open_Leading()
  219. {
  220. const string path = "{Open";
  221. var actual = _transformation.Transform(path);
  222. Assert.AreEqual("'{Open'", actual);
  223. }
  224. [TestMethod]
  225. public void CurlyBrackets_Open_LeadingAndTrailing()
  226. {
  227. const string path = "{Closed{";
  228. var actual = _transformation.Transform(path);
  229. Assert.AreEqual("'{Closed{'", actual);
  230. }
  231. [TestMethod]
  232. public void CurlyBrackets_Open_Trailing()
  233. {
  234. const string path = "Finish{";
  235. var actual = _transformation.Transform(path);
  236. Assert.AreEqual("'Finish{'", actual);
  237. }
  238. [TestMethod]
  239. public void Dollar_Embedded()
  240. {
  241. const string path = "IGiveYouOne$ForYourThoughts";
  242. var actual = _transformation.Transform(path);
  243. Assert.AreEqual("'IGiveYouOne$ForYourThoughts'", actual);
  244. }
  245. [TestMethod]
  246. public void Dollar_Leading()
  247. {
  248. const string path = "$Blues";
  249. var actual = _transformation.Transform(path);
  250. Assert.AreEqual("'$Blues'", actual);
  251. }
  252. [TestMethod]
  253. public void Dollar_LeadingAndTrailing()
  254. {
  255. const string path = "$SUM$";
  256. var actual = _transformation.Transform(path);
  257. Assert.AreEqual("'$SUM$'", actual);
  258. }
  259. [TestMethod]
  260. public void Dollar_Trailing()
  261. {
  262. const string path = "NotCravingForMore$";
  263. var actual = _transformation.Transform(path);
  264. Assert.AreEqual("'NotCravingForMore$'", actual);
  265. }
  266. [TestMethod]
  267. public void DoubleQuote_Embedded()
  268. {
  269. const string path = "DoNot\"MeOnThis";
  270. var actual = _transformation.Transform(path);
  271. Assert.AreEqual("'DoNot\"MeOnThis'", actual);
  272. }
  273. [TestMethod]
  274. public void DoubleQuote_Leading()
  275. {
  276. const string path = "\"OrNotToQuote";
  277. var actual = _transformation.Transform(path);
  278. Assert.AreEqual("'\"OrNotToQuote'", actual);
  279. }
  280. [TestMethod]
  281. public void DoubleQuote_LeadingAndTrailing()
  282. {
  283. const string path = "\"OrNotTo\"";
  284. var actual = _transformation.Transform(path);
  285. Assert.AreEqual("'\"OrNotTo\"'", actual);
  286. }
  287. [TestMethod]
  288. public void DoubleQuote_Trailing()
  289. {
  290. const string path = "Famous\"";
  291. var actual = _transformation.Transform(path);
  292. Assert.AreEqual("'Famous\"'", actual);
  293. }
  294. [TestMethod]
  295. public void Equals_Embedded()
  296. {
  297. const string path = "You=Me";
  298. var actual = _transformation.Transform(path);
  299. Assert.AreEqual("'You=Me'", actual);
  300. }
  301. [TestMethod]
  302. public void Equals_Leading()
  303. {
  304. const string path = "=Or";
  305. var actual = _transformation.Transform(path);
  306. Assert.AreEqual("'=Or'", actual);
  307. }
  308. [TestMethod]
  309. public void Equals_LeadingAndTrailing()
  310. {
  311. const string path = "=Or=";
  312. var actual = _transformation.Transform(path);
  313. Assert.AreEqual("'=Or='", actual);
  314. }
  315. [TestMethod]
  316. public void Equals_Trailing()
  317. {
  318. const string path = "And=";
  319. var actual = _transformation.Transform(path);
  320. Assert.AreEqual("'And='", actual);
  321. }
  322. [TestMethod]
  323. public void ExclamationMark_Embedded_Single()
  324. {
  325. const string path = "/var/garbage!/temp";
  326. var actual = _transformation.Transform(path);
  327. Assert.AreEqual("'/var/garbage'\\!'/temp'", actual);
  328. }
  329. [TestMethod]
  330. public void ExclamationMark_Embedded_Sequence()
  331. {
  332. const string path = "/var/garbage!!/temp";
  333. var actual = _transformation.Transform(path);
  334. Assert.AreEqual("'/var/garbage'\\!\\!'/temp'", actual);
  335. }
  336. [TestMethod]
  337. public void ExclamationMark_Leading()
  338. {
  339. const string path = "!Error";
  340. var actual = _transformation.Transform(path);
  341. Assert.AreEqual("\\!'Error'", actual);
  342. }
  343. [TestMethod]
  344. public void ExclamationMark_LeadingAndTrailing()
  345. {
  346. const string path = "!ignore!";
  347. var actual = _transformation.Transform(path);
  348. Assert.AreEqual("\\!'ignore'\\!", actual);
  349. }
  350. [TestMethod]
  351. public void ExclamationMark_Trailing()
  352. {
  353. const string path = "Done!";
  354. var actual = _transformation.Transform(path);
  355. Assert.AreEqual("'Done'\\!", actual);
  356. }
  357. [TestMethod]
  358. public void GreaterThan_Embedded()
  359. {
  360. const string path = "You>Me";
  361. var actual = _transformation.Transform(path);
  362. Assert.AreEqual("'You>Me'", actual);
  363. }
  364. [TestMethod]
  365. public void GreaterThan_Leading()
  366. {
  367. const string path = ">Or";
  368. var actual = _transformation.Transform(path);
  369. Assert.AreEqual("'>Or'", actual);
  370. }
  371. [TestMethod]
  372. public void GreaterThan_LeadingAndTrailing()
  373. {
  374. const string path = ">Or>";
  375. var actual = _transformation.Transform(path);
  376. Assert.AreEqual("'>Or>'", actual);
  377. }
  378. [TestMethod]
  379. public void GreaterThan_Trailing()
  380. {
  381. const string path = "And>";
  382. var actual = _transformation.Transform(path);
  383. Assert.AreEqual("'And>'", actual);
  384. }
  385. [TestMethod]
  386. public void Hash_Embedded()
  387. {
  388. const string path = "Smoke#EveryDay";
  389. var actual = _transformation.Transform(path);
  390. Assert.AreEqual("'Smoke#EveryDay'", actual);
  391. }
  392. [TestMethod]
  393. public void Hash_Leading()
  394. {
  395. const string path = "#4Ever";
  396. var actual = _transformation.Transform(path);
  397. Assert.AreEqual("'#4Ever'", actual);
  398. }
  399. [TestMethod]
  400. public void Hash_LeadingAndTrailing()
  401. {
  402. const string path = "#4Ever#";
  403. var actual = _transformation.Transform(path);
  404. Assert.AreEqual("'#4Ever#'", actual);
  405. }
  406. [TestMethod]
  407. public void Hash_Trailing()
  408. {
  409. const string path = "Legalize#";
  410. var actual = _transformation.Transform(path);
  411. Assert.AreEqual("'Legalize#'", actual);
  412. }
  413. [TestMethod]
  414. public void LessThan_Embedded()
  415. {
  416. const string path = "You<Me";
  417. var actual = _transformation.Transform(path);
  418. Assert.AreEqual("'You<Me'", actual);
  419. }
  420. [TestMethod]
  421. public void LessThan_Leading()
  422. {
  423. const string path = "<Or";
  424. var actual = _transformation.Transform(path);
  425. Assert.AreEqual("'<Or'", actual);
  426. }
  427. [TestMethod]
  428. public void LessThan_LeadingAndTrailing()
  429. {
  430. const string path = "<Or<";
  431. var actual = _transformation.Transform(path);
  432. Assert.AreEqual("'<Or<'", actual);
  433. }
  434. [TestMethod]
  435. public void LessThan_Trailing()
  436. {
  437. const string path = "And<";
  438. var actual = _transformation.Transform(path);
  439. Assert.AreEqual("'And<'", actual);
  440. }
  441. [TestMethod]
  442. public void NewLine_Embedded()
  443. {
  444. const string path = "line\nfeed";
  445. var actual = _transformation.Transform(path);
  446. Assert.AreEqual("'line\nfeed'", actual);
  447. }
  448. [TestMethod]
  449. public void NewLine_Leading()
  450. {
  451. const string path = "\nFooter";
  452. var actual = _transformation.Transform(path);
  453. Assert.AreEqual("'\nFooter'", actual);
  454. }
  455. [TestMethod]
  456. public void NewLine_LeadingAndTrailing()
  457. {
  458. const string path = "\nBanner\n";
  459. var actual = _transformation.Transform(path);
  460. Assert.AreEqual("'\nBanner\n'", actual);
  461. }
  462. [TestMethod]
  463. public void NewLine_Trailing()
  464. {
  465. const string path = "Header\n";
  466. var actual = _transformation.Transform(path);
  467. Assert.AreEqual("'Header\n'", actual);
  468. }
  469. [TestMethod]
  470. public void Parentheses_Close_Embedded()
  471. {
  472. const string path = "Halo)Devine";
  473. var actual = _transformation.Transform(path);
  474. Assert.AreEqual("'Halo)Devine'", actual);
  475. }
  476. [TestMethod]
  477. public void Parentheses_Close_Leading()
  478. {
  479. const string path = ")Open";
  480. var actual = _transformation.Transform(path);
  481. Assert.AreEqual("')Open'", actual);
  482. }
  483. [TestMethod]
  484. public void Parentheses_Close_LeadingAndTrailing()
  485. {
  486. const string path = ")Closed)";
  487. var actual = _transformation.Transform(path);
  488. Assert.AreEqual("')Closed)'", actual);
  489. }
  490. [TestMethod]
  491. public void Parentheses_Close_Trailing()
  492. {
  493. const string path = "Finish)";
  494. var actual = _transformation.Transform(path);
  495. Assert.AreEqual("'Finish)'", actual);
  496. }
  497. [TestMethod]
  498. public void Parentheses_Open_Embedded()
  499. {
  500. const string path = "Halo(Devine";
  501. var actual = _transformation.Transform(path);
  502. Assert.AreEqual("'Halo(Devine'", actual);
  503. }
  504. [TestMethod]
  505. public void Parentheses_Open_Leading()
  506. {
  507. const string path = "(Open";
  508. var actual = _transformation.Transform(path);
  509. Assert.AreEqual("'(Open'", actual);
  510. }
  511. [TestMethod]
  512. public void Parentheses_Open_LeadingAndTrailing()
  513. {
  514. const string path = "(Closed(";
  515. var actual = _transformation.Transform(path);
  516. Assert.AreEqual("'(Closed('", actual);
  517. }
  518. [TestMethod]
  519. public void Parentheses_Open_Trailing()
  520. {
  521. const string path = "Finish(";
  522. var actual = _transformation.Transform(path);
  523. Assert.AreEqual("'Finish('", actual);
  524. }
  525. [TestMethod]
  526. public void Percentage_Embedded()
  527. {
  528. const string path = "Ten%OfOneDollarIsTenCent";
  529. var actual = _transformation.Transform(path);
  530. Assert.AreEqual("'Ten%OfOneDollarIsTenCent'", actual);
  531. }
  532. [TestMethod]
  533. public void Percentage_Leading()
  534. {
  535. const string path = "%MoreOrLess";
  536. var actual = _transformation.Transform(path);
  537. Assert.AreEqual("'%MoreOrLess'", actual);
  538. }
  539. [TestMethod]
  540. public void Percentage_LeadingAndTrailing()
  541. {
  542. const string path = "%USERNAME%";
  543. var actual = _transformation.Transform(path);
  544. Assert.AreEqual("'%USERNAME%'", actual);
  545. }
  546. [TestMethod]
  547. public void Percentage_Trailing()
  548. {
  549. const string path = "TakeA%";
  550. var actual = _transformation.Transform(path);
  551. Assert.AreEqual("'TakeA%'", actual);
  552. }
  553. [TestMethod]
  554. public void Pipe_Embedded()
  555. {
  556. const string path = "You|Me";
  557. var actual = _transformation.Transform(path);
  558. Assert.AreEqual("'You|Me'", actual);
  559. }
  560. [TestMethod]
  561. public void Pipe_Leading()
  562. {
  563. const string path = "|Or";
  564. var actual = _transformation.Transform(path);
  565. Assert.AreEqual("'|Or'", actual);
  566. }
  567. [TestMethod]
  568. public void Pipe_LeadingAndTrailing()
  569. {
  570. const string path = "|Or|";
  571. var actual = _transformation.Transform(path);
  572. Assert.AreEqual("'|Or|'", actual);
  573. }
  574. [TestMethod]
  575. public void Pipe_Trailing()
  576. {
  577. const string path = "And|";
  578. var actual = _transformation.Transform(path);
  579. Assert.AreEqual("'And|'", actual);
  580. }
  581. [TestMethod]
  582. public void QuestionMark_Embedded()
  583. {
  584. const string path = "WhatTimeIsIt?SheSaid";
  585. var actual = _transformation.Transform(path);
  586. Assert.AreEqual("'WhatTimeIsIt?SheSaid'", actual);
  587. }
  588. [TestMethod]
  589. public void QuestionMark_Leading()
  590. {
  591. const string path = "?Quizz";
  592. var actual = _transformation.Transform(path);
  593. Assert.AreEqual("'?Quizz'", actual);
  594. }
  595. [TestMethod]
  596. public void QuestionMark_LeadingAndTrailing()
  597. {
  598. const string path = "?Crazy?";
  599. var actual = _transformation.Transform(path);
  600. Assert.AreEqual("'?Crazy?'", actual);
  601. }
  602. [TestMethod]
  603. public void QuestionMark_Trailing()
  604. {
  605. const string path = "WhatTimeIsLove?";
  606. var actual = _transformation.Transform(path);
  607. Assert.AreEqual("'WhatTimeIsLove?'", actual);
  608. }
  609. [TestMethod]
  610. public void Semicolon_Embedded()
  611. {
  612. const string path = "Rain;Storm";
  613. var actual = _transformation.Transform(path);
  614. Assert.AreEqual("'Rain;Storm'", actual);
  615. }
  616. [TestMethod]
  617. public void Semicolon_Leading()
  618. {
  619. const string path = ";List";
  620. var actual = _transformation.Transform(path);
  621. Assert.AreEqual("';List'", actual);
  622. }
  623. [TestMethod]
  624. public void Semicolon_LeadingAndTrailing()
  625. {
  626. const string path = ";Trapped;";
  627. var actual = _transformation.Transform(path);
  628. Assert.AreEqual("';Trapped;'", actual);
  629. }
  630. [TestMethod]
  631. public void Semicolon_Trailing()
  632. {
  633. const string path = "Time;";
  634. var actual = _transformation.Transform(path);
  635. Assert.AreEqual("'Time;'", actual);
  636. }
  637. [TestMethod]
  638. public void SingleQuote_Embedded_Single()
  639. {
  640. const string path = "Rain'Storm";
  641. var actual = _transformation.Transform(path);
  642. Assert.AreEqual("'Rain'\"'\"'Storm'", actual);
  643. }
  644. [TestMethod]
  645. public void SingleQuote_Embedded_Sequence()
  646. {
  647. const string path = "Rain''Storm";
  648. var actual = _transformation.Transform(path);
  649. Assert.AreEqual("'Rain'\"''\"'Storm'", actual);
  650. }
  651. [TestMethod]
  652. public void SingleQuote_Leading()
  653. {
  654. const string path = "'List";
  655. var actual = _transformation.Transform(path);
  656. Assert.AreEqual("\"'\"'List'", actual);
  657. }
  658. [TestMethod]
  659. public void SingleQuote_LeadingAndTrailing()
  660. {
  661. const string path = "'Trapped'";
  662. var actual = _transformation.Transform(path);
  663. Assert.AreEqual("\"'\"'Trapped'\"'\"", actual);
  664. }
  665. [TestMethod]
  666. public void SingleQuote_Trailing()
  667. {
  668. const string path = "Time'";
  669. var actual = _transformation.Transform(path);
  670. Assert.AreEqual("'Time'\"'\"", actual);
  671. }
  672. [TestMethod]
  673. public void SingleQuoteAndExclamationMark_Embedded()
  674. {
  675. const string path = "Rain'!Storm";
  676. var actual = _transformation.Transform(path);
  677. Assert.AreEqual("'Rain'\"'\"\\!'Storm'", actual);
  678. }
  679. [TestMethod]
  680. public void SingleQuoteAndExclamationMark_Leading()
  681. {
  682. const string path = "'!Rain";
  683. var actual = _transformation.Transform(path);
  684. Assert.AreEqual("\"'\"\\!'Rain'", actual);
  685. }
  686. [TestMethod]
  687. public void SingleQuoteAndExclamationMark_LeadingAndTrailing()
  688. {
  689. const string path = "'!Rain'!";
  690. var actual = _transformation.Transform(path);
  691. Assert.AreEqual("\"'\"\\!'Rain'\"'\"\\!", actual);
  692. }
  693. [TestMethod]
  694. public void SingleQuoteAndExclamationMark_Trailing()
  695. {
  696. const string path = "Rain'!";
  697. var actual = _transformation.Transform(path);
  698. Assert.AreEqual("'Rain'\"'\"\\!", actual);
  699. }
  700. [TestMethod]
  701. public void Space_Embedded()
  702. {
  703. const string path = "You Me";
  704. var actual = _transformation.Transform(path);
  705. Assert.AreEqual("'You Me'", actual);
  706. }
  707. [TestMethod]
  708. public void Space_Leading()
  709. {
  710. const string path = " Or";
  711. var actual = _transformation.Transform(path);
  712. Assert.AreEqual("' Or'", actual);
  713. }
  714. [TestMethod]
  715. public void Space_LeadingAndTrailing()
  716. {
  717. const string path = " Or ";
  718. var actual = _transformation.Transform(path);
  719. Assert.AreEqual("' Or '", actual);
  720. }
  721. [TestMethod]
  722. public void Space_Trailing()
  723. {
  724. const string path = "And ";
  725. var actual = _transformation.Transform(path);
  726. Assert.AreEqual("'And '", actual);
  727. }
  728. [TestMethod]
  729. public void SquareBrackets_Close_Embedded()
  730. {
  731. const string path = "Halo]Devine";
  732. var actual = _transformation.Transform(path);
  733. Assert.AreEqual("'Halo]Devine'", actual);
  734. }
  735. [TestMethod]
  736. public void SquareBrackets_Close_Leading()
  737. {
  738. const string path = "]Open";
  739. var actual = _transformation.Transform(path);
  740. Assert.AreEqual("']Open'", actual);
  741. }
  742. [TestMethod]
  743. public void SquareBrackets_Close_LeadingAndTrailing()
  744. {
  745. const string path = "]Closed]";
  746. var actual = _transformation.Transform(path);
  747. Assert.AreEqual("']Closed]'", actual);
  748. }
  749. [TestMethod]
  750. public void SquareBrackets_Close_Trailing()
  751. {
  752. const string path = "Finish]";
  753. var actual = _transformation.Transform(path);
  754. Assert.AreEqual("'Finish]'", actual);
  755. }
  756. [TestMethod]
  757. public void SquareBrackets_Open_Embedded()
  758. {
  759. const string path = "Halo[Devine";
  760. var actual = _transformation.Transform(path);
  761. Assert.AreEqual("'Halo[Devine'", actual);
  762. }
  763. [TestMethod]
  764. public void SquareBrackets_Open_Leading()
  765. {
  766. const string path = "[Open";
  767. var actual = _transformation.Transform(path);
  768. Assert.AreEqual("'[Open'", actual);
  769. }
  770. [TestMethod]
  771. public void SquareBrackets_Open_LeadingAndTrailing()
  772. {
  773. const string path = "[Closed[";
  774. var actual = _transformation.Transform(path);
  775. Assert.AreEqual("'[Closed['", actual);
  776. }
  777. [TestMethod]
  778. public void SquareBrackets_Open_Trailing()
  779. {
  780. const string path = "Finish[";
  781. var actual = _transformation.Transform(path);
  782. Assert.AreEqual("'Finish['", actual);
  783. }
  784. [TestMethod]
  785. public void Tab_Embedded()
  786. {
  787. const string path = "You\tMe";
  788. var actual = _transformation.Transform(path);
  789. Assert.AreEqual("'You\tMe'", actual);
  790. }
  791. [TestMethod]
  792. public void Tab_Leading()
  793. {
  794. const string path = "\tOr";
  795. var actual = _transformation.Transform(path);
  796. Assert.AreEqual("'\tOr'", actual);
  797. }
  798. [TestMethod]
  799. public void Tab_LeadingAndTrailing()
  800. {
  801. const string path = "\tOr\t";
  802. var actual = _transformation.Transform(path);
  803. Assert.AreEqual("'\tOr\t'", actual);
  804. }
  805. [TestMethod]
  806. public void Tab_Trailing()
  807. {
  808. const string path = "And\t";
  809. var actual = _transformation.Transform(path);
  810. Assert.AreEqual("'And\t'", actual);
  811. }
  812. [TestMethod]
  813. public void Tilde_Embedded()
  814. {
  815. const string path = "Seven~Nine";
  816. var actual = _transformation.Transform(path);
  817. Assert.AreEqual("'Seven~Nine'", actual);
  818. }
  819. [TestMethod]
  820. public void Tilde_Leading()
  821. {
  822. const string path = "~Ten";
  823. var actual = _transformation.Transform(path);
  824. Assert.AreEqual("'~Ten'", actual);
  825. }
  826. [TestMethod]
  827. public void Tilde_LeadingAndTrailing()
  828. {
  829. const string path = "~One~";
  830. var actual = _transformation.Transform(path);
  831. Assert.AreEqual("'~One~'", actual);
  832. }
  833. [TestMethod]
  834. public void Tilde_Trailing()
  835. {
  836. const string path = "Two~";
  837. var actual = _transformation.Transform(path);
  838. Assert.AreEqual("'Two~'", actual);
  839. }
  840. }
  841. }