public void When_reading_file_with_large_Lines_and_small_buffer_matches_result_of_streamreader()
        {
            var filename = $"{this.GetDataDirectory()}\\data\\LargeLineFile.txt";
            var sw = new Stopwatch();
            sw.Start();
            using (var fileStreamEx = new FileStreamEx(filename, 1000))
            {
                fileStreamEx.ReadLine();
                fileStreamEx.ReadLine();
                Action a = () => fileStreamEx.ReadLine();

                a.ShouldThrow<ArgumentException>();
            }
            sw.Stop();
            Console.WriteLine("Time: " + sw.ElapsedMilliseconds);
        }
 public void When_reading_file_with_medium_Lines_and_large_buffer_matches_result_of_streamreader()
 {
     var filename = $"{this.GetDataDirectory()}\\data\\MediumLineFile.txt";
     var sw = new Stopwatch();
     sw.Start();
     using (var fileStreamEx = new FileStreamEx(filename))
     {
         using (var streamEx = new StreamReader(filename))
         {
             Line line;
             while ((line = fileStreamEx.ReadLine()) != null)
             {
                 var streamText = streamEx.ReadLine();
                 var fileStreamText = line.Text;
                 streamText.ShouldBeEquivalentTo(fileStreamText);
             }
         }
     }
     sw.Stop();
     Console.WriteLine("Time: " + sw.ElapsedMilliseconds);
 }
        public void When_checking_line_contains_characters_false_is_returned_if_they_do_not()
        {
            var filename = $"{this.GetDataDirectory()}\\data\\SingleLine.txt";
            using (var fileStreamEx = new FileStreamEx(filename))
            {
                Line line;
                while ((line = fileStreamEx.ReadLine()) != null)
                {
                    var actual = line.Contains('Y');

                    actual.Should().BeFalse();
                }
            }
        }
        public void When_checking_line_IsNullOrEmpty_true_is_returned_if_line_does_not_contain_characters_other_than_spaces()
        {
            var filename = $"{this.GetDataDirectory()}\\data\\ThreeLinesWIthSeondEmpty.txt";
            using (var fileStreamEx = new FileStreamEx(filename))
            {
                Line line;
                line = fileStreamEx.ReadLine(); // Not Empty
                line = fileStreamEx.ReadLine(); // Empty
                var actual = line.IsNullOrEmpty();

                actual.Should().BeTrue();
            }
        }
        public void When_stripping_characters_from_a_line_the_characters_are_removed()
        {
            var filename = $"{this.GetDataDirectory()}\\data\\SingleLine.txt";
            using (var fileStreamEx = new FileStreamEx(filename))
            {
                Line line;
                while ((line = fileStreamEx.ReadLine()) != null)
                {
                    var newLine = line.Strip(' ', '.');

                    var expected = line.Text.Replace(" ", "").Replace(".", "");
                    expected.ShouldBeEquivalentTo(newLine.Text);
                }
            }
        }
 public void When_checking_end_of_a_line_returns_false_if_line_does_not_end_with_character_supplied()
 {
     var filename = $"{this.GetDataDirectory()}\\data\\SingleLine.txt";
     using (var fileStreamEx = new FileStreamEx(filename))
     {
         Line line;
         while ((line = fileStreamEx.ReadLine()) != null)
         {
             var found = line.EndsWith('Z');
             found.Should().BeFalse();
         }
     }
 }
 public void When_checking_start_of_a_line_returns_true_if_line_starts_with_character_supplied()
 {
     var filename = $"{this.GetDataDirectory()}\\data\\SingleLineEndingWithSpace.txt";
     using (var fileStreamEx = new FileStreamEx(filename))
     {
         Line line;
         while ((line = fileStreamEx.ReadLine()) != null)
         {
             var found = line.StartsWith('T');
             found.Should().BeTrue();
         }
     }
 }
 public void When_splitting_a_line_with_that_does_not_have_the_seperator_returns_a_single_item_array_of_Line_objects()
 {
     var filename = $"{this.GetDataDirectory()}\\data\\ThreeLinesWIthSeondEmpty.txt";
     using (var fileStreamEx = new FileStreamEx(filename))
     {
         Line line;
         while ((line = fileStreamEx.ReadLine()) != null)
         {
             var expectedParts = line.Text.Split('\t');
             var columns = line.Split('\t');
             columns.Count.Should().Be(expectedParts.Length);
             for (int i = 0; i < expectedParts.Length; i++)
             {
                 columns[i].Text.ShouldBeEquivalentTo(expectedParts[i]);
             }
         }
     }
 }
 public void When_splitting_a_line_with_seperator_at_end_of_line_returns_an_array_of_Line_objects()
 {
     var filename = $"{this.GetDataDirectory()}\\data\\SingleLineEndingWithSpace.txt";
     using (var fileStreamEx = new FileStreamEx(filename))
     {
         Line line;
         while ((line = fileStreamEx.ReadLine()) != null)
         {
             var expectedParts = line.Text.Split(' ');
             var columns = line.Split(' ');
             columns.Count.Should().Be(expectedParts.Length);
             for (int i = 0; i < expectedParts.Length; i++)
             {
                 columns[i].Text.ShouldBeEquivalentTo(expectedParts[i]);
             }
         }
     }
 }