PageRenderTime 38ms CodeModel.GetById 6ms RepoModel.GetById 1ms app.codeStats 0ms

/FluentStrings.Tests/Remove/RemoveStartingToOccurrencePositionTests.cs

http://fluentstrings.codeplex.com
C# | 1097 lines | 933 code | 164 blank | 0 comment | 0 complexity | 56f024f7e82212347bc50d06fee7b89f MD5 | raw file
Possible License(s): CC-BY-SA-3.0

Large files files are truncated, but you can click here to view the full file

  1. using System;
  2. using System.Collections;
  3. using FluentAssertions;
  4. using NUnit.Framework;
  5. namespace dokas.FluentStrings.Tests
  6. {
  7. [TestFixture]
  8. public class RemoveStartingToOccurrencePositionTests
  9. {
  10. #region Remove Starting To Occurrence Position
  11. private class RemoveStartingToOccurrencePositionDataCases : IEnumerable
  12. {
  13. private readonly TestCaseData[] testCaseData = new[]
  14. {
  15. new TestCaseData(null, The.StartOf, null).Returns(null),
  16. new TestCaseData(null, The.EndOf, null).Returns(null),
  17. new TestCaseData(null, The.StartOf, String.Empty).Returns(null),
  18. new TestCaseData(null, The.EndOf, String.Empty).Returns(null),
  19. new TestCaseData(null, The.StartOf, Const.SampleMarker).Returns(null),
  20. new TestCaseData(null, The.EndOf, Const.SampleMarker).Returns(null),
  21. new TestCaseData(String.Empty, The.StartOf, null).Returns(String.Empty),
  22. new TestCaseData(String.Empty, The.EndOf, null).Returns(String.Empty),
  23. new TestCaseData(String.Empty, The.StartOf, String.Empty).Returns(String.Empty),
  24. new TestCaseData(String.Empty, The.EndOf, String.Empty).Returns(String.Empty),
  25. new TestCaseData(String.Empty, The.StartOf, Const.SampleMarker).Returns(String.Empty),
  26. new TestCaseData(String.Empty, The.EndOf, Const.SampleMarker).Returns(String.Empty),
  27. new TestCaseData(Const.SampleString, The.StartOf, null).Returns(Const.SampleString),
  28. new TestCaseData(Const.SampleString, The.EndOf, null).Returns(Const.SampleString),
  29. new TestCaseData(Const.SampleString, The.StartOf, String.Empty).Returns(Const.SampleString),
  30. new TestCaseData(Const.SampleString, The.EndOf, String.Empty).Returns(Const.SampleString),
  31. new TestCaseData("Some string", The.StartOf, Const.SampleMarker).Returns("Som"),
  32. new TestCaseData("Some string", The.EndOf, Const.SampleMarker).Returns("Som"),
  33. new TestCaseData(Const.SampleString, The.Beginning, String.Empty).Throws(typeof(ArgumentOutOfRangeException)),
  34. new TestCaseData(Const.SampleString, The.End, String.Empty).Throws(typeof(ArgumentOutOfRangeException))
  35. };
  36. public IEnumerator GetEnumerator()
  37. {
  38. return testCaseData.GetEnumerator();
  39. }
  40. }
  41. [TestCaseSource(typeof(RemoveStartingToOccurrencePositionDataCases))]
  42. public string RemoveStartingToOccurrencePositionExtremeCases(string source, The toPosition, string toMarker)
  43. {
  44. return source.Remove().Starting(position: 3).To(toPosition, 1, of: toMarker);
  45. }
  46. [Test]
  47. public void RemoveStartingNegativeCharacterPositionToOccurrencePositionOfMarker()
  48. {
  49. Action action = () => Const.SampleString.Remove().Starting(-4).To(The.StartOf, 2, Const.SampleMarker).ToString();
  50. action.ShouldThrow<ArgumentOutOfRangeException>();
  51. }
  52. [Test]
  53. public void RemoveStartingCharacterToNegativeOccurrencePositionOfMarker()
  54. {
  55. Action action = () => Const.SampleString.Remove().Starting(3).To(The.EndOf, -2, Const.SampleMarker).ToString();
  56. action.ShouldThrow<ArgumentOutOfRangeException>();
  57. }
  58. [Test]
  59. public void RemoveStartingCharacterExceedingLengthToOccurrencePositionOfMarker()
  60. {
  61. string transformed = Const.SampleString.Remove().Starting(250).To(The.StartOf, 2, Const.SampleMarker);
  62. transformed.Should().Be(Const.SampleString);
  63. }
  64. [Test]
  65. public void RemoveStartingCharacterToZeroOccurrencePositionOfMarker()
  66. {
  67. string transformed = "Some very long string with marker and another marker".Remove().Starting(1).To(The.StartOf, 0, "marker");
  68. transformed.Should().Be("S");
  69. }
  70. [Test]
  71. public void RemoveStartingCharacterToExceedingOccurrencePositionOfMarker()
  72. {
  73. string transformed = "Some very long string with marker and another marker".Remove().Starting(1).To(The.StartOf, 10, "marker");
  74. transformed.Should().Be("S");
  75. }
  76. [Test]
  77. public void RemoveStartingCharacterToOccurrencePositionOfMarker()
  78. {
  79. string transformed = "Some very long string with marker and another marker".Remove().Starting(0).To(The.StartOf, 1, "marker");
  80. transformed.Should().Be("marker and another marker");
  81. transformed = "Some very long string with marker and markers and markable words".Remove().Starting(5).To(The.EndOf, 3, "mark");
  82. transformed.Should().Be("Some able words");
  83. transformed = "Some very 'marker' long string with marker".Remove().Starting(10).To(The.StartOf, 2, "marker");
  84. transformed.Should().Be("Some very marker");
  85. }
  86. #endregion
  87. #region Remove Starting To Occurrence Position From
  88. private class RemoveStartingToOccurrencePositionFromDataCases : IEnumerable
  89. {
  90. private readonly TestCaseData[] testCaseData = new[]
  91. {
  92. new TestCaseData(null, The.StartOf, null, The.Beginning).Returns(null),
  93. new TestCaseData(null, The.EndOf, null, The.Beginning).Returns(null),
  94. new TestCaseData(null, The.StartOf, null, The.End).Returns(null),
  95. new TestCaseData(null, The.EndOf, null, The.End).Returns(null),
  96. new TestCaseData(null, The.StartOf, String.Empty, The.Beginning).Returns(null),
  97. new TestCaseData(null, The.EndOf, String.Empty, The.Beginning).Returns(null),
  98. new TestCaseData(null, The.StartOf, String.Empty, The.End).Returns(null),
  99. new TestCaseData(null, The.EndOf, String.Empty, The.End).Returns(null),
  100. new TestCaseData(null, The.StartOf, Const.SampleMarker, The.Beginning).Returns(null),
  101. new TestCaseData(null, The.EndOf, Const.SampleMarker, The.Beginning).Returns(null),
  102. new TestCaseData(null, The.StartOf, Const.SampleMarker, The.End).Returns(null),
  103. new TestCaseData(null, The.EndOf, Const.SampleMarker, The.End).Returns(null),
  104. new TestCaseData(String.Empty, The.StartOf, null, The.Beginning).Returns(String.Empty),
  105. new TestCaseData(String.Empty, The.EndOf, null, The.Beginning).Returns(String.Empty),
  106. new TestCaseData(String.Empty, The.StartOf, null, The.End).Returns(String.Empty),
  107. new TestCaseData(String.Empty, The.EndOf, null, The.End).Returns(String.Empty),
  108. new TestCaseData(String.Empty, The.StartOf, String.Empty, The.Beginning).Returns(String.Empty),
  109. new TestCaseData(String.Empty, The.EndOf, String.Empty, The.Beginning).Returns(String.Empty),
  110. new TestCaseData(String.Empty, The.StartOf, String.Empty, The.End).Returns(String.Empty),
  111. new TestCaseData(String.Empty, The.EndOf, String.Empty, The.End).Returns(String.Empty),
  112. new TestCaseData(String.Empty, The.StartOf, Const.SampleMarker, The.Beginning).Returns(String.Empty),
  113. new TestCaseData(String.Empty, The.EndOf, Const.SampleMarker, The.Beginning).Returns(String.Empty),
  114. new TestCaseData(String.Empty, The.StartOf, Const.SampleMarker, The.End).Returns(String.Empty),
  115. new TestCaseData(String.Empty, The.EndOf, Const.SampleMarker, The.End).Returns(String.Empty),
  116. new TestCaseData(Const.SampleString, The.StartOf, null, The.Beginning).Returns(Const.SampleString),
  117. new TestCaseData(Const.SampleString, The.EndOf, null, The.Beginning).Returns(Const.SampleString),
  118. new TestCaseData(Const.SampleString, The.StartOf, null, The.End).Returns(Const.SampleString),
  119. new TestCaseData(Const.SampleString, The.EndOf, null, The.End).Returns(Const.SampleString),
  120. new TestCaseData(Const.SampleString, The.StartOf, String.Empty, The.Beginning).Returns(Const.SampleString),
  121. new TestCaseData(Const.SampleString, The.EndOf, String.Empty, The.Beginning).Returns(Const.SampleString),
  122. new TestCaseData(Const.SampleString, The.StartOf, String.Empty, The.End).Returns(Const.SampleString),
  123. new TestCaseData(Const.SampleString, The.EndOf, String.Empty, The.End).Returns(Const.SampleString),
  124. new TestCaseData("Some string", The.StartOf, Const.SampleMarker, The.Beginning).Returns("Som"),
  125. new TestCaseData("Some string", The.EndOf, Const.SampleMarker, The.Beginning).Returns("Som"),
  126. new TestCaseData("Some string", The.StartOf, Const.SampleMarker, The.End).Returns("Som"),
  127. new TestCaseData("Some string", The.EndOf, Const.SampleMarker, The.End).Returns("Som"),
  128. new TestCaseData(Const.SampleString, The.Beginning, Const.SampleMarker, The.Beginning).Throws(typeof(ArgumentOutOfRangeException)),
  129. new TestCaseData(Const.SampleString, The.End, Const.SampleMarker, The.End).Throws(typeof(ArgumentOutOfRangeException)),
  130. new TestCaseData(Const.SampleString, The.StartOf, Const.SampleMarker, The.StartOf).Throws(typeof(ArgumentOutOfRangeException)),
  131. new TestCaseData(Const.SampleString, The.EndOf, Const.SampleMarker, The.EndOf).Throws(typeof(ArgumentOutOfRangeException))
  132. };
  133. public IEnumerator GetEnumerator()
  134. {
  135. return testCaseData.GetEnumerator();
  136. }
  137. }
  138. [TestCaseSource(typeof(RemoveStartingToOccurrencePositionFromDataCases))]
  139. public string RemoveStartingToOccurrencePositionFromExtremeCases(string source, The toPosition, string toMarker, The toFrom)
  140. {
  141. return source.Remove().Starting(position: 3).To(toPosition, 1, of: toMarker).From(toFrom);
  142. }
  143. [Test]
  144. public void RemoveStartingNegativeCharacterPositionToOccurrencePositionOfMarkerFromBeginning()
  145. {
  146. Action action = () => Const.SampleString.Remove().Starting(-4).To(The.EndOf, 2, Const.SampleMarker).From(The.Beginning).ToString();
  147. action.ShouldThrow<ArgumentOutOfRangeException>();
  148. }
  149. [Test]
  150. public void RemoveStartingNegativeCharacterPositionToOccurrencePositionOfMarkerFromEnd()
  151. {
  152. Action action = () => Const.SampleString.Remove().Starting(-4).To(The.StartOf, 2, Const.SampleMarker).From(The.End).ToString();
  153. action.ShouldThrow<ArgumentOutOfRangeException>();
  154. }
  155. [Test]
  156. public void RemoveStartingCharacterToNegativeOccurrencePositionOfMarkerFromBeginning()
  157. {
  158. Action action = () => Const.SampleString.Remove().Starting(3).To(The.StartOf, -2, Const.SampleMarker).From(The.Beginning).ToString();
  159. action.ShouldThrow<ArgumentOutOfRangeException>();
  160. }
  161. [Test]
  162. public void RemoveStartingCharacterToNegativeOccurrencePositionOfMarkerFromEnd()
  163. {
  164. Action action = () => Const.SampleString.Remove().Starting(3).To(The.EndOf, -2, Const.SampleMarker).From(The.End).ToString();
  165. action.ShouldThrow<ArgumentOutOfRangeException>();
  166. }
  167. [Test]
  168. public void RemoveStartingCharacterExceedingLengthToOccurrencePositionOfMarkerFromBeginning()
  169. {
  170. string transformed = Const.SampleString.Remove().Starting(250).To(The.StartOf, 2, Const.SampleMarker).From(The.Beginning);
  171. transformed.Should().Be(Const.SampleString);
  172. }
  173. [Test]
  174. public void RemoveStartingCharacterExceedingLengthToOccurrencePositionOfMarkerFromEnd()
  175. {
  176. string transformed = Const.SampleString.Remove().Starting(250).To(The.StartOf, 2, Const.SampleMarker).From(The.End);
  177. transformed.Should().Be(Const.SampleString);
  178. }
  179. [Test]
  180. public void RemoveStartingCharacterToZeroOccurrencePositionOfMarkerFromBeginning()
  181. {
  182. string transformed = "Some very long string with marker and another marker".Remove().Starting(1).To(The.StartOf, 0, "marker").From(The.Beginning);
  183. transformed.Should().Be("S");
  184. }
  185. [Test]
  186. public void RemoveStartingCharacterToZeroOccurrencePositionOfMarkerFromEnd()
  187. {
  188. string transformed = "Some very long string with marker and another marker".Remove().Starting(1).To(The.EndOf, 0, "marker").From(The.End);
  189. transformed.Should().Be("S");
  190. }
  191. [Test]
  192. public void RemoveStartingCharacterToExceedingOccurrencePositionOfMarkerFromBeginning()
  193. {
  194. string transformed = "Some very long string with marker and another marker".Remove().Starting(1).To(The.StartOf, 10, "marker").From(The.Beginning);
  195. transformed.Should().Be("S");
  196. }
  197. [Test]
  198. public void RemoveStartingCharacterToExceedingOccurrencePositionOfMarkerFromEnd()
  199. {
  200. string transformed = "Some very long string with marker and another marker".Remove().Starting(1).To(The.EndOf, 10, "marker").From(The.End);
  201. transformed.Should().Be("S");
  202. }
  203. [Test]
  204. public void RemoveStartingCharacterToOccurrencePositionOfMarkerFromBeginning()
  205. {
  206. string transformed = "Some very long string with marker and another marker".Remove().Starting(0).To(The.StartOf, 1, "marker").From(The.Beginning);
  207. transformed.Should().Be("marker and another marker");
  208. transformed = "Some very long string with marker and markers and markable words".Remove().Starting(5).To(The.EndOf, 3, "mark").From(The.Beginning);
  209. transformed.Should().Be("Some able words");
  210. transformed = "Some very 'marker' long string with marker".Remove().Starting(10).To(The.StartOf, 2, "marker").From(The.Beginning);
  211. transformed.Should().Be("Some very marker");
  212. }
  213. [Test]
  214. public void RemoveStartingCharacterToOccurrencePositionOfMarkerFromEnd()
  215. {
  216. string transformed = "Some very long string with marker and another marker".Remove().Starting(0).To(The.StartOf, 1, "marker").From(The.End);
  217. transformed.Should().Be("marker");
  218. transformed = "Some very long string with marker and markers and markable words".Remove().Starting(5).To(The.EndOf, 3, "mark").From(The.End);
  219. transformed.Should().Be("Some er and markers and markable words");
  220. transformed = "Some very 'marker' long string with marker".Remove().Starting(10).To(The.EndOf, 1, "marker").From(The.End);
  221. transformed.Should().Be("Some very ");
  222. }
  223. #endregion
  224. #region Remove Starting To Occurrence Position Ignoring Case
  225. [TestCaseSource(typeof(RemoveStartingToOccurrencePositionDataCases))]
  226. public string RemoveStartingToOccurrencePositionIgnoringCaseExtremeCases(string source, The toPosition, string toMarker)
  227. {
  228. return source.Remove().Starting(position: 3).To(toPosition, 3, of: toMarker).IgnoringCase();
  229. }
  230. [Test]
  231. public void RemoveStartingNegativeCharacterPositionToOccurrencePositionOfMarkerIgnoringCase()
  232. {
  233. Action action = () => Const.SampleString.Remove().Starting(-4).To(The.StartOf, 2, Const.SampleMarker).IgnoringCase().ToString();
  234. action.ShouldThrow<ArgumentOutOfRangeException>();
  235. }
  236. [Test]
  237. public void RemoveStartingCharacterToNegativeOccurrencePositionOfMarkerIgnoringCase()
  238. {
  239. Action action = () => Const.SampleString.Remove().Starting(3).To(The.StartOf, -2, Const.SampleMarker).IgnoringCase().ToString();
  240. action.ShouldThrow<ArgumentOutOfRangeException>();
  241. }
  242. [Test]
  243. public void RemoveStartingCharacterExceedingLengthToOccurrencePositionOfMarkerIgnoringCase()
  244. {
  245. string transformed = Const.SampleString.Remove().Starting(250).To(The.EndOf, 2, Const.SampleMarker).IgnoringCase();
  246. transformed.Should().Be(Const.SampleString);
  247. }
  248. [Test]
  249. public void RemoveStartingCharacterToZeroOccurrencePositionOfMarkerIgnoringCase()
  250. {
  251. string transformed = "Some very long string with marker and another MARKER".Remove().Starting(1).To(The.StartOf, 0, "marker").IgnoringCase();
  252. transformed.Should().Be("S");
  253. }
  254. [Test]
  255. public void RemoveStartingCharacterToExceedingOccurrencePositionOfMarkerIgnoringCase()
  256. {
  257. string transformed = "Some very long string with marker and another marker".Remove().Starting(1).To(The.EndOf, 10, "MARKER").IgnoringCase();
  258. transformed.Should().Be("S");
  259. }
  260. [Test]
  261. public void RemoveStartingCharacterToOccurrencePositionOfMarkerIgnoringCase()
  262. {
  263. string transformed = "Some very long string with maRKer and another marker".Remove().Starting(0).To(The.StartOf, 1, "MARker").IgnoringCase();
  264. transformed.Should().Be("maRKer and another marker");
  265. transformed = "Some very long string with mARKer and marKERs and Markable words".Remove().Starting(5).To(The.EndOf, 3, "mARk").IgnoringCase();
  266. transformed.Should().Be("Some able words");
  267. transformed = "Some very 'marker' long string with marker".Remove().Starting(10).To(The.StartOf, 2, "MARKER").IgnoringCase();
  268. transformed.Should().Be("Some very marker");
  269. }
  270. #endregion
  271. #region Remove Starting To Occurrence Position Ignoring Case From
  272. [TestCaseSource(typeof(RemoveStartingToOccurrencePositionFromDataCases))]
  273. public string RemoveStartingToOccurrencePositionIgnoringCaseFromExtremeCases(string source, The toPosition, string toMarker, The toFrom)
  274. {
  275. return source.Remove().Starting(position: 3).To(toPosition, 2, of: toMarker).IgnoringCase().From(toFrom);
  276. }
  277. [Test]
  278. public void RemoveStartingNegativeCharacterPositionToOccurrencePositionOfMarkerIgnoringCaseFromBeginning()
  279. {
  280. Action action = () => Const.SampleString.Remove().Starting(-4).To(The.StartOf, 2, Const.SampleMarker).IgnoringCase().From(The.Beginning).ToString();
  281. action.ShouldThrow<ArgumentOutOfRangeException>();
  282. }
  283. [Test]
  284. public void RemoveStartingNegativeCharacterPositionToOccurrencePositionOfMarkerIgnoringCaseFromEnd()
  285. {
  286. Action action = () => Const.SampleString.Remove().Starting(-4).To(The.StartOf, 2, Const.SampleMarker).IgnoringCase().From(The.End).ToString();
  287. action.ShouldThrow<ArgumentOutOfRangeException>();
  288. }
  289. [Test]
  290. public void RemoveStartingCharacterToNegativeOccurrencePositionOfMarkerIgnoringCaseFromBeginning()
  291. {
  292. Action action = () => Const.SampleString.Remove().Starting(3).To(The.EndOf, -2, Const.SampleMarker).IgnoringCase().From(The.Beginning).ToString();
  293. action.ShouldThrow<ArgumentOutOfRangeException>();
  294. }
  295. [Test]
  296. public void RemoveStartingCharacterToNegativeOccurrencePositionOfMarkerIgnoringCaseFromEnd()
  297. {
  298. Action action = () => Const.SampleString.Remove().Starting(3).To(The.EndOf, -2, Const.SampleMarker).IgnoringCase().From(The.End).ToString();
  299. action.ShouldThrow<ArgumentOutOfRangeException>();
  300. }
  301. [Test]
  302. public void RemoveStartingCharacterExceedingLengthToOccurrencePositionOfMarkerIgnoringCaseFromBeginning()
  303. {
  304. string transformed = Const.SampleString.Remove().Starting(250).To(The.StartOf, 2, Const.SampleMarker).IgnoringCase().From(The.Beginning);
  305. transformed.Should().Be(Const.SampleString);
  306. }
  307. [Test]
  308. public void RemoveStartingCharacterExceedingLengthToOccurrencePositionOfMarkerIgnoringCaseFromEnd()
  309. {
  310. string transformed = Const.SampleString.Remove().Starting(250).To(The.EndOf, 2, Const.SampleMarker).IgnoringCase().From(The.End);
  311. transformed.Should().Be(Const.SampleString);
  312. }
  313. [Test]
  314. public void RemoveStartingCharacterToZeroOccurrencePositionOfMarkerIgnoringCaseFromBeginning()
  315. {
  316. string transformed = "Some very long string with marker and another MARKER".Remove().Starting(1).To(The.EndOf, 0, "marker").IgnoringCase().From(The.Beginning);
  317. transformed.Should().Be("S");
  318. }
  319. [Test]
  320. public void RemoveStartingCharacterToZeroOccurrencePositionOfMarkerIgnoringCaseFromEnd()
  321. {
  322. string transformed = "Some very long string with marker and another MARKER".Remove().Starting(1).To(The.StartOf, 0, "marker").IgnoringCase().From(The.End);
  323. transformed.Should().Be("S");
  324. }
  325. [Test]
  326. public void RemoveStartingCharacterToExceedingOccurrencePositionOfMarkerIgnoringCaseFromBeginning()
  327. {
  328. string transformed = "Some very long string with marker and another marker".Remove().Starting(1).To(The.EndOf, 10, "MARKER").IgnoringCase().From(The.Beginning);
  329. transformed.Should().Be("S");
  330. }
  331. [Test]
  332. public void RemoveStartingCharacterToExceedingOccurrencePositionOfMarkerIgnoringCaseFromEnd()
  333. {
  334. string transformed = "Some very long string with marker and another marker".Remove().Starting(1).To(The.StartOf, 10, "MARKER").IgnoringCase().From(The.End);
  335. transformed.Should().Be("S");
  336. }
  337. [Test]
  338. public void RemoveStartingCharacterToOccurrencePositionOfMarkerIgnoringCaseFromBeginning()
  339. {
  340. string transformed = "Some very long string with maRKer and another marker".Remove().Starting(0).To(The.StartOf, 1, "MARker").IgnoringCase().From(The.Beginning);
  341. transformed.Should().Be("maRKer and another marker");
  342. transformed = "Some very long string with mARKer and marKERs and Markable words".Remove().Starting(5).To(The.EndOf, 3, "mARk").IgnoringCase().From(The.Beginning);
  343. transformed.Should().Be("Some able words");
  344. transformed = "Some very 'marker' long string with marker".Remove().Starting(10).To(The.StartOf, 2, "MARKER").IgnoringCase().From(The.Beginning);
  345. transformed.Should().Be("Some very marker");
  346. }
  347. [Test]
  348. public void RemoveStartingCharacterToOccurrencePositionOfMarkerIgnoringCaseFromEnd()
  349. {
  350. string transformed = "Some very long string with maRKer and another marker".Remove().Starting(0).To(The.StartOf, 1, "MARker").IgnoringCase().From(The.End);
  351. transformed.Should().Be("marker");
  352. transformed = "Some very long string with mARKer and marKERs and Markable words".Remove().Starting(5).To(The.EndOf, 3, "mARk").IgnoringCase().From(The.End);
  353. transformed.Should().Be("Some er and marKERs and Markable words");
  354. transformed = "Some very 'marker' long string with marker".Remove().Starting(10).To(The.StartOf, 2, "MARKER").IgnoringCase().From(The.End);
  355. transformed.Should().Be("Some very marker' long string with marker");
  356. }
  357. #endregion
  358. #region Remove Starting From To Occurrence Position
  359. private class RemoveStartingFromToOccurrencePositionDataCases : IEnumerable
  360. {
  361. private readonly TestCaseData[] testCaseData = new[]
  362. {
  363. new TestCaseData(null, The.Beginning, The.StartOf, null).Returns(null),
  364. new TestCaseData(null, The.Beginning, The.EndOf, null).Returns(null),
  365. new TestCaseData(null, The.End, The.StartOf, null).Returns(null),
  366. new TestCaseData(null, The.End, The.EndOf, null).Returns(null),
  367. new TestCaseData(null, The.Beginning, The.StartOf, String.Empty).Returns(null),
  368. new TestCaseData(null, The.Beginning, The.EndOf, String.Empty).Returns(null),
  369. new TestCaseData(null, The.End, The.StartOf, String.Empty).Returns(null),
  370. new TestCaseData(null, The.End, The.EndOf, String.Empty).Returns(null),
  371. new TestCaseData(null, The.Beginning, The.StartOf, Const.SampleMarker).Returns(null),
  372. new TestCaseData(null, The.Beginning, The.EndOf, Const.SampleMarker).Returns(null),
  373. new TestCaseData(null, The.End, The.StartOf, Const.SampleMarker).Returns(null),
  374. new TestCaseData(null, The.End, The.EndOf, Const.SampleMarker).Returns(null),
  375. new TestCaseData(String.Empty, The.Beginning, The.StartOf, null).Returns(String.Empty),
  376. new TestCaseData(String.Empty, The.Beginning, The.EndOf, null).Returns(String.Empty),
  377. new TestCaseData(String.Empty, The.End, The.StartOf, null).Returns(String.Empty),
  378. new TestCaseData(String.Empty, The.End, The.EndOf, null).Returns(String.Empty),
  379. new TestCaseData(String.Empty, The.Beginning, The.StartOf, String.Empty).Returns(String.Empty),
  380. new TestCaseData(String.Empty, The.Beginning, The.EndOf, String.Empty).Returns(String.Empty),
  381. new TestCaseData(String.Empty, The.End, The.StartOf, String.Empty).Returns(String.Empty),
  382. new TestCaseData(String.Empty, The.End, The.EndOf, String.Empty).Returns(String.Empty),
  383. new TestCaseData(String.Empty, The.Beginning, The.StartOf, Const.SampleMarker).Returns(String.Empty),
  384. new TestCaseData(String.Empty, The.Beginning, The.EndOf, Const.SampleMarker).Returns(String.Empty),
  385. new TestCaseData(String.Empty, The.End, The.StartOf, Const.SampleMarker).Returns(String.Empty),
  386. new TestCaseData(String.Empty, The.End, The.EndOf, Const.SampleMarker).Returns(String.Empty),
  387. new TestCaseData(Const.SampleString, The.Beginning, The.StartOf, null).Returns(Const.SampleString),
  388. new TestCaseData(Const.SampleString, The.Beginning, The.EndOf, null).Returns(Const.SampleString),
  389. new TestCaseData(Const.SampleString, The.End, The.StartOf, null).Returns(Const.SampleString),
  390. new TestCaseData(Const.SampleString, The.End, The.EndOf, null).Returns(Const.SampleString),
  391. new TestCaseData(Const.SampleString, The.Beginning, The.StartOf, String.Empty).Returns(Const.SampleString),
  392. new TestCaseData(Const.SampleString, The.Beginning, The.EndOf, String.Empty).Returns(Const.SampleString),
  393. new TestCaseData(Const.SampleString, The.End, The.StartOf, String.Empty).Returns(Const.SampleString),
  394. new TestCaseData(Const.SampleString, The.End, The.EndOf, String.Empty).Returns(Const.SampleString),
  395. new TestCaseData("Some string", The.Beginning, The.StartOf, Const.SampleMarker).Returns("So"),
  396. new TestCaseData("Some string", The.Beginning, The.EndOf, Const.SampleMarker).Returns("So"),
  397. new TestCaseData("Some string", The.End, The.StartOf, Const.SampleMarker).Returns("ng"),
  398. new TestCaseData("Some string", The.End, The.EndOf, Const.SampleMarker).Returns("ng"),
  399. new TestCaseData(Const.SampleString, The.End, The.Beginning, String.Empty).Throws(typeof(ArgumentOutOfRangeException)),
  400. new TestCaseData(Const.SampleString, The.Beginning, The.End, String.Empty).Throws(typeof(ArgumentOutOfRangeException)),
  401. new TestCaseData(Const.SampleString, The.EndOf, The.Beginning, String.Empty).Throws(typeof(ArgumentOutOfRangeException)),
  402. new TestCaseData(Const.SampleString, The.StartOf, The.End, String.Empty).Throws(typeof(ArgumentOutOfRangeException))
  403. };
  404. public IEnumerator GetEnumerator()
  405. {
  406. return testCaseData.GetEnumerator();
  407. }
  408. }
  409. [TestCaseSource(typeof(RemoveStartingFromToOccurrencePositionDataCases))]
  410. public string RemoveStartingFromToOccurrencePositionExtremeCases(string source, The startingFrom, The toPosition, string toMarker)
  411. {
  412. return source.Remove().Starting(position: 2).From(startingFrom).To(toPosition, 1, of: toMarker);
  413. }
  414. [Test]
  415. public void RemoveStartingNegativeCharacterPositionFromBeginningToOccurrencePositionOfMarker()
  416. {
  417. Action action = () => Const.SampleString.Remove().Starting(-4).From(The.Beginning).To(The.StartOf, 2, Const.SampleMarker).ToString();
  418. action.ShouldThrow<ArgumentOutOfRangeException>();
  419. }
  420. [Test]
  421. public void RemoveStartingNegativeCharacterPositionFromEndToOccurrencePositionOfMarker()
  422. {
  423. Action action = () => Const.SampleString.Remove().Starting(-4).From(The.End).To(The.EndOf, 2, Const.SampleMarker).ToString();
  424. action.ShouldThrow<ArgumentOutOfRangeException>();
  425. }
  426. [Test]
  427. public void RemoveStartingCharacterFromBeginningToNegativeOccurrencePositionOfMarker()
  428. {
  429. Action action = () => Const.SampleString.Remove().Starting(3).From(The.Beginning).To(The.StartOf, -2, Const.SampleMarker).ToString();
  430. action.ShouldThrow<ArgumentOutOfRangeException>();
  431. }
  432. [Test]
  433. public void RemoveStartingCharacterFromEndToNegativeOccurrencePositionOfMarker()
  434. {
  435. Action action = () => Const.SampleString.Remove().Starting(3).From(The.End).To(The.StartOf, -2, Const.SampleMarker).ToString();
  436. action.ShouldThrow<ArgumentOutOfRangeException>();
  437. }
  438. [Test]
  439. public void RemoveStartingCharacterExceedingLengthFromBeginningToOccurrencePositionOfMarker()
  440. {
  441. string transformed = Const.SampleString.Remove().Starting(250).From(The.Beginning).To(The.EndOf, 2, Const.SampleMarker);
  442. transformed.Should().Be(Const.SampleString);
  443. }
  444. [Test]
  445. public void RemoveStartingCharacterExceedingLengthFromEndToOccurrencePositionOfMarker()
  446. {
  447. string transformed = Const.SampleString.Remove().Starting(250).From(The.End).To(The.StartOf, 2, Const.SampleMarker);
  448. transformed.Should().Be(Const.SampleString);
  449. }
  450. [Test]
  451. public void RemoveStartingCharacterFromBeginningToZeroOccurrencePositionOfMarker()
  452. {
  453. string transformed = "Some very long string with marker and another marker".Remove().Starting(1).From(The.Beginning).To(The.StartOf, 0, "marker");
  454. transformed.Should().Be("S");
  455. }
  456. [Test]
  457. public void RemoveStartingCharacterFromEndToZeroOccurrencePositionOfMarker()
  458. {
  459. string transformed = "Some very long string with marker and another marker".Remove().Starting(1).From(The.End).To(The.EndOf, 0, "marker");
  460. transformed.Should().Be("r");
  461. }
  462. [Test]
  463. public void RemoveStartingCharacterFromBeginningToOccurrencePositionOfMarker()
  464. {
  465. string transformed = "Some very long string with marker and another marker".Remove().Starting(0).From(The.Beginning).To(The.StartOf, 1, "marker");
  466. transformed.Should().Be("marker and another marker");
  467. transformed = "Some very long string with marker and markers and markable words".Remove().Starting(5).From(The.Beginning).To(The.EndOf, 3, "mark");
  468. transformed.Should().Be("Some able words");
  469. transformed = "Some very 'marker' long string with marker".Remove().Starting(10).From(The.Beginning).To(The.StartOf, 2, "marker");
  470. transformed.Should().Be("Some very marker");
  471. }
  472. [Test]
  473. public void RemoveStartingCharacterFromEndToOccurrencePositionOfMarker()
  474. {
  475. string transformed = "Some very long string with marker and another marker".Remove().Starting(0).From(The.End).To(The.StartOf, 1, "marker");
  476. transformed.Should().Be("Some very long string with ");
  477. transformed = "Some very long string with marker and markers and markable words".Remove().Starting(5).From(The.End).To(The.StartOf, 3, "mark");
  478. transformed.Should().Be("Some very long string with marker and markers and words");
  479. transformed = "Some very 'marker' long string with marker".Remove().Starting(10).From(The.End).To(The.StartOf, 2, "marker");
  480. transformed.Should().Be("Some very 'marker' long string marker");
  481. }
  482. #endregion
  483. #region Remove Starting From To Occurrence Position From
  484. private class RemoveStartingFromToOccurrencePositionFromDataCases : IEnumerable
  485. {
  486. private readonly TestCaseData[] testCaseData = new[]
  487. {
  488. new TestCaseData(null, The.Beginning, The.StartOf, null, The.Beginning).Returns(null),
  489. new TestCaseData(null, The.Beginning, The.EndOf, null, The.Beginning).Returns(null),
  490. new TestCaseData(null, The.Beginning, The.StartOf, null, The.End).Returns(null),
  491. new TestCaseData(null, The.Beginning, The.EndOf, null, The.End).Returns(null),
  492. new TestCaseData(null, The.End, The.StartOf, null, The.Beginning).Returns(null),
  493. new TestCaseData(null, The.End, The.EndOf, null, The.Beginning).Returns(null),
  494. new TestCaseData(null, The.End, The.StartOf, null, The.End).Returns(null),
  495. new TestCaseData(null, The.End, The.EndOf, null, The.End).Returns(null),
  496. new TestCaseData(null, The.Beginning, The.StartOf, String.Empty, The.Beginning).Returns(null),
  497. new TestCaseData(null, The.Beginning, The.EndOf, String.Empty, The.Beginning).Returns(null),
  498. new TestCaseData(null, The.Beginning, The.StartOf, String.Empty, The.End).Returns(null),
  499. new TestCaseData(null, The.Beginning, The.EndOf, String.Empty, The.End).Returns(null),
  500. new TestCaseData(null, The.End, The.StartOf, String.Empty, The.Beginning).Returns(null),
  501. new TestCaseData(null, The.End, The.EndOf, String.Empty, The.Beginning).Returns(null),
  502. new TestCaseData(null, The.End, The.StartOf, String.Empty, The.End).Returns(null),
  503. new TestCaseData(null, The.End, The.EndOf, String.Empty, The.End).Returns(null),
  504. new TestCaseData(null, The.Beginning, The.StartOf, Const.SampleMarker, The.Beginning).Returns(null),
  505. new TestCaseData(null, The.Beginning, The.EndOf, Const.SampleMarker, The.Beginning).Returns(null),
  506. new TestCaseData(null, The.Beginning, The.StartOf, Const.SampleMarker, The.End).Returns(null),
  507. new TestCaseData(null, The.Beginning, The.EndOf, Const.SampleMarker, The.End).Returns(null),
  508. new TestCaseData(null, The.End, The.StartOf, Const.SampleMarker, The.Beginning).Returns(null),
  509. new TestCaseData(null, The.End, The.EndOf, Const.SampleMarker, The.Beginning).Returns(null),
  510. new TestCaseData(null, The.End, The.StartOf, Const.SampleMarker, The.End).Returns(null),
  511. new TestCaseData(null, The.End, The.EndOf, Const.SampleMarker, The.End).Returns(null),
  512. new TestCaseData(String.Empty, The.Beginning, The.StartOf, null, The.Beginning).Returns(String.Empty),
  513. new TestCaseData(String.Empty, The.Beginning, The.EndOf, null, The.Beginning).Returns(String.Empty),
  514. new TestCaseData(String.Empty, The.Beginning, The.StartOf, null, The.End).Returns(String.Empty),
  515. new TestCaseData(String.Empty, The.Beginning, The.EndOf, null, The.End).Returns(String.Empty),
  516. new TestCaseData(String.Empty, The.End, The.StartOf, null, The.Beginning).Returns(String.Empty),
  517. new TestCaseData(String.Empty, The.End, The.EndOf, null, The.Beginning).Returns(String.Empty),
  518. new TestCaseData(String.Empty, The.End, The.StartOf, null, The.End).Returns(String.Empty),
  519. new TestCaseData(String.Empty, The.End, The.EndOf, null, The.End).Returns(String.Empty),
  520. new TestCaseData(String.Empty, The.Beginning, The.StartOf, String.Empty, The.Beginning).Returns(String.Empty),
  521. new TestCaseData(String.Empty, The.Beginning, The.EndOf, String.Empty, The.Beginning).Returns(String.Empty),
  522. new TestCaseData(String.Empty, The.Beginning, The.StartOf, String.Empty, The.End).Returns(String.Empty),
  523. new TestCaseData(String.Empty, The.Beginning, The.EndOf, String.Empty, The.End).Returns(String.Empty),
  524. new TestCaseData(String.Empty, The.End, The.StartOf, String.Empty, The.Beginning).Returns(String.Empty),
  525. new TestCaseData(String.Empty, The.End, The.EndOf, String.Empty, The.Beginning).Returns(String.Empty),
  526. new TestCaseData(String.Empty, The.End, The.StartOf, String.Empty, The.End).Returns(String.Empty),
  527. new TestCaseData(String.Empty, The.End, The.EndOf, String.Empty, The.End).Returns(String.Empty),
  528. new TestCaseData(String.Empty, The.Beginning, The.StartOf, Const.SampleMarker, The.Beginning).Returns(String.Empty),
  529. new TestCaseData(String.Empty, The.Beginning, The.EndOf, Const.SampleMarker, The.Beginning).Returns(String.Empty),
  530. new TestCaseData(String.Empty, The.Beginning, The.StartOf, Const.SampleMarker, The.End).Returns(String.Empty),
  531. new TestCaseData(String.Empty, The.Beginning, The.EndOf, Const.SampleMarker, The.End).Returns(String.Empty),
  532. new TestCaseData(String.Empty, The.End, The.StartOf, Const.SampleMarker, The.Beginning).Returns(String.Empty),
  533. new TestCaseData(String.Empty, The.End, The.EndOf, Const.SampleMarker, The.Beginning).Returns(String.Empty),
  534. new TestCaseData(String.Empty, The.End, The.StartOf, Const.SampleMarker, The.End).Returns(String.Empty),
  535. new TestCaseData(String.Empty, The.End, The.EndOf, Const.SampleMarker, The.End).Returns(String.Empty),
  536. new TestCaseData(Const.SampleString, The.Beginning, The.StartOf, null, The.Beginning).Returns(Const.SampleString),
  537. new TestCaseData(Const.SampleString, The.Beginning, The.EndOf, null, The.Beginning).Returns(Const.SampleString),
  538. new TestCaseData(Const.SampleString, The.Beginning, The.StartOf, null, The.End).Returns(Const.SampleString),
  539. new TestCaseData(Const.SampleString, The.Beginning, The.EndOf, null, The.End).Returns(Const.SampleString),
  540. new TestCaseData(Const.SampleString, The.End, The.StartOf, null, The.Beginning).Returns(Const.SampleString),
  541. new TestCaseData(Const.SampleString, The.End, The.EndOf, null, The.Beginning).Returns(Const.SampleString),
  542. new TestCaseData(Const.SampleString, The.End, The.StartOf, null, The.End).Returns(Const.SampleString),
  543. new TestCaseData(Const.SampleString, The.End, The.EndOf, null, The.End).Returns(Const.SampleString),
  544. new TestCaseData(Const.SampleString, The.Beginning, The.StartOf, String.Empty, The.Beginning).Returns(Const.SampleString),
  545. new TestCaseData(Const.SampleString, The.Beginning, The.EndOf, String.Empty, The.Beginning).Returns(Const.SampleString),
  546. new TestCaseData(Const.SampleString, The.Beginning, The.StartOf, String.Empty, The.End).Returns(Const.SampleString),
  547. new TestCaseData(Const.SampleString, The.Beginning, The.EndOf, String.Empty, The.End).Returns(Const.SampleString),
  548. new TestCaseData(Const.SampleString, The.End, The.StartOf, String.Empty, The.Beginning).Returns(Const.SampleString),
  549. new TestCaseData(Const.SampleString, The.End, The.EndOf, String.Empty, The.Beginning).Returns(Const.SampleString),
  550. new TestCaseData(Const.SampleString, The.End, The.StartOf, String.Empty, The.End).Returns(Const.SampleString),
  551. new TestCaseData(Const.SampleString, The.End, The.EndOf, String.Empty, The.End).Returns(Const.SampleString),
  552. new TestCaseData("Some string", The.Beginning, The.StartOf, Const.SampleMarker, The.Beginning).Returns("So"),
  553. new TestCaseData("Some string", The.Beginning, The.EndOf, Const.SampleMarker, The.Beginning).Returns("So"),
  554. new TestCaseData("Some string", The.Beginning, The.StartOf, Const.SampleMarker, The.End).Returns("So"),
  555. new TestCaseData("Some string", The.Beginning, The.EndOf, Const.SampleMarker, The.End).Returns("So"),
  556. new TestCaseData("Some string", The.End, The.StartOf, Const.SampleMarker, The.Beginning).Returns("ng"),
  557. new TestCaseData("Some string", The.End, The.EndOf, Const.SampleMarker, The.Beginning).Returns("ng"),
  558. new TestCaseData("Some string", The.End, The.StartOf, Const.SampleMarker, The.End).Returns("ng"),
  559. new TestCaseData("Some string", The.End, The.EndOf, Const.SampleMarker, The.End).Returns("ng"),
  560. new TestCaseData(Const.SampleString, The.EndOf, The.StartOf, Const.SampleMarker, The.Beginning).Throws(typeof(ArgumentOutOfRangeException)),
  561. new TestCaseData(Const.SampleString, The.StartOf, The.EndOf, Const.SampleMarker, The.End).Throws(typeof(ArgumentOutOfRangeException)),
  562. new TestCaseData(Const.SampleString, The.End, The.Beginning, Const.SampleMarker, The.Beginning).Throws(typeof(ArgumentOutOfRangeException)),
  563. new TestCaseData(Const.SampleString, The.Beginning, The.End, Const.SampleMarker, The.End).Throws(typeof(ArgumentOutOfRangeException)),
  564. new TestCaseData(Const.SampleString, The.End, The.EndOf, Const.SampleMarker, The.EndOf).Throws(typeof(ArgumentOutOfRangeException)),
  565. new TestCaseData(Const.SampleString, The.Beginning, The.StartOf, Const.SampleMarker, The.StartOf).Throws(typeof(ArgumentOutOfRangeException))
  566. };
  567. public IEnumerator GetEnumerator()
  568. {
  569. return testCaseData.GetEnumerator();
  570. }
  571. }
  572. [TestCaseSource(typeof(RemoveStartingFromToOccurrencePositionFromDataCases))]
  573. public string RemoveStartingFromToOccurrencePositionFromExtremeCases(string source, The startingFrom, The toPosition, string toMarker, The toFrom)
  574. {
  575. return source.Remove().Starting(position: 2).From(startingFrom).To(toPosition, 3, of: toMarker).From(toFrom);
  576. }
  577. [Test]
  578. public void RemoveStartingNegativeCharacterPositionFromBeginningToOccurrencePositionOfMarkerFromBeginning()
  579. {
  580. Action action = () => Const.SampleString.Remove().Starting(-4).From(The.Beginning).To(The.StartOf, 2, Const.SampleMarker).From(The.Beginning).ToString();
  581. action.ShouldThrow<ArgumentOutOfRangeException>();
  582. }
  583. [Test]
  584. public void RemoveStartingNegativeCharacterPositionFromBeginningToOccurrencePositionOfMarkerFromEnd()
  585. {
  586. Action action = () => Const.SampleString.Remove().Starting(-4).From(The.Beginning).To(The.EndOf, 2, Const.SampleMarker).From(The.End).ToString();
  587. action.ShouldThrow<ArgumentOutOfRangeException>();
  588. }
  589. [Test]
  590. public void RemoveStartingNegativeCharacterPositionFromEndToOccurrencePositionOfMarkerFromBeginning()
  591. {
  592. Action action = () => Const.SampleString.Remove().Starting(-4).From(The.End).To(The.StartOf, 2, Const.SampleMarker).From(The.Beginning).ToString();
  593. action.ShouldThrow<ArgumentOutOfRangeException>();
  594. }
  595. [Test]
  596. public void RemoveStartingNegativeCharacterPositionFromEndToOccurrencePositionOfMarkerFromEnd()
  597. {
  598. Action action = () => Const.SampleString.Remove().Starting(-4).From(The.End).To(The.StartOf, 2, Const.SampleMarker).From(The.End).ToString();
  599. action.ShouldThrow<ArgumentOutOfRangeException>();
  600. }
  601. [Test]
  602. public void RemoveStartingCharacterFromBeginningToNegativeOccurrencePositionOfMarkerFromBeginning()
  603. {
  604. Action action = () => Const.SampleString.Remove().Starting(3).From(The.Beginning).To(The.EndOf, -2, Const.SampleMarker).From(The.Beginning).ToString();
  605. action.ShouldThrow<ArgumentOutOfRangeException>();
  606. }
  607. [Test]
  608. public void RemoveStartingCharacterFromBeginningToNegativeOccurrencePositionOfMarkerFromEnd()
  609. {
  610. Action action = () => Const.SampleString.Remove().Starting(3).From(The.Beginning).To(The.StartOf, -2, Const.SampleMarker).From(The.End).ToString();
  611. action.ShouldThrow<ArgumentOutOfRangeException>();
  612. }
  613. [Test]
  614. public void RemoveStartingCharacterFromEndToNegativeOccurrencePositionOfMarkerFromBeginning()
  615. {
  616. Action action = () => Const.SampleString.Remove().Starting(3).From(The.End).To(The.EndOf, -2, Const.SampleMarker).From(The.Beginning).ToString();
  617. action.ShouldThrow<ArgumentOutOfRangeException>();
  618. }
  619. [Test]
  620. public void RemoveStartingCharacterFromEndToNegativeOccurrencePositionOfMarkerFromEnd()
  621. {
  622. Action action = () => Const.SampleString.Remove().Starting(3).From(The.End).To(The.StartOf, -2, Const.SampleMarker).From(The.End).ToString();
  623. action.ShouldThrow<ArgumentOutOfRangeException>();
  624. }
  625. [Test]
  626. public void RemoveStartingCharacterExceedingLengthFromBeginningToOccurrencePositionOfMarkerFromBeginning()
  627. {
  628. string transformed = Const.SampleString.Remove().Starting(250).From(The.Beginning).To(The.EndOf, 2, Const.SampleMarker).From(The.Beginning);
  629. transformed.Should().Be(Const.SampleString);
  630. }
  631. [Test]
  632. public void RemoveStartingCharacterExceedingLengthFromBeginningToOccurrencePositionOfMarkerFromEnd()
  633. {
  634. string transformed = Const.SampleString.Remove().Starting(250).From(The.Beginning).To(The.StartOf, 2, Const.SampleMarker).From(The.End);
  635. transformed.Should().Be(Const.SampleString);
  636. }
  637. [Test]
  638. public void RemoveStartingCharacterExceedingLengthFromEndToOccurrencePositionOfMarkerFromBeginning()
  639. {
  640. string transformed = Const.SampleString.Remove().Starting(250).From(The.End).To(The.EndOf, 2, Const.SampleMarker).From(The.Beginning);
  641. transformed.Should().Be(Const.SampleString);
  642. }
  643. [Test]
  644. public void RemoveStartingCharacterExceedingLengthFromEndToOccurrencePositionOfMarkerFromEnd()
  645. {
  646. string transformed = Const.SampleString.Remove().Starting(250).From(The.End).To(The.EndOf, 2, Const.SampleMarker).From(The.End);
  647. transformed.Should().Be(Const.SampleString);
  648. }
  649. [Test]
  650. public void RemoveStartingCharacterFromBeginningToZeroOccurrencePositionOfMarkerFromBeginning()
  651. {
  652. string transformed = "Some very long string with marker and another marker".Remove().Starting(1).From(The.Beginning).To(The.EndOf, 0, "marker").From(The.Beginning);
  653. transformed.Should().Be("S");
  654. }
  655. [Test]
  656. public void RemoveStartingCharacterFromBeginningToZeroOccurrencePositionOfMarkerFromEnd()
  657. {
  658. string transformed = "Some very long string with marker and another marker".Remove().Starting(1).From(The.Beginning).To(The.StartOf, 0, "marker").From(The.End);
  659. transformed.Should().Be("S");
  660. }
  661. [Test]
  662. public void RemoveStartingCharacterFromEndToZeroOccurrencePositionOfMarkerFromBeginning()
  663. {
  664. string transformed = "Some very long string with marker and another marker".Remove().Starting(1).From(The.End).To(The.EndOf, 0, "marker").From(The.Beginning);
  665. transformed.Should().Be("r");
  666. }
  667. [Test]
  668. public void RemoveStartingCharacterFromEndToZeroOccurrencePositionOfMarkerFromEnd()
  669. {
  670. string transformed = "Some very long string with marker and another marker".Remove().Starting(1).From(The.End).To(The.StartOf, 0, "marker").From(The.End);
  671. transformed.Should().Be("r");
  672. }
  673. [Test]
  674. public void RemoveStartingCharacterFromBeginningToOccurrencePositionOfMarkerFromBeginning()
  675. {
  676. string transformed = "Some very long string with marker and another marker".Remove().Starting(0).From(The.Beginning).To(The.StartOf, 1, "marker").From(The.Beginning);
  677. transformed.Should().Be("marker and another marker");
  678. transformed = "Some very long string with marker and markers and markable words".Remove().Starting(5).From(The.Beginning).To(The.EndOf, 3, "mark").From(The.Beginning);
  679. transformed.Should().Be("Some able words");
  680. transformed = "Some very 'marker' long string with marker".Remove().Starting(10).From(The.Beginning).To(The.StartOf, 2, "marker").From(The.Beginning);
  681. transformed.Should().Be("Some very marker");
  682. }
  683. [Test]
  684. public void RemoveStartingCharacterFromBeginningToOccurrencePositionOfMarkerFromEnd()
  685. {
  686. string transformed = "Some very long string with marker and another marker".Remove().Starting(0).From(The.Beginning).To(The.StartOf, 1, "marker").From(The.End);
  687. transformed.Should().Be("marker");
  688. transformed = "Some very long string with marker and markers and markable words".Remove().Starting(5).From(The.Beginning).To(The.EndOf, 3, "mark").From(The.End);
  689. transformed.Should().Be("Some er and markers and markable words");
  690. transformed = "Some very 'marker' long string with marker".Remove().Starting(10).From(The.Beginning).To(The.StartOf, 2, "marker").From(The.End);
  691. transformed.Should().Be

Large files files are truncated, but you can click here to view the full file