using System.Collections.Generic;
public static void Main()
Console.WriteLine("Hello World");
var calc = new Calculadora(new ConsoleWrapper());
Console.WriteLine("Multiplication: {0}",calc.Multiply());
public static void Test()
var mocker = new AutoMocker();
var inputs = new []{"a","2","3"}.AsEnumerable().GetEnumerator();
var outputs = new List<string>();
var wrapper = mocker.GetMock<IConsoleWrapper>();
Console.WriteLine("ReadLine[Injected]: {0}",inputs.Current);
.Setup(x=>x.WriteLine(It.IsAny<string>()))
Console.WriteLine("WriteLine[Intercepted]: {0}",str);
var calc = mocker.CreateInstance<Calculadora>();
Console.WriteLine("Multiplication: {0}", calc.Multiply());
private readonly IConsoleWrapper _console;
public Calculadora(IConsoleWrapper console)
_console.WriteLine("Multiplying");
_console.WriteLine("X:");
while(!Double.TryParse(_console.ReadLine(), out x))
_console.WriteLine("Invalid Input.");
_console.WriteLine("Y:");
while(!Double.TryParse(_console.ReadLine(), out y))
_console.WriteLine("Invalid Input.");
public interface IConsoleWrapper
void WriteLine(string s);
public class ConsoleWrapper : IConsoleWrapper
public string ReadLine() => Console.ReadLine();
public void WriteLine(string s) => Console.WriteLine(s);