Skip to content

Instantly share code, notes, and snippets.

View CopperStarSystems's full-sized avatar

Ed Mays CopperStarSystems

View GitHub Profile
@CopperStarSystems
CopperStarSystems / PathWrapper.cs
Created September 27, 2016 19:48
C# class after refactoring to improve testability
// This code implements a wrapper around the static Path class.
// The interface allows us to inject a mock IPath instance at
// test time (for example when testing the MuchEasierToTest class).
public interface IPath{
string GetFileName(string fileName);
}
public class PathImpl : IPath {
public string GetFileName(string fileName){
@CopperStarSystems
CopperStarSystems / program.cs
Created May 20, 2017 17:21
A simple implementation of Insertion Sort in C#
bool showDebugOutput = true;
void Main()
{
var data = new string[] { "A", "R", "L", "S", "T", "N", "E" };
// Tell the user what's going on
Console.WriteLine("Unsorted Data:");
DumpData(data);
Console.WriteLine("Sorting Data...");
@CopperStarSystems
CopperStarSystems / SimpleRecursionExample.cs
Created March 2, 2018 17:35
A basic example of tree traversal using recursion in C#
// Tree traversal using recursion in C#
//
// We want to traverse the following tree, which may be arbitrarily
// deep/wide. These parameters are not known until runtime.
//
// root
// - branch1
// - leaf1
// - leaf2
// - branch2
using System.IO;
using System.Net;
namespace Tdd.FrameworkWrappers.Lib
{
public class FileReader
{
public string ReadText(string filePath)
{
return File.ReadAllText(filePath);
@CopperStarSystems
CopperStarSystems / FileReaderTests.cs
Created October 7, 2019 17:31
FileReaderTests.cs
using System.IO;
using NUnit.Framework;
namespace Tdd.FrameworkWrappers.Lib.Tests
{
[TestFixture]
public class FileReaderTests
{
[SetUp]
public void SetUp()
@CopperStarSystems
CopperStarSystems / FileReader.cs
Created October 7, 2019 17:34
FileReader.cs with Framework Wrapper
using System;
using Tdd.FrameworkWrappers.Lib.FrameworkWrappers;
namespace Tdd.FrameworkWrappers.Lib
{
public class FileReader
{
private readonly IFile file;
private readonly ILogger logger;
namespace Tdd.FrameworkWrappers.Lib.FrameworkWrappers
{
public interface IFile
{
string ReadAllText(string filePath);
}
}
using System.IO;
namespace Tdd.FrameworkWrappers.Lib.FrameworkWrappers
{
public class FileImpl : IFile
{
public string ReadAllText(string filePath)
{
return File.ReadAllText(filePath);
}
@CopperStarSystems
CopperStarSystems / FileReaderTests.cs
Created October 7, 2019 17:38
FileReaderTests.cs
using System.Collections.Generic;
using System.IO;
using Moq;
using NUnit.Framework;
using Tdd.FrameworkWrappers.Lib.FrameworkWrappers;
namespace Tdd.FrameworkWrappers.Lib.Tests
{
[TestFixture]
public class FileReaderTests