Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

In this solution, the production class actually loads a file from the disk

The Unit Test

Code Block
languagec#
using NUnit.Framework;
using file_loader_service;

namespace file_loader_tests
{
    public class FileLoaderTests
    {
        [Test]
        public void load_all_of_file_using_inbuilt_Files_type()
        {
            // arrange
            string fileToLoad = "c:/tmp/KeyboardHandler.java.txt";
            FileLoader cut = new FileLoader();
            int expectedBytesRead = 1383;

            // act
            int bytesRead = cut.LoadFile(fileToLoad);

            // assert
            Assert.AreEqual(expectedBytesRead, bytesRead);
        }
    }
}

The CUT FileLoader

Code Block
languagec#
using System;
using System.Collections.Generic;
using System.IO;

namespace file_loader_service
{
    public class FileLoader
    {
        private string fileData;
        IEnumerable<string> lines = new List<string>();

        public FileLoader()
        {
        }

        public int LoadFile(string fname)
        {
            try
            {
                lines = File.ReadLines(fname);
            }
            catch (IOException e) { }

            return CalculateFileSize();
        }

        private int CalculateFileSize()
        {
            int result = 0;

            foreach (string line in lines)
            {
                result += line.Length;
            };

            return result;
        }
    }
}

...