RemotePathDoubleQuoteTransformationTest.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 RemotePathDoubleQuoteTransformationTest
  7. {
  8. private IRemotePathTransformation _transformation;
  9. [TestInitialize]
  10. public void SetUp()
  11. {
  12. _transformation = new RemotePathDoubleQuoteTransformation();
  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_Trailing()
  282. {
  283. const string path = "Famous\"";
  284. var actual = _transformation.Transform(path);
  285. Assert.AreEqual("\"Famous\\\"\"", actual);
  286. }
  287. [TestMethod]
  288. public void DoubleQuote_LeadingAndTrailing()
  289. {
  290. const string path = "\"OrNotTo\"";
  291. var actual = _transformation.Transform(path);
  292. Assert.AreEqual("\"\\\"OrNotTo\\\"\"", 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. }