using System.Collections.Generic;
public static void Main()
new UnitTests().PerformUnitTest();
public void PerformUnitTest()
var sut = new CustomerManager(new CustomerRepository(), httpContext);
var actual = sut.UpdateZip("12345");
var result = expected == actual ? "PASS" : "FAIL";
Console.WriteLine(result);
actual = sut.UpdateZip("9999");
result = expected == actual ? "PASS" : "FAIL";
Console.WriteLine(result);
public class CustomerManager
public CustomerManager(CustomerRepository customerRepository, int customerId)
CustomerRepository = customerRepository;
public CustomerRepository CustomerRepository { get; set; }
public int CustomerId { get; set; }
public bool UpdateZip(string newZipCode)
var allZipCodes = GetAllValidZipCodes();
if (allZipCodes.Contains(newZipCode))
CustomerRepository.UpdateZip(CustomerId, newZipCode);
private List<string> GetAllValidZipCodes()
var httpClient = new HttpClient();
return httpClient.Get<List<string>>("http://somezipcodeapi.com/GetAll");
public class CustomerRepository
public void UpdateZip(int customerId, string newZipCode)
var db = new DbContext();
var customer = db.Customers.SingleOrDefault(i => i.ID == customerId) ?? new Customer(){ID = customerId, ZipCode = newZipCode};
customer.ZipCode = newZipCode;
public List<Customer> Customers
} = new List<Customer>();
public T Get<T>(string url)
var x = (T) Convert.ChangeType(new List<string>(){"12345"}, typeof(T));