Moq тестирование модели БД с HttpContext.Current.Request.GetOwinContext() asp.net

Есть модель базы данных Doc, которая содержит вызов HttpContext.Current.Request.GetOwinContext():

public class Doc
{
    private DBaseContext db;
    private OracleContext oracle;

    public int Id { get; set; }

    public string DocNum { get; set; }

    public int UserId { get; set; }
    [NotMapped]
    public DateTime DocDate { get; set; }
    [NotMapped]
    public string Status { get; set; }

    public Doc()
    {
        db = HttpContext.Current.Request.GetOwinContext().Get<DBaseContext>();
        oracle = HttpContext.Current.Request.GetOwinContext().Get<OracleContext>();
    }

    public List<Oper> GetOpers() => oracle.GetOpersList(this.DocNum);

    }
}

Есть API контроллер Docs с методами, которые обращаются к этой модели, например:

        [HttpGet]
    [ResponseType(typeof(List<ViewDoc>))]
    public async Task<IHttpActionResult> Get()
    {
        User user = await UserManager.FindByIdAsync(User.Identity.GetUserId<int>());
        var docs = Mapper.Map<List<Doc>, List<ViewDoc>>(db.Docs.Where(s => s.UserId == user.Id).ToList());
        return Ok(docs);
    }

Я создала IDBaseContextс этой модели, и тест с заполнением модели:

 public interface IDBaseContext : IDisposable
{
    DbSet<Doc> Docs { get; set; }

    int SaveChanges();
    void MarkAsModified(object item);
}
     private Doc doc = new Doc
     {
         Id = 1,
         DocNum = "12345",
         DocDate = DateTime.Parse("13.06.2018"),
         Status = "Действует",
         UserId = 1
     };

На строчке "private Doc doc = new Doc" тест выдает ошибку: HttpContext is null. Я пробовала добавить в контроллер HttpControllerContext с OwinContext, но это не помогло. Как протестировать эту модель, или как изолировать её правильно?


Ответы (0 шт):