using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using StringExtensions;
using NUnit.Framework;
namespace TestExtensions
{
public partial class String
{
[Test]
public void TEST_CASE_INSENSTIVE_STRING_REPLACE()
{
string sourceString1 = "Farhan is a bad boy";
string sourceString2 = "Farhan is a BAD boy";
string sourceString3 = "Farhan is a BaD boy";
string result = "Farhan is a good boy";
Assert.AreEqual(result,sourceString1.CaseInsenstiveReplace("BAD", "good"));
Assert.AreEqual(result, sourceString2.CaseInsenstiveReplace("BAD", "good"));
Assert.AreEqual(result, sourceString3.CaseInsenstiveReplace("BAD", "good"));
Assert.AreEqual(string.Empty,string.Empty.CaseInsenstiveReplace("null","NULL"));
}
[Test]
public void TEST_CASE_INSENSTIVE_CHAR_REPLACE()
{
string sourceString1 = "Farhan is a bad boy";
string sourceString2 = "Farhan is a bAd boy";
string result = "Fsrhsn is s bsd boy";
Assert.AreEqual(result, sourceString1.CaseInsenstiveReplace('a', 's'));
Assert.AreEqual(result, sourceString2.CaseInsenstiveReplace('a', 's'));
Assert.AreEqual(string.Empty, string.Empty.CaseInsenstiveReplace('s', 'd'));
}
[Test]
public void TEST_REPLACE_FIRST_CHAR()
{
string sourceString1 = "Farhan is a bad boy";
string sourceString2 = "Farhan is cool as a cucumber and is smart";
string result1 = "Fsrhan is a bad boy";
string result2 = "Farhan was cool as a cucumber and is smart";
Assert.AreEqual(result1, sourceString1.ReplaceFirst('a', 's'));
Assert.AreNotEqual(result1, sourceString1.ReplaceFirst('A', 's'));
Assert.AreEqual(result2, sourceString2.ReplaceFirst("is", "was"));
Assert.AreNotEqual(result2, sourceString2.ReplaceFirst("IS", "was"));
Assert.AreEqual(string.Empty, string.Empty.ReplaceFirst('s', 'd'));
}
[Test]
public void TEST_REPLACE_LAST_CHAR()
{
string sourceString1 = "Farhan is a bad boy";
string sourceString2 = "Farhan is cool as a cucumber and is smart";
string result1 = "Farhan is a bsd boy";
string result2 = "Farhan is cool as a cucumber and was smart";
Assert.AreEqual(result1, sourceString1.ReplaceLast('a', 's'));
Assert.AreNotEqual(result1, sourceString1.ReplaceLast('A', 's'));
Assert.AreEqual(result2, sourceString2.ReplaceLast("is", "was"));
Assert.AreNotEqual(result2, sourceString2.ReplaceLast("IS", "was"));
Assert.AreEqual(string.Empty, string.Empty.ReplaceLast('s', 'd'));
}
[Test]
public void TEST_REMOVE_WORDS()
{
string sourceString = "Farhan is cool as a cucumber and is smart";
string result1 = "Farhan cool as a cucumber and smart";
string result2 = "Frhn cool cucumber nd smrt";
Assert.AreEqual(result1, sourceString.RemoveWords("is"));
Assert.AreEqual(result2, sourceString.RemoveWords(new string[] { "is", "was","as", "a" }));
Assert.AreEqual(string.Empty, string.Empty.RemoveWords("s","d"));
}
[Test]
public void TEST_MASK_WORDS()
{
string sourceString = "What the Fuck !!!";
string result = "What the ???? !!!";
Assert.AreEqual(result, sourceString.MaskWords('?',"Fuck"));
Assert.AreEqual(string.Empty, string.Empty.MaskWords('*', "d"));
}
[Test]
public void TEST_REMOVE_NEW_LINES()
{
string sourceString = ".Net Rocks." + "\n" + "Java Sucks.";
string result1 = ".Net Rocks.Java Sucks.";
string result2 = ".Net Rocks. Java Sucks.";
Assert.AreEqual(result1, sourceString.RemoveNewLines());
Assert.AreEqual(result2, sourceString.RemoveNewLines(true));
Assert.AreEqual(result1, sourceString.RemoveNewLines(false));
Assert.AreEqual(string.Empty, string.Empty.RemoveNewLines());
}
[Test]
public void TEST_REMOVE_NON_NUMERIC()
{
string sourceString = "Awsome123";
string result = "123";
Assert.AreEqual(result,sourceString.RemoveNonNumeric());
Assert.AreEqual(string.Empty.RemoveNonNumeric(), string.Empty);
}
[Test]
public void TEST_REMOVE_NUMERIC()
{
string sourceString = "Awsome123";
string result = "Awsome";
Assert.AreEqual(result,sourceString.RemoveNumeric());
Assert.AreEqual(string.Empty.RemoveNonNumeric(), string.Empty);
}
[Test]
public void TEST_REVERSE()
{
string sourceString1 = "Awsome123";
string sourceString2 = "MOM";
string result1 = "321emoswA";
string result2 = "MOM";
Assert.AreEqual(result1,sourceString1.Reverse());
Assert.AreEqual(result2,sourceString2.Reverse());
Assert.AreEqual(string.Empty.Reverse(), string.Empty);
}
[Test]
public void TEST_SENTENCE_CASE()
{
string sourceString = "this is a good utility";
string result = "This is a good utility";
Assert.AreEqual(result,sourceString.SentenceCase());
Assert.AreEqual(string.Empty.SentenceCase(), string.Empty);
}
[Test]
public void TEST_TITLE_CASE()
{
string sourceString = "this is a good utility";
string result1 = "This is a Good Utility";
string result2 = "This Is A Good Utility";
Assert.AreEqual(result1,sourceString.TitleCase());
Assert.AreEqual(result2,sourceString.TitleCase(false));
Assert.AreEqual(string.Empty.TitleCase(), string.Empty);
}
[Test]
public void TEST_TRIM_INTRA_WORDS()
{
string sourceString1 = "A man is working";
string result1 = "A man is working";
Assert.AreEqual(result1, sourceString1.TrimIntraWords());
Assert.AreEqual(string.Empty, string.Empty.TrimIntraWords());
}
[Test]
public void TEST_LIST_TO_CSV()
{
List<string> source1 = new List<string> { "Tom", "Dick", "Harry" };
string result1 = "Tom,Dick,Harry";
string result2 = "Tom, Dick, Harry";
List<char> source2 = new List<char> { 'T', 'D', 'H' };
string result3 = "T,D,H";
string result4 = "T, D, H";
Assert.AreEqual(result1, source1.ToCSV(false));
Assert.AreEqual(result2, source1.ToCSV(true));
Assert.AreEqual(result3, source2.ToCSV(false));
Assert.AreEqual(result4, source2.ToCSV(true));
}
[Test]
public void TEST_PAD_LEFT()
{
string source1 = "M.Farhan";
string padString1 = "*";
string padString2 = "Ejaz";
string result1 = "M.Farhan**";
string result2 = "M.FarhanEjaz";
string result3 = "M.FarhanEj";
Assert.AreEqual(result1,source1.PadLeft(padString1,10));
Assert.AreEqual(result2, source1.PadLeft(padString2, 10));
Assert.AreEqual(result3, source1.PadLeft(padString2, 10,true));
Assert.AreEqual(result2, source1.PadLeft(padString2, 10,false));
}
[Test]
public void TEST_PAD_RIGHT()
{
string source1 = "M.Farhan";
string padString1 = "*";
string padString2 = "Ejaz";
string result1 = "**M.Farhan";
string result2 = "EjazM.Farhan";
string result3 = "EjM.Farhan";
Assert.AreEqual(result1, source1.PadRight(padString1, 10));
Assert.AreEqual(result2, source1.PadRight(padString2, 10));
Assert.AreEqual(result3, source1.PadRight(padString2, 10, true));
Assert.AreEqual(result2, source1.PadRight(padString2, 10, false));
}
[Test]
public void TEST_WORD_WRAP()
{
string source1 = "This is a sample string";
string result1 = "This is a \r\nsample string";
string result2 = "This is a \r\nsample str\r\ning";
Assert.AreEqual(result1, source1.WordWrap(10));
Assert.AreEqual(result2, source1.WordWrap(10,true));
Assert.AreEqual(result1, source1.WordWrap(10, false));
}
}
}