public void FindSubStringArgumentTest()
        {
            //arrange
            ITextFindService textFindService = new TextFindService();

            //assert
            Assert.Throws <ArgumentException>(() => textFindService.FindSubString(null, "subText", false));
            Assert.Throws <ArgumentException>(() => textFindService.FindSubString("text", null, false));
            Assert.Throws <ArgumentException>(() => textFindService.FindSubString("text", "", false));
        }
        public void FindSubStringResultSingleInstanceEnd()
        {
            //arrange
            ITextFindService textFindService = new TextFindService();

            string text    = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
            string subText = "Z";

            //Expected value
            var expectedResult = new List <int> {
                25
            };

            //Result
            var result = textFindService.FindSubString(text, subText, false);

            //Test
            Assert.Equal(expectedResult.Count, result.Count);

            for (int i = 0; i < expectedResult.Count; i++)
            {
                Assert.Equal(expectedResult[i], result[i]);
            }
        }
        public void FindSubStringResultMultipleCaseInsensitive()
        {
            //arrange
            ITextFindService textFindService = new TextFindService();

            string text    = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ";
            string subText = "a";

            //Expected value
            var expectedResult = new List <int> {
                0, 26
            };

            //Result
            var result = textFindService.FindSubString(text, subText, true);

            //Test
            Assert.Equal(expectedResult.Count, result.Count);

            for (int i = 0; i < expectedResult.Count; i++)
            {
                Assert.Equal(expectedResult[i], result[i]);
            }
        }