using Quadarax.Foundation.Core.Value.Extensions; namespace qdr.fnd.core.test.Value { internal class StringExtensionTest { [Test(TestOf = typeof(StringExt))] public void SplitQuotedSingleBracketOk() { var sep = ","; var quote = "|"; var input = "a,b,|c,d|,,e"; var result = input.SplitQuoted(sep, quote); Assert.That(result, Is.Not.Null); Assert.That(result.Length, Is.EqualTo(4)); Assert.That(result[0], Is.EqualTo("a")); Assert.That(result[1], Is.EqualTo("b")); Assert.That(result[2], Is.EqualTo("c,d")); Assert.That(result[3], Is.EqualTo("e")); } [Test(TestOf = typeof(StringExt))] public void SplitQuotedDiffBrackedOk() { var sep = ","; var quote = "|"; var input = "a,b,|c,d-,,e"; var result = input.SplitQuoted(sep, quote, "-"); Assert.That(result, Is.Not.Null); Assert.That(result.Length, Is.EqualTo(4)); Assert.That(result[0], Is.EqualTo("a")); Assert.That(result[1], Is.EqualTo("b")); Assert.That(result[2], Is.EqualTo("c,d")); Assert.That(result[3], Is.EqualTo("e")); } [Test(TestOf = typeof(StringExt))] public void SplitQuotedKeepBrackedOk() { var sep = ","; var quote = "|"; var input = "a,b,|c,d-,,e"; var result = input.SplitQuoted(sep, quote, "-", keepBracket: true); Assert.That(result, Is.Not.Null); Assert.That(result.Length, Is.EqualTo(4)); Assert.That(result[0], Is.EqualTo("a")); Assert.That(result[1], Is.EqualTo("b")); Assert.That(result[2], Is.EqualTo(quote + "c,d" + "-")); Assert.That(result[3], Is.EqualTo("e")); } [Test(TestOf = typeof(StringExt))] public void SplitQuotedBackCompatibilityOk() { var sep = ","; var quote = "|"; var input = "a,b,"; var result = input.SplitQuoted(sep, quote); Assert.That(result, Is.Not.Null); Assert.That(result.Length, Is.EqualTo(2)); Assert.That(result[0], Is.EqualTo("a")); Assert.That(result[1], Is.EqualTo("b")); } [Test(TestOf = typeof(StringExt))] public void SplitQuotedBackCompatibilityTrimmedOk() { var sep = ","; var quote = "|"; var input = "a, b ,"; var result = input.SplitQuoted(sep, quote); Assert.That(result, Is.Not.Null); Assert.That(result.Length, Is.EqualTo(2)); Assert.That(result[0], Is.EqualTo("a")); Assert.That(result[1], Is.EqualTo("b")); } [Test(TestOf = typeof(StringExt))] public void SplitQuotedBackCompatibilityRemoveEmptyOk() { var sep = ","; var quote = "|"; var input = "a,b,"; var result = input.SplitQuoted(sep, quote, removeEmptyItems: false); Assert.That(result, Is.Not.Null); Assert.That(result.Length, Is.EqualTo(3)); Assert.That(result[0], Is.EqualTo("a")); Assert.That(result[1], Is.EqualTo("b")); Assert.That(result[2], Is.EqualTo("")); } [Test(TestOf = typeof(StringExt))] public void RemoveDecoratorOk() { var baseInput = "hohoh"; var input = "\"" + baseInput + "\""; var result = input.RemoveDecorator("\""); Assert.That(result, Is.Not.Null); Assert.That(result, Is.EqualTo(baseInput)); input = "aaa" + baseInput + "aaa"; result = input.RemoveDecorator("aaa"); Assert.That(result, Is.Not.Null); Assert.That(result, Is.EqualTo(baseInput)); input = "aaa" + baseInput + "bbb"; result = input.RemoveDecorator("aaa", "bbb"); Assert.That(result, Is.Not.Null); Assert.That(result, Is.EqualTo(baseInput)); input = "aaa" + baseInput + ""; result = input.RemoveDecorator("aaa", ""); Assert.That(result, Is.Not.Null); Assert.That(result, Is.EqualTo(baseInput)); } [Test(TestOf = typeof(StringExt))] public void RemoveDecoratorFail() { var baseInput = "hohoh"; var input = "\"" + baseInput; var result = input.RemoveDecorator("\""); Assert.That(result, Is.Not.Null); Assert.That(result, Is.EqualTo(input)); input = "aaa" + baseInput + ""; result = input.RemoveDecorator("aaa"); Assert.That(result, Is.Not.Null); Assert.That(result, Is.EqualTo(input)); input = string.Empty; result = input.RemoveDecorator("aaa", ""); Assert.That(result, Is.Not.Null); Assert.That(result, Is.EqualTo(input)); } } }