Wrapping a CSV file for access and testing
Just passing by. There are few comments I want to make here. 


ReadCountData() is definitely out of place because the first method just exposes you to a StreamReader object reference. This method can not be unit-tested. I created an interface called IFile that wraps the static OpenText() method

public  interface IFile
{
    StreamReader OpenText(string path);
}



  I created a FileClass that uses this interface


public  class FileClass
{
    private readonly IFile file;

    public FileClass(IFile file)
    {
        this.file = file;
    }

    // I renamed your ReadCountData as OpenFile
    public void OpenFile(string path)
    {
        try
        {
            var fileReader = file.OpenText(path);              
        }
        catch (Exception e) {
            // do whatever;
        }            
    }
}

Using this approach, you can unit-test the OpenText() using the below code

[TestClass]
public class UnitTest1
{
    [TestMethod]
    public void OpenFile_PathAsAParameter_CSVFileOpened()
    {

        //Arrange
        string path = @"C:\myfilerocks.txt";
        var fileMock = new Moq.Mock&lt;IFile&gt;();
        var fileClass = new FileClass(fileMock.Object);

        //Act
        fileClass.OpenFile(path);

        //Assert
        fileMock.Verify(x=&gt; x.OpenText(path));
    }
}


Notice there is still a dependency on StreamReader and TextReader, it's best to create a wrapper for those classes. When you have some many static class in a testable method I see it more as a smell . When a wrapper can't be created for them keep them as dependency e.g  public void ReadCountData(TextReader fileReader) seems alright to me. If you are looking for wrappers for the file system, visit System.IO.Abstractions by Jonathan Channon. His blog also explains a great deal Abstracting the File System

So the above test that the OpenText() was called. 
Rather than using csvReader, I will use TextFieldParser from Microsoft.VisualBasic.FileIO.TextFieldParser . It works for both C# and VB. Note this example was extracted from Reading CSV Files using C#

using (TextFieldParser parser = new TextFieldParser(@"c:\temp\test.csv"))
{
    parser.TextFieldType = FieldType.Delimited;
    parser.SetDelimiters(",");
    while (!parser.EndOfData) 
    {
        //Processing row
        string[] fields = parser.ReadFields();
        foreach (string field in fields) 
        {
           //TODO: Process field
        }
    }
}


Note: AbsolutePath, Delimiter is redundant here.
Refrain from names like ReadCountData, they don't provide information about their functionality. I would've thought ReadDataCount sounds better.