Подтвердить что ты не робот

Контейнер клиента Mock OData с использованием Moq

Я использую клиент OData V4 для создания прокси-сервера внутри моего asp.net mvc 5. Я хочу unit test использовать контроллеры с помощью Moq. Можно ли каким-либо образом высмеять ответ службы OData в контейнере. Ниже приведен экземпляр контейнера OData:

    public static class ControlEntityContextHelper
    {
         /// <summary>
         /// Returns OData service context
         /// </summary>
         /// <returns></returns>
         public static Container GetEntityContext()
         {
             // create the container
             var container = new Container(new Uri("http://localhost/services/odata/"));
             container.Timeout = 1800;
             return container;
          }
     } 

Ниже представлен MVC-контроллер:

    public JsonResult GetEmployees(string employeeId)
    {
        var odataContext = ControlEntityContextHelper.GetEntityContext();
        var employee = odataContext.Employees.Where(emp => emp.EmployeeId == employeeId);
        return Json(employee, JsonRequestBehavior.AllowGet);
    }

Любая помощь будет принята с благодарностью.

4b9b3361

Ответ 1

Попробуйте добавить это:

public interface IEmployeeRepository
{
    Employee GetById(string id);
}

public class EmployeeRepository: IEmployeeRepository
{
    public Employee GetById() {//access to OData}
} 

И затем измените свой контроллер на

public JsonResult GetEmployees(string employeeId)
  {
        var employee = employeeRepository.GetById(employeeId);
        return Json(employee, JsonRequestBehavior.AllowGet);
  }

Затем вы сможете легко получить свой уровень доступа к данным.