Click here to Skip to main content
15,894,017 members
Articles / Programming Languages / C# 4.0

Util Library and Extension Methods

Rate me:
Please Sign up or sign in to vote.
4.86/5 (49 votes)
7 May 2013CPOL2 min read 47.9K   1.6K   131  
A simple Util library.
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));
        }
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior) Schneider Electric, GTCI Bangalore
India India
Music is my passion,
Apart from programming I like to read a lot.

Comments and Discussions