I've tried couple of approaches to unit test the REST service but to no avail.
Followed this post, by creating DirectServiceClient but "method is not implemented" exception is raised.
Directly instantiated the web service and called the Any() method, it worked but it hits the DB. I've initialized the connection in the setup as below. But I am not knowing how to Mock connection object and set in-memory customer object.
_dbConnection = new OrmLiteConnectionFactory(TestConfig.ConnectionString,SqlServerDialect.Provider).OpenDbConnection();
Could anyone provide some inputs on how to write unit tests in this kind of scenario.
Customer Service
public class CustomerService : Service
{
private readonly IDbConnection _dbConnection;
public CustomerService(IDbConnection dbConnection)
{
_dbConnection = dbConnection;
}
public object Any(CustomerRequest request)
{
if (request.id == null)
{
throw new ArgumentException("id is required");
}
var customer = _dbConnection.QueryDapper<Customer>("getCustomer",new {@id=request.id}).ToList();
return customer;
}
}
Request
[Route("/customers")]
[Route("/customer/{id}")]
public class CustomerRequest : IReturn<Customer>
{
public string id { get; set; }
}