namespace X10D.Tests.Core { using System.Linq; using Microsoft.VisualStudio.TestTools.UnitTesting; /// /// Tests for . /// [TestClass] public class StringTests { /// /// Tests for . /// [TestMethod] public void AsNullIfEmpty() { Assert.AreEqual(null, string.Empty.AsNullIfEmpty()); Assert.AreEqual(null, ((string)null).AsNullIfEmpty()); Assert.AreEqual(" ", " ".AsNullIfEmpty()); Assert.AreEqual("foo", "foo".AsNullIfEmpty()); } /// /// Tests for . /// [TestMethod] public void AsNullIfWhiteSpace() { Assert.AreEqual(null, string.Empty.AsNullIfWhiteSpace()); Assert.AreEqual(null, ((string)null).AsNullIfWhiteSpace()); Assert.AreEqual(null, " ".AsNullIfWhiteSpace()); Assert.AreEqual("foo", "foo".AsNullIfWhiteSpace()); } /// /// Tests for . /// [TestMethod] public void Repeat() { Assert.AreEqual("foofoofoofoofoo", "foo".Repeat(5)); } /// /// Tests for . /// [TestMethod] public void Reverse() { Assert.AreEqual("dlroW olleH", StringExtensions.Reverse("Hello World")); Assert.AreEqual("Foobar", StringExtensions.Reverse("rabooF")); } /// /// Tests for . /// [TestMethod] public void Split() { const string str = "Hello World"; // ReSharper disable once SuggestVarOrType_Elsewhere var arr = str.Split(2).ToArray(); CollectionAssert.AreEqual(new[] { "He", "ll", "o ", "Wo", "rl", "d" }, arr); } /// /// Tests for . /// [TestMethod] public void WithAlternative() { Assert.AreEqual("Hello", "Hello".WithAlternative("Discarded")); Assert.AreEqual("Alternative", string.Empty.WithAlternative("Alternative")); Assert.AreEqual(" ", " ".WithAlternative("Discarded")); Assert.AreEqual("Alternative", " ".WithAlternative("Alternative", true)); Assert.AreEqual("Alternative", ((string)null).WithAlternative("Alternative")); } } }