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, но это не помогло. Как протестировать эту модель, или как изолировать её правильно?