public interface IOrderRepository { }
public static void Main()
IOrderRepository sqlOrderRepository = new SqlOrderRepository();
OrderService sqlOrderService = new OrderService(sqlOrderRepository);
sqlOrderService.ProcessOrder(new Order());
Console.WriteLine("Order processed");
IOrderRepository mockOrderRepository = new MockOrderRepository();
MockOrderService mockOrderService = new MockOrderService(mockOrderRepository);
mockOrderService.ProcessOrder(new Order());
Console.WriteLine("Order processed (Mock)");
public class OrderService
private readonly IOrderRepository _orderRepository;
public OrderService(IOrderRepository orderRepository)
_orderRepository = orderRepository;
public void ProcessOrder(Order order) { }
public class MockOrderService
private readonly IOrderRepository _orderRepository;
public MockOrderService(IOrderRepository orderRepository)
_orderRepository = orderRepository;
public void ProcessOrder(Order order) { }
public class SqlOrderRepository : IOrderRepository { }
public class MockOrderRepository : IOrderRepository { }